SISBLU Software Postado Terça as 15:09 Postado Terça as 15:09 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> <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> </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
Moderadores BigWings Postado Terça as 15:29 Moderadores Postado Terça as 15:29 Veja: BigWingsAjude o Projeto ACBr crescer - Assine o SAC
SISBLU Software Postado Terça as 15:35 Autor Postado Terça as 15:35 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;
SISBLU Software Postado Terça as 15:56 Autor Postado Terça as 15:56 Eu coloquei para salvar em DISCO e realmente salvou da maneira que preciso. (conforme anexo ) Mas como não salvo em disco por ser sistema WEB, existe alguma solução pra isso? 1101113525061114670800017155001000054775188602336701-procEventoNFe.xml
Moderadores BigWings Postado Terça as 20:11 Moderadores Postado Terça as 20:11 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. BigWingsAjude o Projeto ACBr crescer - Assine o SAC
SISBLU Software Postado Terça as 21:09 Autor Postado Terça as 21:09 Não deu certo... erro: Argument out of range
Moderadores Solution BigWings Postado Terça as 21:52 Moderadores Solution Postado Terça as 21:52 Tente esta: ACBrNFe1.WebServices.Consulta.ProcEventoNFe[xx].RetEventoNFe.XML BigWingsAjude o Projeto ACBr crescer - Assine o SAC
SISBLU Software Postado Terça as 22:36 Autor Postado Terça as 22:36 Perfeito, querido amigo, muito obrigado!
SISBLU Software Postado Terça as 22:45 Autor Postado Terça as 22:45 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.
SISBLU Software Postado Terça as 22:52 Autor Postado Terça as 22:52 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">
SISBLU Software Postado Terça as 23:01 Autor Postado Terça as 23:01 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>';
Recommended Posts
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 contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora