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.
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
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!
