Ir para conteúdo
  • Cadastre-se

dev botao

Como validar e exibir mensagens de falha do XML


robsonsx
  • Este tópico foi criado há 2532 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Olá

Estou fazendo uma tela bem simples para validar XML da nfe na hora da compra onde eu carrego um arquivo XML e depois valido ele se a estrutura esta ok para poder ler os dados dele e posteriormente fazer calculos, mas não sei como fazer a validação me retornar os erros caso haja no arquivo, uso o por exemplo:

sl := TStringList.Create;

sl.LoadFromFile(OpenFileXML.FileName );

if not NFe.CarregarXML(sl.Text) then

NFe.NotaFiscal.Valida;

Tentei carregar varios xml de clientes mas todos é retornado apenas "Número de Série do Certificado Digital não especificado !" e não me retorna as falhas em detalhe, isso nos xml de clientes pois carregando os xmls gerado por mim na venda carrega ok porque nao tem erros.

Preciso usar outra função pra validar?

Agradeço desde ja

Robson

Link para o comentário
Compartilhar em outros sites

  • Membros

Bom dia amigo... veja no demo como é o funcionamento, principalmente o uso da função LerConfiguracao, que é importante para o funcionamento do componente.

Só não entendi a questão de validar e depois fazer os cálculos... vale lembrar que você deve preencher todas as tags necessárias e suas informações, antes de validar ou transmitir o xml.

Sérgio

Equipe ACBr Sérgio Assunção
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

[email protected]

Link para o comentário
Compartilhar em outros sites

É o seguinte Sergio, vai funcionar assim, na tela de compras do meu sistema quando for baixar uma compra que fiz do fornecedor quero fazer o seguinte antes:

- Importar o XML gerado pelo sistema de um fornecedor x

- ler o Codigo "EAN trib" do xml dele e gravar no meu produto no meu sistema

só que para poder ler os dados usando o acbr o xml não pode ter erros de sintaxe etc, então antes de ler preciso validar.

resumindo, tudo isso só para ler o cod. EAN trib do fornecedor e atualizar no meu item aqui, e queria saber como fazer esta validação.

Robson

Link para o comentário
Compartilhar em outros sites

  • Membros

É o seguinte Sergio...

só que para poder ler os dados usando o acbr o xml não pode ter erros de sintaxe etc, então antes de ler preciso validar.

Robson

Bom, Robson... se o xml que veio do seu fornecedor tem o protocolo de autorização de uso, é um xml válido, mas de qualquer forma veja como é a validação do xml conforme o demo:


  OpenDialog1.Title := 'Selecione a NFE';

  OpenDialog1.DefaultExt := '*-nfe.XML';

  OpenDialog1.Filter := 'Arquivos NFE (*-nfe.XML)|*-nfe.XML|Arquivos XML (*.XML)|*.XML|Todos os Arquivos (*.*)|*.*';

  OpenDialog1.InitialDir := ACBrNFe1.Configuracoes.Geral.PathSalvar;

  if OpenDialog1.Execute then

  begin

    ACBrNFe1.NotasFiscais.Clear;

    ACBrNFe1.NotasFiscais.LoadFromFile(OpenDialog1.FileName);

    ACBrNFe1.NotasFiscais.Valida;

    if ACBrNFe1.NotasFiscais.Items[0].Alertas <> '' then

      MemoDados.Lines.Add('Alertas: '+ACBrNFe1.NotasFiscais.Items[0].Alertas);

    showmessage('Nota Fiscal Eletrônica Valida');

  end;

Sérgio

  • Curtir 1
Equipe ACBr Sérgio Assunção
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

[email protected]

Link para o comentário
Compartilhar em outros sites

Valeu deu certo,,, ta listando os alertas agora ok.

Deu pra verificar que apesar da nfe estar protocolada o XML do fornecedor esta com erros internos tipo quebra ancima da tag ex:

falha no arquivo

e>FORNECEDOR XFORNECEDOR X

AV X A

PACHECO1ZONA

Isddd333300JAUSP1721

00001058BRASIL0000012200

nderEmit>4011975555555599788111013

vou instruir o cliente para contactar o fornecedor dele pra ele enviar corretamente o arquivo XML para que possa ser importado

valeu muito grato Sergio

Link para o comentário
Compartilhar em outros sites

  • 3 anos depois...

Ao tentar validar o lote de RPS no NFSe estou tendo o seguinte retorno: 

Falha na validação dos dados da nota xxxxx 1845 - Element 'Rps': No matching global declaration available for the validation root.

 

Alguém teve esse problema? Acho a solução? Qual?

 

Agradeço qualquer ajuda.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia,

 

Você esta tentando utilizar o Valida, para validar o XML de um RPS?

 

Se sim, não vai funcionar, pois o Valida é usado internamente pelo componente para validar o Lote de RPS.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...
Em 04/08/2011 at 09:41, Sérgio Assunção disse:

 

Bom, Robson... se o xml que veio do seu fornecedor tem o protocolo de autorização de uso, é um xml válido, mas de qualquer forma veja como é a validação do xml conforme o demo:

 

 

  OpenDialog1.Title := 'Selecione a NFE';

  OpenDialog1.DefaultExt := '*-nfe.XML';

  OpenDialog1.Filter := 'Arquivos NFE (*-nfe.XML)|*-nfe.XML|Arquivos XML (*.XML)|*.XML|Todos os Arquivos (*.*)|*.*';

  OpenDialog1.InitialDir := ACBrNFe1.Configuracoes.Geral.PathSalvar;

  if OpenDialog1.Execute then

  begin

    ACBrNFe1.NotasFiscais.Clear;

    ACBrNFe1.NotasFiscais.LoadFromFile(OpenDialog1.FileName);

    ACBrNFe1.NotasFiscais.Valida;

    if ACBrNFe1.NotasFiscais.Items[0].Alertas <> '' then

      MemoDados.Lines.Add('Alertas: '+ACBrNFe1.NotasFiscais.Items[0].Alertas);

    showmessage('Nota Fiscal Eletrônica Valida');

  end;

 

 

Sérgio

ACBrNFe1.Configuracoes.Arquivos.PathSalvar;

Atenciosamente

___________________________________________

Adolfo Jefferson Fernandes Lopes

Top Software Consultoria em Informática Ltda. 1992
Top Software Ltda. 2017
(41) 99144-1838 whats ** 3323-1622

[email protected]
http://imastercontroll.blogspot.com/

Link para o comentário
Compartilhar em outros sites

  • 4 meses depois ...
  • Membros Pro

Bom dia Pessoal

Estou com um problema parecido e gostaria de ver se alguém consegue me ajudar:

O arquivo .XML da NFe é do meu fornecedor.

Quando tento validar dá o seguinte erro :

"Número de Série do Certificado Digital não especificado !"

Porém como informei o .XML é do meu fornecedor e não do cliente, aí especifico o número de série com o certificado local (meu cliente) e passa a dar o seguinte erro :

"O conjunto de chaves não está definido"

Porém é um arquivo válido pois consigo imprimir a danfe e está assinado e consultando no sefaz consta a entrega.

 

Como faço para validar um arquivo de um fornecedor ???

_____________________________________

Junior - Rhovanion Tecnologia

(11) 4224.6543

Link para o comentário
Compartilhar em outros sites

jah validaste a nota no site do sefaz? ou qq outro para esse efeito?

sefaz.rs

tecnospeed

se o problema se mantem então é possível que a nota não seja válida, podem existir diversos motivos para isso, seja como for deves contatar o fornecedor para que te envie uma correta. Alternativamente, se tens a opção de efetuar o download da nota pela manifestação de distribuição também obténs a nota válida, mas para isso é necessário que ela ainda esteja disponivel pelo sefaz.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...
  • Membros Pro
Em 2016-5-4 at 11:41, André Ferreira de Moraes disse:

Com o demo ocorre o mesmo problema?

André, desenterrando o assunto. Ainda não consigo usar a validação do arquivo do fornecedor se não estiver usando o certificado digital plugado no computador. Porém no meu cliente a pessoa que gera as NFe de venda não é a mesma que recebe os arquivos dos fornecedores e faz a importação do xml para dentro do nosso sistema, isto é, para eu validar um xml de um fornecedor tenho que estar com o meu certificado plugado..

Como contorno isso ?? É possível eu validar um xml sem o certificado digital ??

Em 2016-5-4 at 14:01, JoaoPauloRicardo disse:

jah validaste a nota no site do sefaz? ou qq outro para esse efeito?

sefaz.rs

tecnospeed

se o problema se mantem então é possível que a nota não seja válida, podem existir diversos motivos para isso, seja como for deves contatar o fornecedor para que te envie uma correta. Alternativamente, se tens a opção de efetuar o download da nota pela manifestação de distribuição também obténs a nota válida, mas para isso é necessário que ela ainda esteja disponivel pelo sefaz.

JoaoPauloRicardo não acontece só em uma nota, mas em todas, conforme posto para o Andre, acho que se trata da necessidade de ter o certificado plugado na máquina para fazer a validação.

Onde será que estou errando ?

_____________________________________

Junior - Rhovanion Tecnologia

(11) 4224.6543

Link para o comentário
Compartilhar em outros sites

  • Moderadores
Em 2017-5-19 at 16:35, Edevair Viesa Junior disse:

Como contorno isso ?? É possível eu validar um xml sem o certificado digital ??

Qual comando vc está utilizando?

  • Curtir 1
djsystem-logo.png
 youtube.png facebook.png instagram.png linkedin.png
André Ferreira de Moraes | Analista de Sistemas
www.djsystem.com.br | www.djpdv.com.br
www.tefhouse.com.br | www.lambretinha.com.br
Link para o comentário
Compartilhar em outros sites

  • Fundadores
Em 19/05/2017 at 16:35, Edevair Viesa Junior disse:

André, desenterrando o assunto. Ainda não consigo usar a validação do arquivo do fornecedor se não estiver usando o certificado digital plugado no computador. Porém no meu cliente a pessoa que gera as NFe de venda não é a mesma que recebe os arquivos dos fornecedores e faz a importação do xml para dentro do nosso sistema, isto é, para eu validar um xml de um fornecedor tenho que estar com o meu certificado plugado..

Como contorno isso ?? É possível eu validar um xml sem o certificado digital ??

JoaoPauloRicardo não acontece só em uma nota, mas em todas, conforme posto para o Andre, acho que se trata da necessidade de ter o certificado plugado na máquina para fazer a validação.

Onde será que estou errando ?

Sim, é possível, a rotina de Validação de XML contra o Schema e a rotina de validação da Assinatura do XML, não devem depender do certificado instalado (pois ele não é usado nessas rotinas)

O que ocorre (e que estou modificando no momento)...é que se o XML não estiver assinado ou tiver as tags de assinatura inválidas, o ACBr tentará assinar o XML.. e essa operação requer o certificado...

Estou modificando para que o ACBr nunca  tente assinar um XML, na chamda dos métodos: Validar ou VerificarAssinatura

  • Curtir 3
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Já no SVN...

Citar

-- ACBRNFeNotasFiscais --
[*] Método "NotaFiscal.Validar", modificado para não tentar assinar o XML, caso
    o mesmo não contenha a Tag de assinatura
    (por: DSA)

 

  • Curtir 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
3 horas atrás, Daniel Simoes disse:

Já no SVN...

 

Ok. Vou fazer a atualização e posto os resultados. Muito Obrigado !

Em 2017-5-23 at 16:25, André Ferreira de Moraes disse:

Qual comando vc está utilizando?

André, o comando NostaFiscais.Validar;

_____________________________________

Junior - Rhovanion Tecnologia

(11) 4224.6543

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2532 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

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.