8229 - Tratamento de Erros - WebServices Terceiros
Problema: Descrição do Problema: Ao consultar a cotação do dolar pelos Serviços do Webservice do Banco Central do Brasil
Quando há cotação na data passada ao serviço, o sistema traz normalmente o valor da cotação, porém quando não há cotação na data (finais de semana e o dia atual por exemplo) o sistema gera um erro na consulta e encerra a regra ou processo gerando a seguinte mensagem na tela:
Erro na resposta do servidor: HTTP 500.
Causa: br.gov.bcb.pec.sgs.comum.exececoes.SGSNegocioException: Value(s) not found.
É possível de alguma forma, o erro não gerar através de mensagem na tela e não encerrar o processo, ou seja, o erro retornar em variável para tratamento, assim poderia consultar outra data ou terminar o processamento.
Rotina / Tela: WebService de Terceiro.
Solução: Solução: Esse tipo de execeção é o retorno do Webservice de Terceiro. Quando o Web Service de terceiros não encontra a informação do dia, ele devolve uma excessão, ou seja, um erro (http 500).
Quando isto ocorre, o ERP recebe o retorno de erro e entende que houve um erro na execução do Web Service, abrindo uma tela com a informação retornada pelo Web Service.
Para que o retorno ocorre via mensagem, o Web Service de terceiros deve tratar a informação quando não há um dia que não possui informações. Ou seja, quando não houver infomações no dia deveria retornar Não encontrada cotação no dia, e não retornar um erro.
Uma alternativa seria tratar os dias enviados so Web Service via regra, utilizando a tabela de feriados. Assim, quando o dia for um feriado o Web Service não será chamado. Lembrando que isto é um contorno para o problema do Web Service de Terceiros.
Quando há cotação na data passada ao serviço, o sistema traz normalmente o valor da cotação, porém quando não há cotação na data (finais de semana e o dia atual por exemplo) o sistema gera um erro na consulta e encerra a regra ou processo gerando a seguinte mensagem na tela:
Erro na resposta do servidor: HTTP 500.
Causa: br.gov.bcb.pec.sgs.comum.exececoes.SGSNegocioException: Value(s) not found.
É possível de alguma forma, o erro não gerar através de mensagem na tela e não encerrar o processo, ou seja, o erro retornar em variável para tratamento, assim poderia consultar outra data ou terminar o processamento.
Rotina / Tela: WebService de Terceiro.
Solução: Solução: Esse tipo de execeção é o retorno do Webservice de Terceiro. Quando o Web Service de terceiros não encontra a informação do dia, ele devolve uma excessão, ou seja, um erro (http 500).
Quando isto ocorre, o ERP recebe o retorno de erro e entende que houve um erro na execução do Web Service, abrindo uma tela com a informação retornada pelo Web Service.
Para que o retorno ocorre via mensagem, o Web Service de terceiros deve tratar a informação quando não há um dia que não possui informações. Ou seja, quando não houver infomações no dia deveria retornar Não encontrada cotação no dia, e não retornar um erro.
Uma alternativa seria tratar os dias enviados so Web Service via regra, utilizando a tabela de feriados. Assim, quando o dia for um feriado o Web Service não será chamado. Lembrando que isto é um contorno para o problema do Web Service de Terceiros.