Olá Pessoal,
Essa dica pode ser aplicada em todos os componentes ACBr que se utilizam de webservice, como por exemplo os componentes de NF-e, CT-e, MDF-e, NFS-e entre outros.
Para que possamos realizar uma analise mais minuciosa do que pode estar ocorrendo, precisamos dos XMLs que são enviados para o WebService bem como os de retorno.
O XML que realmente é enviado, bem como o que de fato o WebService retornou, normalmente não são salvos em disco.
Para tal análise se faz necessário salvar esses arquivos.
O que precisa ser feito para que esses arquivos sejam salvos?
Muito simples, basta alterar uma configuração.
Nos programas exemplos dos componentes, na aba WebService costuma ter a opção: "Salvar envelope SOAP", basta marcar essa opção.
No componente, faça conforme abaixo:
Configuracoes.WebServices.Salvar = True; // (o valor padrão é False)
Ao alterar de False para True o componente passa a salvar em disco os arquivos (SOAP), ou seja, os arquivos que realmente são enviados e retornados pelo WebService.
Nas Libs a configuração se chama SalvarWS e geralmente está na sessão do DFe. Por exemplo, para NFe:
[NFe]
SalvarWS=1
Para CTe:
[CTe]
SalvarWS=1
OBS.: Para Lib, é importante definir o PathSalvar também. Nesse caminho serão salvos os arquivos de envelope.
Com essa configuração os arquivos serão gerados em qualquer solução ACBr. Você consegue identifica-los facilmente pois eles trazem em seu nome a palavra soap.
Exemplo:
*-env-lot-soap.xml
*-pro-lot-soap.xml
Agora vocês já sabem, quando pedirmos os arquivos SOAP, basta marcar a opção no programa exemplo ou configurar o componente diretamente conforme mostrado acima.