Gerar XML no Clipper
Moderador: Moderadores
Olá,
Como meu sistema de farmácia ainda é em Clipper e precisava de uma forma urgente de comunicação via webservices com o Datasus, a maneira que encontrei foi criar uma rotina em Delphi mesmo, que fica no servidor de comunicação, e que faz todo o trabalho "sujo". Mais ou menos assim :
1) O programazinho fica no diretório do meu programa, executando na bandeja do windows, e fica esperando um arquivo .txt, criado pelo meu sistema.
2) Ele pega esse .txt converte para .xml e envia para o Datasus, que responde também com um arquivo .xml. Eu trato esse arquivo e gero um outro .txt que meu programa vai ler e interpretar.
Pronto !
Essa comunicação toda entre gerar o 1º .txt e a rotina em delphi gerar o .txt de retorno não demora mais do que 10s. É muito rápido.
Agora, a Anvisa também está pedindo que a comunicação seja via webservices, mas pelo menos temos mais tempo ( até Fev/2008 ). Como estou convertendo meu sistema para xharbour, vou incorporar tudo dentro do sistema, mas em Clipper é dureza.
É isso.
[]s
Manoel Angeiras
Porque Delphi ? já tenho "intimidade" suficiente com seu ambiente de programação e para criação de webservices é uma "mão-na-roda". Não precisa fazer quase nada mesmo ( quer dizer, depois que a gente se acustuma com a lógica do XML ).
Como meu sistema de farmácia ainda é em Clipper e precisava de uma forma urgente de comunicação via webservices com o Datasus, a maneira que encontrei foi criar uma rotina em Delphi mesmo, que fica no servidor de comunicação, e que faz todo o trabalho "sujo". Mais ou menos assim :
1) O programazinho fica no diretório do meu programa, executando na bandeja do windows, e fica esperando um arquivo .txt, criado pelo meu sistema.
2) Ele pega esse .txt converte para .xml e envia para o Datasus, que responde também com um arquivo .xml. Eu trato esse arquivo e gero um outro .txt que meu programa vai ler e interpretar.
Pronto !
Essa comunicação toda entre gerar o 1º .txt e a rotina em delphi gerar o .txt de retorno não demora mais do que 10s. É muito rápido.
Agora, a Anvisa também está pedindo que a comunicação seja via webservices, mas pelo menos temos mais tempo ( até Fev/2008 ). Como estou convertendo meu sistema para xharbour, vou incorporar tudo dentro do sistema, mas em Clipper é dureza.
É isso.
[]s
Manoel Angeiras
Porque Delphi ? já tenho "intimidade" suficiente com seu ambiente de programação e para criação de webservices é uma "mão-na-roda". Não precisa fazer quase nada mesmo ( quer dizer, depois que a gente se acustuma com a lógica do XML ).
Clipper 5.2e + sixcdx + catools + nanfor
xHarbour 1.0.0 + gtwvw / xHarbour 1.2.1 + Fivewin
xHarbour 1.0.0 + gtwvw / xHarbour 1.2.1 + Fivewin
-
Stanis Luksys
- Colaborador

- Mensagens: 1329
- Registrado em: 18 Jun 2005 03:04
- Localização: São Paulo
- Contato:
Sim, isso já comentei em outro tópico. Já tenho solução parcial para o problema utilizando Clipper, e completa utilizando as classes de XML do xHarbour.angeiras escreveu:Agora, a Anvisa também está pedindo que a comunicação seja via webservices, mas pelo menos temos mais tempo ( até Fev/2008 ).
Mas isso muda muito de sistema para sistema. No meu até que foi razoavelmente simples, só faltovam mesmo os dados do prescritor da receita. É chato fazer mas não é nenhum bixo de sete cabeças...
Falou!
Stanis Luksys
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
-
Forrest_Gump
- Usuário Nível 1

- Mensagens: 37
- Registrado em: 05 Set 2004 12:59
- Localização: Presidente Prudente - SP
-
Forrest_Gump
- Usuário Nível 1

- Mensagens: 37
- Registrado em: 05 Set 2004 12:59
- Localização: Presidente Prudente - SP
-
Stanis Luksys
- Colaborador

- Mensagens: 1329
- Registrado em: 18 Jun 2005 03:04
- Localização: São Paulo
- Contato:
Opa,
stanis.luksys()gmail.com
Valeu!
stanis.luksys()gmail.com
Valeu!
Stanis Luksys
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Boa noite.
Deu certo ai turma.....
se o pessoal tiver duvida
so chamar
Deu certo ai turma.....
Código: Selecionar todos
xinicio=substr(dtos(xdtinicio),1,4)+'-'+substr(dtos(xdtinicio),5,2)+'-'+substr(dtos(xdtinicio),7,2)
xfinal =substr(dtos(xdtfinal),1,4)+'-'+substr(dtos(xdtfinal),5,2)+'-'+substr(dtos(xdtfinal),7,2)
set printer to &xhjdata
set device to printer
@prow()+00,00 say '<?xml version="1.0" encoding="ISO-8859-1"?>'
@prow()+01,00 say '<mensagemSNGPC xmlns="urn:sngpc-schema">'
@prow()+01,08 say '<cabecalho>'
@prow()+01,16 say '<cnpjEmissor>'+ alltrim(xpcnpj) +'</cnpjEmissor>'
@prow()+01,16 say '<cpfTransmissor>'+ alltrim(xpcpf) +'</cpfTransmissor>'
@prow()+01,16 say '<dataInicio>' + xinicio + '</dataInicio>'
@prow()+01,16 say '<dataFim>' + xfinal + '</dataFim>'
@prow()+01,08 say '</cabecalho>'
@prow()+02,08 say '<corpo>'
@prow()+01,00 say '<medicamentos>'
do while !EOF() //.AND. data <= xfinal
.
.
.
.
.
.
@prow()+01,32 say '</substanciaInsumoVendaAoConsumidor>'
@prow()+01,32 say '<dataVendaInsumo>'+ substr(dtos(dtrec),1,4)+'-'+substr(dtos(dtrec),5,2)+'-'+substr(dtos(dtrec),7,2) +'</dataVendaInsumo>'
@prow()+01,24 say '</saidaInsumoVendaAoConsumidor>'
endif
skip
enddo
@prow()+01,00 say '</insumos>'
@prow()+01,00 say '</corpo>'
@prow()+01,00 say '</mensagemSNGPC>'
set device to screen
set printer off
set printer to
so chamar
Sempre há uma solucao para os nossos problema clipper.....
-
Stanis Luksys
- Colaborador

- Mensagens: 1329
- Registrado em: 18 Jun 2005 03:04
- Localização: São Paulo
- Contato:
Olá marbio,
Eu fiz do mesmo jeitão!
Só tenho algumas dúvidas ainda com relação aos insumos. Me diga uma coisa, ao vender um medicamento, seus respectivos insumos devem constar no XML? Ou isso se aplica somente as farmácias que manipulam tais materiais?
Falou!
Eu fiz do mesmo jeitão!
Só tenho algumas dúvidas ainda com relação aos insumos. Me diga uma coisa, ao vender um medicamento, seus respectivos insumos devem constar no XML? Ou isso se aplica somente as farmácias que manipulam tais materiais?
Falou!
Stanis Luksys
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Boa Noite!!
Com relação a insumo so se aplica as farmacias q manipulam tais medicamentos.
Agora se tiver vc tiver alguma farmacia que vende medicamento industrializado e manipulado. tem q ser no mesmo arquiovo. nao pode ser seprados.
q e o meu casao eu tenho uns clientes de manipulacao com medicamentos industrializado.
se precisar de mais informaçoes estarei ai
t+
um grande abraço.
Com relação a insumo so se aplica as farmacias q manipulam tais medicamentos.
Agora se tiver vc tiver alguma farmacia que vende medicamento industrializado e manipulado. tem q ser no mesmo arquiovo. nao pode ser seprados.
q e o meu casao eu tenho uns clientes de manipulacao com medicamentos industrializado.
se precisar de mais informaçoes estarei ai
t+
um grande abraço.
Sempre há uma solucao para os nossos problema clipper.....

