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:
private
System.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
new
System.ServiceModel.Channels.TextMessageEncodingBindingElement(
System.ServiceModel.Channels.MessageVersion::get_Soap12(),
System.Text.Encoding::get_UTF8());
// BP
Deviation Documented
transportBinding = new
System.ServiceModel.Channels.HttpsTransportBindingElement();
transportBinding.set_RequireClientCertificate(true);
// BP Deviation Documented
bindingElementArray = new
System.ServiceModel.Channels.BindingElement[2]();
bindingElementArray.SetValue(messageEncodingBinding, 0);
bindingElementArray.SetValue(transportBinding, 1);
// BP Deviation
Documented
binding = new
System.ServiceModel.Channels.CustomBinding(bindingElementArray);
}
else
{
// BP
Deviation Documented
binding = new
System.ServiceModel.BasicHttpBinding();
}
return
binding;
}
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!
Nenhum comentário:
Postar um comentário