Exemplo de uso da função SETSOAPFAULT
No exemplo 01, partindo de um método de um WebServices 'Server', caso um parâmetro não atenda a faixa de dados necessária, o serviço retorna ao Client solicitante um Soap-Fault, indicando a ocorrência de erro.
No exemplo 02, retornamos um Soap-Fault, indicando que não estava disponível um recurso no servidor para o processamento requisitado. Neste, retornamos que o Fault Code é 'SOAPFAULT_RECEIVER', pois o pacote não foi processado não por ter algum conteúdo inválido, mas sim por alguma razão ligada ào ambiente do servidor.
Por default, o Fault-Code de um Soap-Fault é 'SOAPFAULT_SENDER', o que indica que o serviço não foi processado por alguma razão ligada ào pacote de dados enviados; e indica ao client que o pacote deve ser re-montado para que o serviço seja executado.
Exemplo 01(...)If ::Indice > 1024 SetSoapFault('Argumento Inválido','O índice não pode ser maior que 1024.') Return .f.Endif(...)Exemplo 02(...)If !File('\extras\modelo.cfg') SetSoapFault('Serviço Indisponível','',SOAPFAULT_RECEIVER) Return .f.Endif(...)
No exemplo 01, partindo de um método de um WebServices 'Server', caso um parâmetro não atenda a faixa de dados necessária, o serviço retorna ao Client solicitante um Soap-Fault, indicando a ocorrência de erro.
No exemplo 02, retornamos um Soap-Fault, indicando que não estava disponível um recurso no servidor para o processamento requisitado. Neste, retornamos que o Fault Code é 'SOAPFAULT_RECEIVER', pois o pacote não foi processado não por ter algum conteúdo inválido, mas sim por alguma razão ligada ào ambiente do servidor.
Por default, o Fault-Code de um Soap-Fault é 'SOAPFAULT_SENDER', o que indica que o serviço não foi processado por alguma razão ligada ào pacote de dados enviados; e indica ao client que o pacote deve ser re-montado para que o serviço seja executado.
Exemplo 01(...)If ::Indice > 1024 SetSoapFault('Argumento Inválido','O índice não pode ser maior que 1024.') Return .f.Endif(...)Exemplo 02(...)If !File('\extras\modelo.cfg') SetSoapFault('Serviço Indisponível','',SOAPFAULT_RECEIVER) Return .f.Endif(...)