Ir para conteúdo
  • Cadastre-se

dev botao

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>MIIH5jCCBc6gAwIBAgIIQxNtl5kWJPkwDQYJKoZIhvcNAQELBQAwezELMAkGA1UEBhMCQlIxEzARBgNVBAoTCklDUC1CcmFzaWwxNjA0BgNVBAsTLVNlY3JldGFyaWEgZGEgUmVjZWl0YSBGZWRlcmFsIGRvIEJyYXNpbCAtIFJGQjEfMB0GA1UEAxMWQUMgQ09OU1VMVEkgQlJBU0lMIFJGQjAeFw0yNDEyMDQxMTE5NTdaFw0yNTEyMDQxMTE5NTdaMIH5MQswCQYDVQQGEwJCUjETMBEGA1UEChMKSUNQLUJyYXNpbDELMAkGA1UECBMCU1AxEDAOBgNVBAcTB0pBQ0FSRUkxFzAVBgNVBAsTDjQwODI5MDg5MDAwMTE4MTYwNAYDVQQLEy1TZWNyZXRhcmlhIGRhIFJlY2VpdGEgRmVkZXJhbCBkbyBCcmFzaWwgLSBSRkIxFjAUBgNVBAsTDVJGQiBlLUNOUEogQTExEzARBgNVBAsTCnByZXNlbmNpYWwxODA2BgNVBAMTL0RPRyBWQUxFIENPTUVSQ0lPIERFIFJBQ09FUyBMVERBOjExMTQ2NzA4MDAwMTcxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwOU59jDHf+4U766/JJgQPsFgPmHrDI4BiMncPnyLHRgKJ84iP2/abCQRrn36RFXgwPVZ+4hILSSlcaSjiT9YC+QxEU766JZhpeeYXlWRvdCk8RAwHlJrHjkNLgxUoSoPb7Z1+ZvLu7RtQL4IshlpRr2X8ZeWTeHjfy+mv+txTOwvg93EfemewazwxicS0fvjs2dsalFzRO7kNdCRT8OncUI9A6Xrohptdeh1yPfoeOCK6DZDsy5nVxbOl2W92m9Eei3FL0DoA1S4LdjjxyaKHL518TixFvSoadutt6sC8rkKTLlG27tlHYJ//qd3I6s0hH7677P8iqOSDWzUpm+diQIDAQABo4IC7TCCAukwHwYDVR0jBBgwFoAUrvGhcHYTavvnlHecMixXyxQ4Wd8wDgYDVR0PAQH/BAQDAgXgMIGABgNVHSAEeTB3MHUGBmBMAQIBQTBrMGkGCCsGAQUFBwIBFl1odHRwOi8vcmVwb3NpdG9yaW8uYWNjb25zdWx0aWJyYXNpbC5jb20uYnIvYWMtYWNjb25zdWx0aWJyYXNpbHJmYi9kcGMtYWNjb25zdWx0aWJyYXNpbHJmYi5wZGYwgeAGA1UdHwSB2DCB1TBooGagZIZiaHR0cDovL3JlcG9zaXRvcmlvLmFjY29uc3VsdGlicmFzaWwuY29tLmJyL2FjLWFjY29uc3VsdGlicmFzaWxyZmIvbGNyLWFjLWFjY29uc3VsdGlicmFzaWxyZmJ2NC5jcmwwaaBnoGWGY2h0dHA6Ly9yZXBvc2l0b3JpbzIuYWNjb25zdWx0aWJyYXNpbC5jb20uYnIvYWMtYWNjb25zdWx0aWJyYXNpbHJmYi9sY3ItYWMtYWNjb25zdWx0aWJyYXNpbHJmYnY0LmNybDB6BggrBgEFBQcBAQRuMGwwagYIKwYBBQUHMAKGXmh0dHA6Ly9yZXBvc2l0b3Jpby5hY2NvbnN1bHRpYnJhc2lsLmNvbS5ici9hYy1hY2NvbnN1bHRpYnJhc2lscmZiL2FjLWFjY29uc3VsdGlicmFzaWxyZmJ2NC5wN2IwgbQGA1UdEQSBrDCBqYEURE9HLlZBTEVASE9UTUFJTC5DT02gIwYFYEwBAwKgGhMYVElBR08gREUgQUxNRUlEQSBGT05TRUNBoBkGBWBMAQMDoBATDjExMTQ2NzA4MDAwMTcxoDgGBWBMAQMEoC8TLTI1MTAxOTg0MzA5OTU0MTU4MzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMKAXBgVgTAEDB6AOEwwwMDAwMDAwMDAwMDAwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMA0GCSqGSIb3DQEBCwUAA4ICAQCImQKPqd9tNwOX2rCiMIF1BhJcwlvw0uBIJMmCHZoXmW4NLpTYXNnTj2gIWKJbOvJyZetw6ZRyKuw/iu4ukwvaVH0rvh/0zQVxA7w7kkcqE2+VDOgGKz1Cvin9gYBcWyb5AQOD2qqtGeUAc+qKcIXOx7bPF+mRhIqWChvczCybszvOZCyG4RMXq/3EkyawW2BB7wJeRGaXpEvkoh8pTf4JQzHl2T1Tc+lgg62K9ajPIbnxyW5PnolQ3fRwSDPnc59hRbZl3zcxOSm5A+lQNeC2RSEzB4p7I6iUOZen3/P5xOuJ31n0Y/gr0LHSNtKP9v4QpAnUJYzAVPVBSBkEzq/YmnktM2Yb6+SDF02xI7vMAkJpDFQvLMdwGwWnNrkIlwqTNQeVP3hLq/KOiG2ki6rDebgceuPasiKGTZu+jJtu9726H2qMgNyQuZEIag6Kol1ubzjyVVwsGYQbvC9NKaWfzA93dAh0g0dxDvnaVuhR0Pdnu4WdjC7KWh1SQZcw41+k9nTyI9EMZmxabjpReGEkYFcYyn26fVqz/zIBfFLIu7bXCgNg2nWBevSEmyl7XxWt5pdLmAGg9eP8L8LZtVQXaVEMSpcwMM1CWOH0WSXnNWa6gre7Zd4Ye9tWPS6HVALE/zlotMFRI4h8R76N0UbP7R1awbvICkY6CYvgdY+fWg==</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

 

 

  • Moderadores
  • Solution
Postado

Tente esta:

ACBrNFe1.WebServices.Consulta.ProcEventoNFe[xx].RetEventoNFe.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.