Ir para conteúdo
  • Cadastre-se

dev botao

Erro na estrutura do XML de Cancelamento ao fazer uma CONSULTA


Ver Solução Respondido por BigWings,

Recommended Posts

Postado

Bom dia! preciso de uma ajuda na consulta de xml de cancelamento

Preciso enviar XML de cancelamento para contabilidade de um cliente.

Eu uso a função CONSULTA : DMAcbr.ACBrNFe1.WebServices.Consulta.NFeChave

Mas traz o XML de cancelamento com tags que o programa deles não aceitam

Eu tenho que remover a tag do cabeçalho para ficar igual.

 

Como posso fazer isso

Segue o que preciso remover:

 

<retConsSitNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="4.00">
<tpAmb>1</tpAmb>
<verAplic>SP_NFE_PL009_V4</verAplic>
<cStat>101</cStat>
<xMotivo>Cancelamento de NF-e homologado</xMotivo>
<cUF>35</cUF>
<dhRecbto>2025-07-01T09:46:50-03:00</dhRecbto>
<chNFe>35250611146708000171550010000547751886023367</chNFe>
<protNFe versao="4.00">
<infProt>
<tpAmb>1</tpAmb>
<verAplic>SP_NFE_PL009_V4</verAplic>
<chNFe>35250611146708000171550010000547751886023367</chNFe>
<dhRecbto>2025-06-26T16:35:49-03:00</dhRecbto>
<nProt>135251741574616</nProt>
<digVal>cbkrdUuNXhJ/pmTdjzz4TpJpI+k=</digVal>
<cStat>100</cStat>
<xMotivo>Autorizado o uso da NF-e</xMotivo>
</infProt>
</protNFe>
<retCancNFe versao="3.10">
<infCanc>
<tpAmb>1</tpAmb>
<verAplic>SP_NFE_PL009_V4</verAplic>
<cStat>101</cStat>
<xMotivo>Cancelamento de NF-e homologado</xMotivo>
<cUF>35</cUF>
<chNFe>35250611146708000171550010000547751886023367</chNFe>
<dhRecbto>2025-06-26T16:35:49-03:00</dhRecbto>
<nProt>135251741574616</nProt>
</infCanc>
</retCancNFe>
-------------
 
tenho que deixar somente
 
<procEventoNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.00">
<evento versao="1.00">
<infEvento Id="ID1101113525061114670800017155001000054775188602336701">
<cOrgao>35</cOrgao>
<tpAmb>1</tpAmb>
<CNPJ>11146708000171</CNPJ>
<chNFe>35250611146708000171550010000547751886023367</chNFe>
<dhEvento>2025-06-27T10:58:54-03:00</dhEvento>
<tpEvento>110111</tpEvento>
<nSeqEvento>1</nSeqEvento>
<verEvento>1.00</verEvento>
<detEvento versao="1.00">
<descEvento>Cancelamento</descEvento>
<nProt>135251741574616</nProt>
<xJust>Dados incorretos</xJust>
</detEvento>
</infEvento>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<Reference URI="#ID1101113525061114670800017155001000054775188602336701">
<Transforms>
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<DigestValue>+f5ctvps+VJdiFeT8ksf84Ba1+c=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>MR5MR3G2Ptn+VJYFgNqm553N1NZT6yaXUBU5AzXq8bvD3mR3oRW6go/8003yCglyvSicb8i/Ypaoro6GeA3rlAvfeAySjhudRAp6rzHHJFtAOEh/XZeTqYqqXIykns778afH8xpS/G6sfVmvRDZUDOKcrdlTvVTpi/sHcgCHEYnLJDsL/tH9VYgj1NWgFt5YmCPzBFt367PnATkDwQLd8O9xdqhrn7G3N3ISarQqLzZUygO91OneQNthTCu9QQoarE5MaV3i7UCgaYDnshQHo8/IKQrn6pCNaYakMCPV4JxEGtG0hu+6AF/xwdn/a13GX08l1a2UwaHmDT0hP+1FAw==</SignatureValue>
<KeyInfo>
<X509Data>
<X509Certificate>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</X509Certificate>
</X509Data>
</KeyInfo>
</Signature>
</evento>
<retEvento versao="1.00">
<infEvento>
<tpAmb>1</tpAmb>
<verAplic>SP_EVENTOS_PL_100</verAplic>
<cOrgao>35</cOrgao>
<cStat>135</cStat>
<xMotivo>Evento registrado e vinculado a NF-e</xMotivo>
<chNFe>35250611146708000171550010000547751886023367</chNFe>
<tpEvento>110111</tpEvento>
<xEvento>Cancelamento registrado</xEvento>
<nSeqEvento>1</nSeqEvento>
<CNPJDest>03907590000129</CNPJDest>
<dhRegEvento>2025-06-27T10:58:55-03:00</dhRegEvento>
<nProt>135251749357545</nProt>
</infEvento>
</retEvento>
</procEventoNFe>

XML_REF_NFe 54775 Gerado do ACBR.xml 35250611146708000171550010000547001601535754_110111-procEventoNFe.xml

Postado

Certo, mas como eu uso sistema WEB, então não gravo nada em DISCO.

Eu pego o retorno do XML e gravo no banco de dados.

Você disse: Por exemplo, se no retorno tivermos o evento de cancelamento, será salvo na pasta: ...\Evento\Cancelamento o arquivo *-procEventoNFe.xml (caso estejamos consultando uma NF-e).

Existe possibilidade de salvar somente o XML  no banco de dados?

 

DMAcbr.ACBrNFe1.NotasFiscais.Clear;
  DMAcbr.ACBrNFe1.WebServices.Consulta.NFeChave := UniMainModule.IBQNFEId.Value;
  DMAcbr.ACBrNFe1.WebServices.Consulta.ExtrairEventos:=true;

    try
    DMAcbr.ACBrNFe1.WebServices.Consulta.Executar;

     vXMLDoc := TXMLDocument.Create(self);
     try
     vXMLDoc.Active := False;
     vXMLDoc.XML.Clear;
     vXMLDoc.XML.Text:= UTF8Encode(DMAcbr.ACBrNFe1.WebServices.Consulta.RetWS);
     vXMLDoc.Active := True;
     vXMLDoc.Encoding := 'utf-8';
     vXMLDoc.Version := '1.0';


    UniMainModule.IBQXML.Close;
    UniMainModule.IBQXML.SQL.Clear;
    UniMainModule.IBQXML.SQL.Add('insert into [xml](IDXML,[XML],DATA,IDNF,TIPO)');
    UniMainModule.IBQXML.SQL.Add('values (:P1,:P2,:P3,:P4,:P5)');
    UniMainModule.IBQXML.Parameters.ParamByName('P1').Value:=UniMainModule.IBQNFEId.Value;
    UniMainModule.IBQXML.Parameters.ParamByName('P2').Value :=vXMLDoc.XML.Text;
    UniMainModule.IBQXML.Parameters.ParamByName('P3').Value:=date+time;
    UniMainModule.IBQXML.Parameters.ParamByName('P4').Value:=UniMainModule.IBQNFECODIGO.Value;
    UniMainModule.IBQXML.Parameters.ParamByName('P5').Value:='Evento';
    UniMainModule.IBQXML.ExecSQL;

  • Moderadores
Postado
4 horas atrás, SISBLU Software disse:

Mas como não salvo em disco por ser sistema WEB, existe alguma solução pra isso?

Tente após a consulta ler a propriedade ACBrNFe1.EventoNFe.Evento[x].XML.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Postado

Mais faltou algo. O XML que a contabilidade importa começa assim, vem do sistema (OMIE)

<procEventoNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.00">
<evento xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.00">
 
e em nosso SISTEMA está gerando assim (ACBR)
 
<procEventoNFe versao="1.00">
<evento xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.00">
 
E somente por isso, dá erro de estrutura.
 
 
Postado

Verifiquei aqui e no próprio manual da receita, diz para fazer desta maneira, agora temos que ver como fazer isso no ACBR

 

<procEventoNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.00">
<evento xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.00">

Postado

Creio que seja aqui: ACBrNFeWebServices.pas

 

procedure SalvarEventos(Retorno: string);
var
  aEvento, aProcEvento, aIDEvento, sPathEvento, sCNPJ: string;
  Inicio, Fim: Integer;
  TipoEvento: TpcnTpEvento;
  Ok: Boolean;
begin
  while Retorno <> '' do
  begin
    Inicio := Pos('<procEventoNFe', Retorno);
    Fim    := Pos('</procEventoNFe>', Retorno) + 15;

    aEvento := Copy(Retorno, Inicio, Fim - Inicio + 1);

    Retorno := Copy(Retorno, Fim + 1, Length(Retorno));

    aProcEvento := '<procEventoNFe versao="' + FVersao + '" xmlns="' + ACBRNFE_NAMESPACE + '">' +
                      SeparaDados(aEvento, 'procEventoNFe') +
                   '</procEventoNFe>';
 

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.