Página 3 de 3
Consumo de Webservice com Harbour.
Enviado: 06 Dez 2017 08:30
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.
Consumo de Webservice com Harbour.
Enviado: 07 Dez 2017 09:26
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.
Consumo de Webservice com Harbour.
Enviado: 07 Dez 2017 09:51
por rubens
Bom dia..
Acho que precisa inserir
#include "hbcompat.ch"
Rubens
Consumo de Webservice com Harbour.
Enviado: 07 Dez 2017 18:45
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.
Consumo de Webservice com Harbour.
Enviado: 07 Dez 2017 22:37
por Toledo
Mario, procure na pasta C:\hb34\contrib\xhb.
Abraços
Consumo de Webservice com Harbour.
Enviado: 08 Dez 2017 08:05
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.
Consumo de Webservice com Harbour.
Enviado: 08 Dez 2017 08:51
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.
Consumo de Webservice com Harbour.
Enviado: 21 Dez 2017 19:30
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.
Consumo de Webservice com Harbour.
Enviado: 22 Dez 2017 07:59
por JoséQuintas
Consumo de Webservice com Harbour.
Enviado: 22 Dez 2017 08:45
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.
Consumo de Webservice com Harbour.
Enviado: 22 Dez 2017 11:02
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
Consumo de Webservice com Harbour.
Enviado: 22 Dez 2017 11:21
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.
Consumo de Webservice com Harbour.
Enviado: 22 Dez 2017 11:32
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.
Consumo de Webservice com Harbour.
Enviado: 22 Dez 2017 11:40
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.
Consumo de Webservice com Harbour.
Enviado: 22 Dez 2017 18:20
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.