Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

José Henrique Jacob

WebService

Recommended Posts

Caros,

 

Tenho um seguinte cenário:

 

WebSite (que não controlo, não é meu) meu Web-Service (que vou chamar de WSM) e Web-Service de Terceiro (que vou chamar de WST)

 

Bem esse Website faz uma requisição no meu WSM, nele faço vários procedimentos e em determinado momento chamo o WST.

 

Aí está o problema, Quando faço esta chamada do meu WSM para o WST no requisito diz, que eu faço a chamada e se a chamada falhar eu devo repeti-la x vezes.

 

Bem, conheço Webservice Sincrono e Assincrono, aquele que chamo e fico esperando ele responder e aquele que chamo deixo pra lá e sigo a vida....

 

Essa de ficar esperando e se falhar chamar novamente nunca fiz ou ví. Entendam que não é um retorno do Web-service ele não vai me retornar uma resposta dizendo que falhou e sim uma exception.

 

Tem como fazer isso? Alguém pode dar uma dica?

Compartilhar este post


Link para o post
Compartilhar em outros sites

A nota fiscal eletrônica (NF-e) funciona mais ou menos assim..

 

Verifique pois devem ser dois webservices, ou dois metodos de um único webservice..

 

São coisas distintas webservice falhar, e webservice assincrono, webservice falhar é ocorrer um erro no processamento, webservice assincrono é aquele no qual a resposta vem com um delay , normalmente através de consulta em outro webservice

 

Na NF-e o serviço de envio é assincrono, você envia a(s) NF-e(s) e o sistema te dá um recibo isso no webservice NFeRecepcao2 , depois você de consultar o resultado no NFeRetRecepcao2.

 

Esclarecidas as diferenças (espero) é o seguinte..

 

Você pode criar um loop para caso dê um erro ele refazer a solicitação..

 

Mais ou mesno assim,

 

Você pode limitar a 100 tentativas e usar um bloco try..catch, nesse caso não vou usar o finally ok ??

 

Ele executa a chamada do webservice, se nessa chamada der erro ela vai pro bloco de tratamento do erro, senão ela vai pra linha

exit do

e sai do looping, limitei o número de tentativas, pois pode ocorrer um outro tipo de erro sem solução imediata, como webservice fora do ar e seu ´programa ficar em loop infinito

 

dim contaTentativas as integer

contaTentativas = 0

do

try

executaWebService
exit do

cath erro as exception

if contaTentativas < 100 then
contaTentativas += 1
else
messagebox 'Ocorreram mais de 100 tentativas e retorna erro'
exit do
end if

end try



loop

 

Abraços & QQ coisa é só postar

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.