Amigos,
Vínhamos a 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 inicio 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 a o código que gera a mensagem do
elemento “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 assim:
public str build()
{
XmlElement message;
XmlElement msgFormatVersion;
//<Alteracao>
str myxml;
//</Alteracao>
;
message = this.createElement('cabecMsg');
message.setAttribute('versao', '1.02');
msgFormatVersion = this.createElementWithValue('versaoDados',
xmlFormatVersion);
message.appendChild(msgFormatVersion);
//<Alteracao>
myxml = message.outerXml();
myxml = strfmt(@'<?xml version="1.0" encoding="UTF-8"?>%1',myxml);
return myxml;
//</Alteracao>
}
Espero ter ajudado.
David Alencar
http://davidalencar.wordpress.com