Consumo de Webservice com Harbour.

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

Consumo de Webservice com Harbour.

Mensagem por Mario Mesquita »

Bom dia!

Que legal, tem isso de lib de compatibilidade com o xHarbour? Quer dizer que poderei acessar as funções dele? Se for, muito interessante.

Mas como ativo essa lib? Estou usando a HMG 3.4.4, como seria?

Desde já, agradeço a dica!

Sds,
Mario.
Avatar do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

Consumo de Webservice com Harbour.

Mensagem por Mario Mesquita »

Bom dia!

Daniel, coloquei umas libs que parecem tratar o xhb: libxhb e libxhb_dll, mas não reconhece o Try/Catch.

Será que não tem jeito mesmo? Seria ótimo poder acessar funções do xHarbour. Será que não estou fazando certo?

Eu coloquei na aba de configurações da HMG: libs=libxhb,libxhb_dll

Se alguém tiver algo que possa me ajudar, agradeço.

Sds,
Mario.
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Consumo de Webservice com Harbour.

Mensagem por rubens »

Bom dia..

Acho que precisa inserir
#include "hbcompat.ch"

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

Consumo de Webservice com Harbour.

Mensagem por Mario Mesquita »

Boa noite.

Rubens, não foi. Vendo a pasta Include do Harbour não tem esse hbcompat.ch

Tem isso mesmo no Harbour 3.4? Não estou dando sorte, rs

Sds,
Mario.
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Consumo de Webservice com Harbour.

Mensagem por Toledo »

Mario, procure na pasta C:\hb34\contrib\xhb.

Abraços
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

Consumo de Webservice com Harbour.

Mensagem por Mario Mesquita »

Bom dia a todos.

Toledo, está lá mesmo. Mas como uso a HMG, está na pasta Harbour dentro da pasta da HMG.

Como nunca mexi nessa parte, qual o procedimento? Copio o .ch para outro lugar? Ou declaro na HMG pela IDE? Penso que deve ser algo configurado...

Valeu a luz. Estou tentando tirar o consumo de webservice do chão e como não há documentação alguma disponível, só aqui podemos obter a cultura necessária.

Sds,
Mario.
Avatar do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

Consumo de Webservice com Harbour.

Mensagem por Mario Mesquita »

Olá!

Coloquei no Main do meu programa de testes e não deu erro ao compilar o Try/Catch.

Mas agora deu outro erro, ele não reconhece duas funções: MsgAlert() e ToString(). Não as conheço, elas são nativas de alguma versão Harbour ou de alguma Lib?

Lembrando que estou usando uma rotina postada no tópico. O MsgAlert é fácil trocar, mas essa ToString pega um pedaço de um XML.

Código: Selecionar todos

*------------------------------------------------------
FUNCTION MicrosoftXmlSoapPost( cXmlSoap, cSoapAction, cWebService )
LOCAL oServer, oDOMDoc, oError
LOCAL nCont
LOCAL cRetorno := "*ERRO*", cXmlRetorno := ""

oServer := CreateObject( "MSXML2.ServerXMLHTTP")
oServer:Open( "POST", cWebService, .F. )
oServer:SetRequestHeader( "SOAPAction", cSoapAction )
oServer:SetRequestHeader( "Content-Type", "text/xml; charset=utf-8" )

oDOMDoc = CREATEOBJECT("MSXML2.DOMDocument")

oDOMDoc:async = .F.
oDOMDoc:validateOnParse  = .T.
oDOMDoc:resolveExternals := .F.
oDOMDoc:preserveWhiteSpace = .T.
oDOMDoc:LoadXML(cXmlSoap)

IF oDOMDoc:parseError:errorCode <> 0
   MsgAlert('Erro: xML nao carregado'+CRLF+'Erro: '+ToString(oDOMDoc:parseError:Reason)+' Posição: '+ToString(oDOMDoc:parseError:linepos))
   RETURN Nil
ENDIF

TRY
  oServer:send(oDOMDoc:xml)
CATCH oError
  MsgAlert('Falha no envio do xML')
  RETURN Nil
END

DO WHILE oServer:readyState <> 4
   HB_milliseconds(500)
ENDDO

cRetorno := oServer:responseText

IF ValType( cRetorno ) == "C"
   cXmlRetorno := cRetorno
ELSEIF cRetorno == NIL
   cXmlRetorno := "*ERRO*"
ELSE
   cXmlRetorno := ""
   FOR nCont = 1 TO Len( cRetorno )
       cXmlRetorno += Chr( cRetorno[ nCont ] )
   NEXT
ENDIF

RETURN cXmlRetorno
Isso pq nem consegui testar o SOAP, rsrs Eu testei a rotina dos Correios e funcionou, mas não gera o XML para eu ver os detalhes do envelope, etc.

Bom, quem tiver uma dica, como sempre, muito obrigado.

Sds,
Mario.
Avatar do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

Consumo de Webservice com Harbour.

Mensagem por Mario Mesquita »

Boa noite, pessoal.

Estou acompanhando os seus esforços na preparação da NFC-e, por causa dos meus estudos sobre XML, webservice, etc.

Agora estou tentando entender a assinatura do arquivo e vi que tem algo feito por vocês, mas não achei os fontes.

Tem algo disponível para eu estudar e tentar fazer funcionar para o que preciso? São diversos tópicos e me perdi um pouco.

Desde já, agradeço as dicas.

Sds,
Mario.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Consumo de Webservice com Harbour.

Mensagem por JoséQuintas »

Na SefazClass tem de tudo um pouco.

https://github.com/JoseQuintas/sefazclass
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

Consumo de Webservice com Harbour.

Mensagem por Mario Mesquita »

Bom dia a todos.

Quintas, eu vi lá no post da NFCe. Pelo que vi é mais do que preciso. Atualmente não tenho nenhum sistema comercial. Com a chegada da NFe, eu não me atualizei e perdi o cliente. E era em Clipper e eu estava passando pra Harbour, mas uma mudança de gerência interrompeu o projeto.
Vendo vcs fazendo tudo em xBase até dá vontade de retomar esse trabalho. Um dia, vai que...

O que quero agora é implementar a troca pelo webservice, que está aos poucos substituído a troca por arquivos TXT do tipo planilha. Ano passado escapei por ter conseguido um programinha de um amigo, me salvou na hora H.

Não que seja difícil, mas tem um monte de pequenos detalhes e procedimentos para garantir a troca de informações. E no meu caso, vou ter que receber e enviar informações. Como tudo que é novo pra vc, assusta um pouco.

Em tempo, parabéns pelo trabalho. Legal que sua ferramenta esteja ajudando a galera.

Sds,
Mario.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Consumo de Webservice com Harbour.

Mensagem por JoséQuintas »

A intenção é usar exatamente como está, MESMO NO XHARBOUR.

Mas já vi que pode ter exceções.

No Harbour uso win_OleCreateObject()

Em xHarbour + fivewin vai ser CreateObject() da fivewin

Em xHarbour + HMG, vai ser o que está na classe TOleAutox()

Mas o teste prático vai ser com cada um.
Pelo menos esse, talvez fique o ajuste por conta do usuário.

Na classe tem ze_xharbour.prg e hb2xhb pra resolver as incompatibilidades.

E .... como dá pra usar HBMK2 com xHarbour, só usá-lo pra gerar a LIB.

Resumindo:
- Pra Harbour: só criar em harbour\bin o arquivo HBMK.HBC contendo libs=sefazclass.hbc libpaths=pasta da sefazclass
- Pra xHarbour, além disso, usar HBMK2 e acrescentar -xhb na linha de comando
(e copiar hbmk2.exe pra dentro de harbour\bin)

configuração adicional, que pode ou não existir na máquina:
SET HB_INSTALL_PREFIX=pasta do harbour/xharbour em uso
SET HB_COMPILER=mingw, msvc ou bcc
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

Consumo de Webservice com Harbour.

Mensagem por Mario Mesquita »

Olá.

Quintas, eu uso o Harbour da HMG. Deve ser o 3.2, né?

Não devo usar a lib diretamente. É mais para aprender a montar o XML com o envelope e assinar. Só se der pra adaptar para um uso mais genérico.

Mas creio que será de grande valia. Se funciona pra vcs, pra mim com um uso menos exigente deve ser mamão com açúcar, rs

De novo, muito obrigado. Vou informando do meu progresso.

Sds,
Mario.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Consumo de Webservice com Harbour.

Mensagem por Itamar M. Lins Jr. »

Ola!
é implementar a troca pelo webservice, que está aos poucos substituído a troca por arquivos TXT do tipo planilha.
Procure por RESTFUL, que é mais novo que SOAP, o Harbour tem isso.
Rafa Carmona tem um vídeo e os fontes estão no GIT do exemplo que ele usa. Deve servir para o que vc está querendo. Irei trabalhar com isso agora em 2018, pois fiz um programa para gerenciar documentos, petições etc.. Irei fazer alterações para usar o RESTFUL. Tem explicações disso em todo canto da internete.
https://medium.com/harbour-magazine/res ... 5e59335cf7
https://github.com/rafathefull/restful

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

Consumo de Webservice com Harbour.

Mensagem por Mario Mesquita »

Olá, Itamar.

Caramba, nem aprendi o que já tem e já saiu coisa nova, rsrs

Os manuais que recebi do cliente fala em SOAP. Ele é o mais antigo, vi vcs comentando. Creio que é o mais usado ainda, certo? É aprender um e ir vendo qual a tendência. Pelo jeito vai ficar cada vez mais comum...

Mas é bom saber que tem coisa nova surgindo. Valeu a dica!

Abraço,
Mario.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Consumo de Webservice com Harbour.

Mensagem por Itamar M. Lins Jr. »

Ola!
que recebi do cliente fala em SOAP.
Pensei que era para vc mesmo. Ai não tem jeito, o cliente que determina.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Responder