Clipper On Line • Ver Tópico - Tutorial de XML
Página 1 de 1

Tutorial de XML

MensagemEnviado: 08 Ago 2019 16:36
por JoséQuintas
Nem dá pra chamar de tutorial.
Como eu disse, de vez em quando vém aquela inspiração....

Vamos começar com algo da programação.... deve ser novidade, complicado, mas tudo bem:

DO WHILE
   IF
      comandos
   ENDIF
   IF
       IF
         comandos
      ENDIF
   ENDIF
ENDDO


Tudo em pares: IF-ENDIF, DO WHILE-ENDDO
Começa com IF, termina com END-IF, começa com DO termina com END-DO, a diferença é o prefixo END

Agora colocando entre <>

<DO WHILE>
   <IF>
      comandos
   <END-IF>
   <IF>
      <IF>
         comandos
      <END-IF>
   <END-IF>
<END-DO>


agora trocando o prefixo END por /

<DO WHILE>
   <IF>
      comandos
   </IF>
   <IF>
      <IF>
         comandos
      </IF>
   </IF>
</DO>


Pronto, um XML
Pera aí... na verdade falta algo.... ou sobra.... XML é tudo na mesma linha

<DO WHILE><IF>comandos</IF><IF><IF>comandos</IF></IF></DO>


Agora sim, agora é um XML.
O que tem de complicado nisso?
É algo usado o tempo todo, só mudou de "END" pra "/", e "<>" pra destacar do restante.
Do mesmo jeito que temos blocos na programação, temos no XML.

Mas a nota fiscal eletrônica é complicada....

Bom.. uma coisa de cada vez.

O XML da NFE tem vários nomes/blocos para serem usados.
No bloco valor coloca-se valor, no bloco ICMS coloca-se ICMS, no bloco cliente coloca-se cliente.
É quase auto-explicativo.

Então porque o XML de NFE é tão complicado?
Ele não é complicado. O que acontece é que tem muita informação/muitos blocos.

É fácil gerar então?
Sim, é fácil, mas é muito demorado, porque tem muita informação.
E como a informação pode vir de vários arquivos, e cada aplicativo guarda isso de um jeito, cada um acaba tendo que fazer sua própria rotina.

No que ajuda gerar TXT ou INI?
Você não precisa aprender sobre XML, não precisa aprender sobre IF e END-IF.

Será que isso foi um bom negócio?
Será que a cabeça do programador tá tão enferrujada, que não enxerga o IF END-IF ?
Na prática, às vezes consideramos difícil antes mesmo de conhecer o "troço", ou nós mesmos complicamos.
E esquecemos de tentar entender o "troço" em partes.

Lembram? Programação?
Dividir um problema grande em problemas menores

Gerar xml é fácil, são vários blocos.
Dividindo os blocos, outros blocos, e mais outros, até chegar ao campo.
Então... agora ficou simples: temos um campo e precisamos preencher esse campo

São muitos campos.... ué... na linha do fonte, vai preencher tudo de uma vez, ou um campo de cada vez?
Então... um campo por vez, uma linha de fonte por vez.

Se gerar INI, TXT, ou outro formato.... não vai ter esse mesmo trabalho?
Então... pra que merd.... vai aprender outro formato? tá facilitando o que?

Tutorial de XML

MensagemEnviado: 08 Ago 2019 16:54
por JoséQuintas
AH... mas no INI é mais simples, dá até pra usar uma função....

FUNCTION GravaIni( cNome, cValor )
   ?? cNome
   ?? "="
   ?? cValor
   ?? Chr(13) + Chr(10)


Mais fácil ainda...só mudar pra XML

FUNCTION GravaIni( cNome, cValor )

   ?? "<" + cNome + ">"
   ?? cValor
   ?? "</" + cNome + ">"

Tutorial de XML

MensagemEnviado: 08 Ago 2019 18:11
por JoséQuintas
Pra completar, apesar de misturar NFE com XML...

Agora no final do ano tem alteração pra CTE, e talvez NFE, MDFE...

O que altera no conjunto?
Apenas o XML que seria gerado pelo aplicativo.

E pra componentes?
Como eles usam formato INI ou TXT...
Vai ter que esperar eles alterarem o componente, pra depois poder alterar o aplicativo.
Em formato XML, basta adicionar os campos, sem precisar atualizar nada.
Claro... às vezes o componente quebra o galho, preenchendo o que falta com qualquer coisa, assim eles conseguem aprovar.

Em XML:
Você gera o XML, envia pra Fazenda, pega o XML de retorno

Em TXT/INI:
Você gera o arquivo INI/TXT, o componente converte tudo pra gerar XML, o componente faz a parte acima, e converte a resposta pra INI/TXT

De um modo geral, é trabalho pro pessoal do componente, é trabalho pra você aprender o formato deles.
E o pior... fica totalmente dependente.
Aprender o formato deles... só serve pra usar o programa deles.

Gerar em XML, mesmo que não faça a comunicação direta, é o formato padrão da Fazenda.
Por ser padrão, você pode decidir por usar qualquer programa pra comunicação.

Não é questão de um é melhor, ou outro é melhor. Se a Fazenda estiver com problemas, nenhum funciona.
É apenas a questão de ficar livre pra testar/trocar na hora que quiser.
E já puderam ver que XML é fácil, trabalhoso por ter muita informação, mas ainda assim fácil...