Clipper On Line • Ver Tópico - Ler XML sem a TAG nNF
Mudar para estilo Clássico
Discussão sobre desenvolvimento de software para atender as exigências da legislação fiscal e tributária (ECF, TEF, SINTEGRA, NF-e, ECD, EFD, etc.)
Postar uma resposta

Ler XML sem a TAG nNF

17 Abr 2018 16:39

Ola!
Alguém já pegou um XML assim ?

Saudações,
Itamar M. Lins Jr.

Ler XML sem a TAG nNF

17 Abr 2018 18:16

Já sim, mas não era de NFE.... rs

Ler XML sem a TAG nNF

18 Abr 2018 07:55

Vixe !!! mais uma verificação então... O estado eu já pego da chave... Vou aproveitar e pegar o número, o cnj também...

Rubens

Ler XML sem a TAG nNF

18 Abr 2018 09:25

Eu já pego tudo que a chave tem disponível.

Mas a tag é obrigatória, se não existir no XML, então o XML é inválido, ou não é de NFE.

Ler XML sem a TAG nNF

18 Abr 2018 13:24

Se for assinado, conferir a assinatura.

Também daria pra validar com o schemma, mas isso exige também detectar qual o tipo de XML, qual a versão do XML, até mesmo a data do XML pra comparar com o schemma correto.
A validação é simples, o difícil é justamente decidir qual o conjunto de schemmas, e mantê-los atualizados.
Já faz parte do Windows a rotina de validação

No aplicativo seria algo do tipo: Validar( arquivo, schemma )

Mas como exemplo de schemmas:

Pasta de d:\cdrom\FONTES\INTEGRA\schemmas

12/02/2018 17:21 <DIR> .
12/02/2018 17:21 <DIR> ..
09/10/2017 10:36 <DIR> Evento_Canc_PL_v1.01
09/10/2017 10:35 <DIR> Evento_CCe_PL_v1.01
09/10/2017 18:21 <DIR> PL_008i2_CFOP_EXTERNO
09/10/2017 10:33 <DIR> PL_009_V4
09/10/2017 10:31 <DIR> PL_CTe_300
18/11/2017 02:50 <DIR> PL_CTe_300_NT2017.002
12/02/2018 17:21 <DIR> PL_CTe_300_NT2017.003
25/05/2017 22:57 <DIR> PL_MDFeDistDFe_100
09/10/2017 18:13 <DIR> PL_MDFe_300_NT022017
02/10/2017 12:40 <DIR> PL_MDFe_300_NT032017
25/05/2017 22:57 <DIR> PL_NFeDistDFe_102


Pasta de d:\cdrom\FONTES\INTEGRA\schemmas\PL_MDFe_300_NT032017

02/10/2017 12:40 <DIR> .
02/10/2017 12:40 <DIR> ..
02/10/2017 12:07 3.629 consMDFeNaoEncTiposBasico_v3.00.xsd
02/10/2017 12:07 571 consMDFeNaoEnc_v3.00.xsd
02/10/2017 12:07 6.271 consReciMDFeTiposBasico_v3.00.xsd
02/10/2017 12:07 597 consReciMDFe_v3.00.xsd
02/10/2017 12:07 4.559 consSitMDFeTiposBasico_v3.00.xsd
02/10/2017 12:07 569 consSitMDFe_v3.00.xsd
02/10/2017 12:07 620 consStatServMDFe_v3.00.xsd
02/10/2017 12:07 4.033 consStatServTiposBasico_v3.00.xsd
02/10/2017 12:07 592 distMDFe_v3.00.xsd
02/10/2017 12:07 711 enviMDFe_v3.00.xsd
02/10/2017 12:07 1.564 evCancMDFe_v3.00.xsd
02/10/2017 12:07 1.967 evEncMDFe_v3.00.xsd
02/10/2017 12:07 8.535 eventoMDFeTiposBasico_v3.00.xsd
02/10/2017 12:07 597 eventoMDFe_v3.00.xsd
02/10/2017 12:07 1.935 evIncCondutorMDFe_v3.00.xsd
02/10/2017 12:07 5.554 leiauteDistMDFe_v3.00.xsd
02/10/2017 12:07 3.958 mdfeConsultaDFeTiposBasico_v3.00.xsd
02/10/2017 12:07 561 mdfeConsultaDFe_v3.00.xsd
02/10/2017 12:07 3.479 mdfeModalAereo_v3.00.xsd
02/10/2017 12:07 10.365 mdfeModalAquaviario_v3.00.xsd
02/10/2017 12:07 5.333 mdfeModalFerroviario_v3.00.xsd
02/10/2017 12:07 24.201 mdfeModalRodoviario_v3.00.xsd
02/10/2017 12:07 81.778 mdfeTiposBasico_v3.00.xsd
02/10/2017 12:07 561 mdfe_v3.00.xsd
02/10/2017 12:07 587 procEventoMDFe_v3.00.xsd
02/10/2017 12:07 899 procMDFe_v3.00.xsd
02/10/2017 12:07 623 retConsMDFeNaoEnc_v1.00.xsd
02/10/2017 12:07 623 retConsMDFeNaoEnc_v3.00.xsd
02/10/2017 12:07 614 retConsReciMDFe_v3.00.xsd
02/10/2017 12:07 622 retConsSitMDFe_v3.00.xsd
02/10/2017 12:07 632 retConsStatServMDFe_v3.00.xsd
02/10/2017 12:07 574 retDistMDFe_v3.00.xsd
02/10/2017 12:07 603 retEnviMDFe_v3.00.xsd
02/10/2017 12:07 605 retEventoMDFe_v3.00.xsd
02/10/2017 12:07 614 retMDFeConsultaDFe_v3.00.xsd
09/10/2017 13:44 1.084 Sample.xml
02/10/2017 12:07 24.217 tiposGeralMDFe_v3.00.xsd
02/10/2017 12:07 3.749 xmldsig-core-schema_v1.01.xsd
38 arquivo(s) 208.586 bytes

Ler XML sem a TAG nNF

18 Abr 2018 13:28

É mais complicado do que parece...

Pode ser que saiu um pacote novo, que vale a partir de determinada data.
Não tem a ver com versão de nota fiscal, versão do XML, data do XML, mas sim da data que começar a ser usado.

Como escolher?
Nunca pensei nisso.

No momento da emissão... você vai saber que pacote está usando no aplicativo.
Mas depois disso.... complicou... só se testar contra cada schemma pra ver se algum bate.

Teoricamente... se a assinatura bate, é o XML original que foi assinado.

Ler XML sem a TAG nNF

18 Abr 2018 13:36

E complementando:

Por isso eu digo que o projeto é um lixo.
Você tem um XML que nem sabe se é verdadeiro.

Se conferir a chave na Sefaz... vai bater, mas não significa que é válido/verdadeiro.
Se conferir a assinatura... vai bater, mas não significa que é válido/verdadeiro.
Se conferir schemma... vai bater, mas não significa que é válido/verdadeiro.

Talvez... se baixar protocolo + digest value, e conferir digest value + assinatura... neste caso vai ser exatamente igual, mas nem lembro se o digest value é baixado.

No final, guardamos o que PARECE ser o XML oficial, e só isso.

Ler XML sem a TAG nNF

18 Abr 2018 13:42

Só lembrando....
Nas notas eletrônicas de 2008 nem existia o protocolo.
TODAS seriam consideradas não autorizadas atualmente.

Ou seja.... com o tempo, a nota válida se transforma em inválida.... rs

É do jeito que os políticos gostam... pras falcatruas deles....
FIcam 4 anos, falsificam tudo, e o próximo nem vai poder conferir nada, porque 5 anos depois não tem mais nem na Sefaz....

Ler XML sem a TAG nNF

19 Abr 2018 10:20

Ola!
Só para constar, é um XML de CTe
Tem os campos iniciais iguais a NF-e, só que no lugar no nNF tem nCT, as outras tags iniciais iguais a uma NFe por isso deu erro... Já corrigir aqui para visar ao cliente.

Saudações,
Itamar M. Lins Jr.

Ler XML sem a TAG nNF

19 Abr 2018 11:31

Itamar M. Lins Jr. escreveu:Só para constar, é um XML de CTe


A identificação disso faz parte da chave de acesso.

NFE = 55
CTE = 57
MDFE = 58
NFCE = 65
CTE-OS = 67

Tenho algo sobre isso na SefazClass pra identificar o tipo de XML, baseado em algumas tags que um tem e outro não.
Identifico NFE por último, porque NFe pode ter dentro dos outros também.

https://github.com/JoseQuintas/sefazclass/blob/master/source/ze_sefazclass.prg#L1642-L1677

Ler XML sem a TAG nNF

19 Abr 2018 11:39

Agora que vi... a rotina tá errada, estou usando XmlTag() ao invés de XmlNode() pra pegar o tipo de evento.
Nenhum problema grave. Retorna que é evento, mas a parte de identificar evento não funciona.
Para o uso que faço dela, não devo ter precisado disso e não percebi.

Ler XML sem a TAG nNF

19 Abr 2018 11:41

hazael escreveu:Eu estava fazendo algo bem parecido para organizar os XML dentro de uma pasta, usando a chave e mais alguns campos para confirmar, deixando a NFe por último por ser a mais genérica e ter quase todos campos em comum com os outros (por exemplo com a NFCe)


Pra isso uso XmlToDoc()

oDoc := XmlToDoc( "arquivo.xml" )

a partir daí, as informações estão em oDoc.
Por exemplo oDoc:Chave
Postar uma resposta