Problemas entre webservices do PR e NF-e do Ax – Parte 1

Ajudei um parceiro semana passada em alguns problemas que ele estava tendo para colocar a NF-e do Ax funcionando com os web services do PR e gostaria de compartilhar o workaround que encontramos para os problemas identificados.

O problema:

A SEFAZ/PR implementou o WSDL dos webservices Consulta da Nf-e, Cancelamento, Recepção, Retorno do processamento do Lote e Inutilização de uma maneira diferente da SEFAZ/SP e SEFAZ/RS.

Essa diferença faz com que o Ax ou não consiga gerar os service references para esses web services ou quando o service reference é gerado, o WSDL faz com que o .net gere a classe que implementa o client SOAP com um nome diferente do esperado pela implementação da Nf-e, por exemplo, o Ax espera encontrar a classe NfeRetRecepcaoSoapClient e o wsdl faz o .net gerar uma classe chamada NfeRetRecepcaoClient.

Work around:

Baixe o WSDL do site da SEFAZ/RS, descompacte em um diretório, verifique se o usuário do AOS tem acesso de leitura a esse diretório, atribua o acesso de leitura ao diretório caso ele não tenha.

Para cada web service, ao invés de usar a URL do SEFAZ/PR utilize o caminho para o diretório do disco.

image

No exemplo acima, é possível ver que o webservice de cancelamento foi gerado a partir do WSDL do disco com sucesso (screenshot do form de parâmetros brasileiros, versão RU5). Faça isso para cada um dos 4 webservices restantes.

Após gerar os webservices, além de configurar os service references para usar o certificado digital (disponibilizei uma classe que faz isso automaticamente aqui), é necessário trocar o endereço do endpoint do client soap da SEFAZ/RS para a SEFAZ/PR.

Para isso, acesse a configuração do service reference através de:

  • \Basic\Setp\Application Integration Framework\Service References
  • ou diretamente do AOT\References

image

No campo indicado acima, para cada service reference, substitua a URL pela URL correspondente da SEFAZ/PR.

Após esse procedimento, o Ax consegue conectar nos webservices do PR sem problemas, contudo, a SEFAZ/PR também não seguiu alguns padrões do XML definidos pela W3C. Ainda precisamos fazer um pequeno ajuste em 4 classes que geram o XML para que tudo funcione normalmente, porém, esses ajustes continuam na parte 2.

Fiquem ligados!