WS Classes Autogeradas - Soap 1.2
Olá.
Estou trabalhando na instalação de um KB no ERP Dynamics AX (KB4086133 - NFe 4.0). Quanto a instalação do KB, já sabíamos que ele possuía alguns problemas quanto ao consumo do web service do Sefaz.
Problema inicial
Quando a Microsoft iniciou o desenvolvimento da implementação, o Sefaz utilizava o name do serviço como "NfeAutorizacao4" (este é apenas um dos serviços). Segue o WSDL da parte que interessa:
<wsdl:service name="NfeAutorizacao4">
<wsdl:port name="NfeAutorizacao4Soap" binding="tns:NfeAutorizacao4Soap">
<soap:address location="https://nfe-homologacao.sefazrs.rs.gov.br/ws/NfeAutorizacao/NfeAutorizacao4.asmx" />
</wsdl:port>
<wsdl:port name="NfeAutorizacao4Soap12" binding="tns:NfeAutorizacao4Soap12">
<soap12:address location="https://nfe-homologacao.sefazrs.rs.gov.br/ws/NfeAutorizacao/NfeAutorizacao4.asmx" />
</wsdl:port>
</wsdl:service>
Após a liberação do KB, o governo realizou algumas mudanças na nomenclatura e alterou o nome do serviço para "N**F**eAutorizacao4" (alterando o F para maiúsculo). O que está ok, lembrando que isto tudo é dentro do prazo de homologação. O novo WSDL está da seguinte forma:
<wsdl:service name="NFeAutorizacao4">
<wsdl:port name="NFeAutorizacao4Soap" binding="tns:NFeAutorizacao4Soap">
<soap:address location="https://nfe-homologacao.sefazrs.rs.gov.br/ws/NfeAutorizacao/NFeAutorizacao4.asmx" />
</wsdl:port>
<wsdl:port name="NFeAutorizacao4Soap12" binding="tns:NFeAutorizacao4Soap12">
<soap12:address location="https://nfe-homologacao.sefazrs.rs.gov.br/ws/NfeAutorizacao/NFeAutorizacao4.asmx" />
</wsdl:port>
</wsdl:service>
Como a MS não está com previsão na liberação de um novo KB (até o presente momento) e somos um dos primeiros a realizar a atualização (visto que é apenas Brasil), optamos por corrigir por nós mesmo os problemas e, caso em algum futuro próximo a MS lance a correção, instalá-la. E isso tudo ocorreu perfeitamente, pois, temos acesso ao projeto VS dentro do ERP para customização.
O que realmente está pegando, é um efeito colateral da custom que não estou conseguindo localizar alguém que tenha tido um problema similar. Todas as classes geradas, que vieram pelo KB, utilizam o sufixo "Soap12Client". Quando fizemos a correção e geramos novamente as classes, esse sufixo foi alterado apenas "SoapClient". Ou seja, a classe autogerada de serviço, que era esta:
public partial class NFeAutorizacao4Soap12Client
passou para:
public partial class NFeAutorizacao4SoapClient
O que, do ponto de vista de programação, não há nenhum problema.
Entretanto, o Dynamics AX acaba utilizando esse sufixo para todas as chamadas de todos os serviços da NFe (existe um método que retorna o sufixo como "Soap12) e, quando mudado o sufixo para um serviço, muda para os demais serviços da NFe 4.0. Neste caso, são inúmeros endereços, como pode ser visto no link abaixo:
http://hom.nfe.fazenda.gov.br/portal/webServices.aspx?tipoConteudo=Wak0FwB7dKs=
Devido a este problema de sufixo, a customização se torna ainda maior, pois, seria necessário customizar em outros pontos do sistema.
Como no WSDL há duas port's para o serviço (NFeAutorizacao4Soap e NFeAutorizacao4Soap12), a pergunta é a seguinte:
Há como definir que as classes autogeradas sejam da versão 1.2 e/ou possuam o sufixo "Soap12"?
Sei que eu posso alterar as classes auto geradas para que possuam o prefixo. Entretanto, quero saber como realizar esse procedimento de forma automática.
Discussão (0)
Carregando comentários...