Páginas

Erro ao integrar NFe: 299 Rejeição: XML da área de cabeçalho com codificação diferente de UTF-8.

Hoje recebi um e-mail do David Alencar que participa do grupo Dynamics AX BR sobre um problema com o cabeçalho da NFe e achei bem interessante, pois uma vez estava gerando um arquivo para troca de informações com um outro sistema e tive um problema parecido, abaixo o e-mail que recebi do grupo.

Vínhamos há algum tempo sofrendo com a seguinte mensagem de erro ao integrar uma NFe: 299 Rejeição: XML da área de cabeçalho com codificação diferente de UTF-8.

De início não entendíamos o problema, pois o cabeçalho do XML que estava sendo enviado estava com o encoding correto (UTF-8).

Enfim descobrimos que a mensagem de erro estava validando um XML que era enviado dentro do XML principal no elemento "cabecMsg" e que este XML estava sem um cabeçalho.

Para resolver o problema alteramos o código que gera a mensagem do elemneto "cabecMsg" na classe "EFDocMsgHeaderXMLFormat_BR" método "build", de forma que o conteúdo dentro deste elemento também tivesse um cabeçalho de XML com o encoding solicitado pela NFe (UTF-8).

O código alterado ficou da seguinte maneira:
  1. public str build()
  2. {
  3.     XmlElement message; 
  4.     XmlElement msgFormatVersion;
  5.     //
  6.     str myxml;
  7.     //
  8.     ;
  9.     message = this.createElement('cabecMsg');
  10.     message.setAttribute('versao', '1.02');
  11.     msgFormatVersion = this.createElementWithValue('versaoDados', xmlFormatVersion);
  12.     message.appendChild(msgFormatVersion);
  13.     //
  14.     myxml = message.outerXml();
  15.     myxml = strfmt(@'%1',myxml);
  16.     return myxml;
  17.     //
  18. }
Caso alguém se interesse em acompanhar o grupo segue o link: Dynamics AX BR.
Lembrando que a solução foi enviada pelo David Alencar.

[]'s
Alexssander