Página 1 de 1

Problema ao gerar mais de 1 XML

Enviado: 16 Dez 2011 10:43
por Tadeu
Olá Pessoal,

Mais uma vez preciso da ajuda de vocês..... Estou gerando o XML para atender a NFS-e, e já consegui gerar o XML e o mesmo ser validado no site da prefeitura. No entanto considerando que o arquivo gerado não pode ter mais de 50 registros, tive que fazer a quebra e gerar mais de um XML.

Estou tendo um problema sempre com o segundo XML que estou gerando. O primeiro XML o validador do site reconhece sem nenhum problema, mas o segundo esta retornando problema de estrutura, como se houvesse problema no layout do arquivo..

Acredito que seja algum detalhe que precise ser feito quando vou gerar esse segundo XML, mas ainda não descobri o que pode ser....

Estou gerando o XML da seguinte maneira :

Arquivo := "rps1.xml"
If (nHandle := Fcreate(Arquivo)) = - 1
.... Mensagem de erro
Else
Set Devi to Print
Set Printer to &Arquivo.

E no Final para :

Set Devi to screen
Fclose(nHandle)

.....

Esse processo se repete para a criação do segundo XML, e não sei por que ao gerar o segundo a estrutura de acordo com o validador não está correta.


Se alguém tiver alguma dica que possa me dar uma Luz, agradeço muito.....

Mais uma vez, obrigado...

Abraços,

Tadeu

Problema ao gerar mais de 1 XML

Enviado: 16 Dez 2011 14:02
por alxsts
Olá!

A primeira coisa que notei no código postado, é que você está misturando duas coisas:

você deve optar por gravar usando as funções de baixo nível (FCreate(), FOpen(), FWrite(), FClose()) ou por gravar usando o comando SET PRINTER TO (cArquivo), que já cria o arquivo cArquivo, e SET PRINTER TO que fecha cArquivo. Nunca os dois juntos.

No teu exemplo, o FCreate() está criando um arquivo e depois o SET PRINTER TO &Arquivo está criando outro arquivo com o mesmo nome.

Retire o FCreate() e ao término da geração de cada arquivo, feche o arquivo gerado com SET PRINTER TO.

Problema ao gerar mais de 1 XML

Enviado: 16 Dez 2011 20:33
por Pablo César
A solução está em utilizar o FCREATE, FOPEN, FCLOSE, FWRITE (funções de baixo nível) como já disse o colega. Neste tópico aborda esse assunto e tem um exemplo para referência: https://pctoledo.org/forum/viewto ... 802#p52802 que espero que ajude.

Problema ao gerar mais de 1 XML

Enviado: 18 Dez 2011 12:27
por Tadeu
Olá pessoal,

Fiz as alterações, retirando o Fcreate(), mas o problema persiste.... O interessante é que o primeiro arquivo que a rotina está gerando está OK, quando faço a criação do segundo ai dá erro na estrutura do arquivo...

Rotina geração do XML :
Rotina Geracao XML.txt
Arquivo Geração XML
(48.06 KiB) Baixado 119 vezes
Estou anexando a rotina que gera o XML ( a ideia da rotina é gerar ate 4 XML caso eu tenha o numero de 200 registros para informar, ou seja, uma quebra de 50 por arquivos)...

Se voces puderem dar uma olhada e ver se existe algo mais que posso estar esquecendo eu agradeço...


Valeu mais uma vez pela ajuda...

Um grande abraço...

Tadeu