Boa tarde.
Ao ocorrer um erro no ENVIAR() do ACBrNfe existe alguma propriedade que podemos utilizar para saber se o erro é uma rejeicao/sefaz (que deve ser tratada a nivel de alimentacao do XML), ou se é um erro de comunicacao que justifica entrar em contingencia?
Notamos que alguns erros de comunicacao, seja no lado INTERNET/APLICATIVO ou seja do lado SEFAZ, acabam gerando um exception e no exception.message temos:
Erro Interno: 0
Erro Interno: 10091
Erro Interno: 10090
e outros...
Podemos assumir que ao detectar uma string "Erro Interno:" no e.message, seria motivo pra entrar em contingencia? Obs: Preocupacao é se este texto mudar no futuro ( AcbrConsts.pas ).
Ou o melhor caminho seria verificar o cStat?
Nos parece que erros de comunicacao, o cStat fica 0 e algumas vezes ja vimos -1 tambem.
Se apos Enviar(), o cStat for > 0 apresentamos mensagem ao usuario, pois pode ser uma rejeicao/Sefaz que deve ser tratada na alimentacao.
Caso contrario, se cStat <= 0, trata-se de erro de comunicacao, e marcamos este NFC como "pendente" e passamos pra modo contingencia...
Seria algo neste sentido que estao fazendo para detectar contingencia? Ou existe uma propriedade confiavel no ACBrNfe que podemos consultar apos ENVIAR() para saber se houve erro na comunicacao?
Obs: a informacao presente no cStat(AcNFE.WebServices.Enviar.cStat p/ sincrono e AcNFE.WebServices.Retorno.cStat para assincrono) é confiavel, quando ocorre erro de comunicacao?
Grato,