Um amigo havia passado por este problema e após resolve-lo me enviou o "workaround" para resolve-lo!
O erro ocorre ao cria uma NF e envia-la ao Sefaz de Pernambuco, neste momento ocorre o erro abaixo:
Em inglês:
"409 - Rejection: cUF field does not exist in the nfeCabecMSg element from the SOAP Header."
Em português:
Rejeição: Código 409 - Campo cUF inexistente no elemento nfeCabecMsg do SOAP Header.
Não existe KB para este caso, e de acordo com o LCS não haverá tal KB!
Sendo assim é preciso uma alteração manual no AX, vamos a ela!
Abra a AOT e expanda até Classes\EFDocMsgTransport_WebService_BR, clique com o botão direito, crie um novo método e coloque o conteúdo abaixo:
Agora clique no botão Compilar para compilar o noto método.
Agora abra o método createWcfClient e encontre a linha binding que estará exatamente como na imagem abaixo:
Vamos remover o conteudo destacado em amarelo e incluir o seguinte:
O erro ocorre ao cria uma NF e envia-la ao Sefaz de Pernambuco, neste momento ocorre o erro abaixo:
Em inglês:
"409 - Rejection: cUF field does not exist in the nfeCabecMSg element from the SOAP Header."
Em português:
Rejeição: Código 409 - Campo cUF inexistente no elemento nfeCabecMsg do SOAP Header.
Não existe KB para este caso, e de acordo com o LCS não haverá tal KB!
Sendo assim é preciso uma alteração manual no AX, vamos a ela!
Abra a AOT e expanda até Classes\EFDocMsgTransport_WebService_BR, clique com o botão direito, crie um novo método e coloque o conteúdo abaixo:
privateSystem.ServiceModel.Channels.Binding createBindingStandard()
{
System.ServiceModel.Channels.Binding binding;
System.ServiceModel.Channels.BindingElement[] bindingElementArray;
System.ServiceModel.Channels.TextMessageEncodingBindingElement messageEncodingBinding;
System.ServiceModel.Channels.HttpsTransportBindingElement transportBinding;
if(this.isHttps())
{
messageEncodingBinding =
// BP Deviation Documented
newSystem.ServiceModel.Channels.TextMessageEncodingBindingElement(
System.ServiceModel.Channels.MessageVersion::get_Soap12(),
System.Text.Encoding::get_UTF8());
// BP Deviation Documented
transportBinding = newSystem.ServiceModel.Channels.HttpsTransportBindingElement();
transportBinding.set_RequireClientCertificate(true);
// BP Deviation Documented
bindingElementArray = newSystem.ServiceModel.Channels.BindingElement[2]();
bindingElementArray.SetValue(messageEncodingBinding, 0);
bindingElementArray.SetValue(transportBinding, 1);
// BP Deviation Documented
binding = newSystem.ServiceModel.Channels.CustomBinding(bindingElementArray);
}
else
{
// BP Deviation Documented
binding = newSystem.ServiceModel.BasicHttpBinding();
}
returnbinding;
}
Agora clique no botão Compilar para compilar o noto método.
Agora abra o método createWcfClient e encontre a linha binding que estará exatamente como na imagem abaixo:
Vamos remover o conteudo destacado em amarelo e incluir o seguinte:
if(this.parmIssuingStateCode() == '26')
{
binding = this.createBindingStandard();
}
else
{
binding = this.createBinding();
}
Agora teremos o método como na imagem abaixo:
Clique novamente no botão compilar e após a compilação clique no botão para gerar o IL Incremental.
Feche tudo e tente enviar a NF novamente!
Espero que isso de certo pra vocês!