Gerar XML no Clipper

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

angeiras
Usuário Nível 3
Usuário Nível 3
Mensagens: 134
Registrado em: 21 Nov 2005 20:53
Localização: Olinda/PE

Mensagem por angeiras »

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 ).
Clipper 5.2e + sixcdx + catools + nanfor
xHarbour 1.0.0 + gtwvw / xHarbour 1.2.1 + Fivewin
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem por Stanis Luksys »

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 ).
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.

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.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Para quem quiser dar uma olhada ...tenho alguns exemplos de uso da XML no xHarbour....qualquer coisa é só me passar o email que mando !!!

Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Forrest_Gump
Usuário Nível 1
Usuário Nível 1
Mensagens: 37
Registrado em: 05 Set 2004 12:59
Localização: Presidente Prudente - SP

Mensagem por Forrest_Gump »

ola, gostaria de se possivel que vc enviasse para mim, os exemplos de XML. desde ja agradeço
Forrest_Gump
Usuário Nível 1
Usuário Nível 1
Mensagens: 37
Registrado em: 05 Set 2004 12:59
Localização: Presidente Prudente - SP

Mensagem por Forrest_Gump »

Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Tah na conta !!!
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem por Stanis Luksys »

Opa,

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.
Avatar do usuário
marbio
Usuário Nível 3
Usuário Nível 3
Mensagens: 206
Registrado em: 29 Jul 2004 16:26

Mensagem por marbio »

Boa noite.

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
se o pessoal tiver duvida

so chamar
Sempre há uma solucao para os nossos problema clipper.....
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem por Stanis Luksys »

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!
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.
Avatar do usuário
marbio
Usuário Nível 3
Usuário Nível 3
Mensagens: 206
Registrado em: 29 Jul 2004 16:26

Mensagem por marbio »

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.
Sempre há uma solucao para os nossos problema clipper.....
Responder