Olá,
Uso os componentes do ACBR para emissão de NFe.
Quando efetuo um cancelamento de NF-e, o componente cria um arquivo 5xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-ProcEventoNFe.xml o qual eu salvo em meu banco de dados para posterior conferência, até aí tudo tranquilo.
Porém às vezes pode acontecer algo durante o processo de cancelamento (queda da internet, queda de conexão com o servidor, etc..) e não consigo ler o arquivo de evento de cancelamento no momento do cancelamento. Neste caso, a NF fica cancelada na SEFAZ mas eu não tenho o arquivo XML do evento do cancelamento. Então a pergunta é: existe uma forma de se recriar este arquivo XML do evento do cancelamento?
A minha tentativa até agora foi:
ACBrNFe1.NotasFiscais.Clear;
ACBrNFe1.NotasFiscais.LoadFromFile(<ARQUIVO XML DA NOTA>);
ACBrNFe1.Consultar;
nProtCanc := ACBrNFe1.WebServices.Consulta.retCancNFe.nProt;
if trim(nProtCanc)='' then
begin
for I := 0 to ACBrNFe1.WebServices.Consulta.procEventoNFe.Count-1 do
begin
if ACBrNFe1.WebServices.Consulta.procEventoNFe.Items[i].RetEventoNFe.InfEvento.tpEvento = teCancelamento then
begin
if ACBrNFe1.WebServices.Consulta.procEventoNFe.Items[i].RetEventoNFe.retEvento.Count > 0 then
begin
nProtCanc := ACBrNFe1.WebServices.Consulta.procEventoNFe.Items[i].RetEventoNFe.retEvento.Items[0].RetInfEvento.nProt;
strXML := ACBrNFe1.WebServices.Consulta.procEventoNFe.Items[i].RetEventoNFe.retEvento.Items[0].RetInfEvento.XML;
end;
end;
end;
end;
Nessa minha tentativa a variavel nProtCanc é alimentada corretamente, esperava que a variavel strXML também fosse mas ela fica vazia...