Página 2 de 3
Utilizar SIGEP WEB dos Correios
Enviado: 19 Jan 2019 10:05
por hs_paulo
Na execução esta dando erro
"Error BASE/1004 No exported method: OPEN"
Utilizar SIGEP WEB dos Correios
Enviado: 19 Jan 2019 11:49
por asimoes
hs_paulo escreveu:Na execução esta dando erro
"Error BASE/1004 No exported method: OPEN"
Bom dia,
Pra entender o que você fez, posta aqui o código.
Utilizar SIGEP WEB dos Correios
Enviado: 19 Jan 2019 13:30
por asimoes
Segue o exemplo compilado e com fonte.
demo.zip
- Exemplo compilador + fonte
- (685.67 KiB) Baixado 272 vezes
Utilizar SIGEP WEB dos Correios
Enviado: 20 Jan 2019 07:45
por hs_paulo
Simões,
Desculpe te incomodar tanto.
Quando tento compilar o seu demo da erros.
Coloquei print da tela em anexo.
Utilizar SIGEP WEB dos Correios
Enviado: 20 Jan 2019 08:31
por asimoes
Olá,
Remove essa linha {win}libs=hbct de demo.hbc
e inclui hbct.hbc em hbmk.hbm
Utilizar SIGEP WEB dos Correios
Enviado: 20 Jan 2019 08:35
por asimoes
Outra coisa, não pode gerar executável usando compiladores diferentes.
Ex. se o hb34 foi compilado com gcc mingw, você não pode usar borland c++ para gerar o executável, a velha história de misturar alhos com bugalhos.
hb34 compilado com gcc mingw usaro mingw
hb32 compilador com bcc 5.5 usar bcc 5.5
E tem que ser na mesma versão 32 ou 64 bits
Utilizar SIGEP WEB dos Correios
Enviado: 20 Jan 2019 08:39
por asimoes
Para saber como foi compilado o harbour, veja a pasta lib\win dentro de hb34
bcc = compilado com bcc 5.x, libs com extensão .lib
mingw = compilador com gcc mingw, libs com extensão .a
clang = compilado com llvm/clang, libs com extensão .a
Utilizar SIGEP WEB dos Correios
Enviado: 20 Jan 2019 10:15
por hs_paulo
Simões,
Fiz as alterações e continuam os erros.
Eu acho que precisava baixar o Harbour 3.4 de novo.
Em que lugar voce me aconselha?
Utilizar SIGEP WEB dos Correios
Enviado: 20 Jan 2019 12:33
por JoséQuintas
ASimões, não complica, HBM é só pra complicar.
hs_paulo escreveu:Eu acho que precisava baixar o Harbour 3.4 de novo.
Não, não precisa.
Basta seguir as instruções que apareceram na tela.
hint: add input file "xxx.hbc" instead of specifying raw library using -lxxxx
Tradução:
use xxx.hbc ao invés de -lxxxx
Está indicando a LIB, e a mensagem diz pra usar o HBC ao invés de indicar somente a LIB.
indicando HBC já inclui todos os adicionais que precisar, e não somente a LIB.
Retire -lhbct -lxhb
acrescente hbct.hbc xhb.hbc
Sobre a mensagem de no exported method OPEN
É porque usou algum componente que não está instalado no Windows, ou usou nome errado.
Utilizar SIGEP WEB dos Correios
Enviado: 20 Jan 2019 13:08
por asimoes
JoséQuintas escreveu:ASimões, não complica, HBM é só pra complicar
Se você não viu, eu postei um ZIP compilado, testado, funcionando com os Fontes
Utilizar SIGEP WEB dos Correios
Enviado: 20 Jan 2019 13:19
por JoséQuintas
hs_Paulo
Tá na hora de REaprender o básico, senão vai ficar quebrando a cabeça.
Os arquivos estão zuados demais, indicando CH desnecessários, LIBs desnecessárias, HMG Extended (ou HWGUI sei lá), GTWVG, zebra, etc.
E o PRG tem muita coisa inútil, que não se refere ao SOAP.
Apague tudo e deixe só o fonte PRG.
o mesmo fonte, eliminando a parte inútil:
Código: Selecionar todos
#include "inkey.ch"
FUNCTION MAIN()
LOCAL oElemento
LOCAL oServerWs, oXmlDoc, cUrlWs, cXmlSoap
LOCAL cBairro, cCep, cCidade, cEnd, cUF
oServerWS := Win_OleCreateObject("MSXML2.ServerXMLHTTP")
oXMLDoc := Win_OleCreateObject("MSXML2.DOMDocument")
cUrlWS := [https://apphom.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente]
cxMLSoap := [<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cli="http://cliente.bean.master.sigep.bsb.correios.com.br/">]
cxMLSoap += [<soapenv:Header/>]
cxMLSoap += [<soapenv:Body>]
cxMLSoap += [ <cli:consultaCEP>]
cxMLSoap += [ <!--Optional:-->]
cxMLSoap += [ <cep>20735050</cep>]
cxMLSoap += [ </cli:consultaCEP>]
cxMLSoap += [</soapenv:Body>]
cxMLSoap += [</soapenv:Envelope>]
WITH OBJECT oServerWS
:Open( "POST", cUrlWS, .F. )
:SetRequestHeader( "Content-Type", 'text/xml; charset="utf-8"' )
:SetRequestHeader( "Content-Length", Hb_NtoS( Hb_BLen( cxMLSoap ) ) )
:Send( cxMLSoap )
:WaitForResponse( 500 )
WITH OBJECT oXMLDoc
:async := .F.
IF :load( oServerWS:responseXML )
BEGIN Sequence With __BreakBlock()
cBairro := :getElementsByTagName( "bairro" ):item(0):Text
cCep := :getElementsByTagName( "cep" ):item(0):Text
cCidade := :getElementsByTagName( "cidade" ):item(0):Text
cEnd := :getElementsByTagName( "end" ):item(0):Text
cUF := :getElementsByTagName( "uf" ):item(0):Text
? cEnd
? cBairro
? cCep
? cCidade
? cUF
Inkey(0)
END
ENDIF
END WITH
END WITH
RETURN NIL
Aí é só compilar e adicionar a LIB do Windows.
hbmk2 demo.prg hbwin.hbc
A partir daqui, só se preocupa com o que realmente precisa.
Também pode baixar o manual do webservice, pra dar uma olhada, antes de ir direto para o SOAPUI.
O manual está disponível pra todos, com ou sem contrato
Nota: meu Harbour está com uns defaults configurados, por isso já compactou e tive que indicar -gtwin pra desativar GTWVG que entra automático.
Utilizar SIGEP WEB dos Correios
Enviado: 20 Jan 2019 14:05
por asimoes
JoséQuintas escreveu:A partir daqui, só se preocupa com o que realmente precisa.
É isso ai Quintas, você é o cara que mais sabe aqui no fórum ajuda o cara.
Utilizar SIGEP WEB dos Correios
Enviado: 20 Jan 2019 14:12
por asimoes
Vou me afastar do fórum pra não me aborrecer, a minha saúde em primeiro lugar.
Utilizar SIGEP WEB dos Correios
Enviado: 20 Jan 2019 15:59
por JoséQuintas
As vezes a gente esquece que nossa máquina está pré-configurada pra muita coisa.
Considere como se EU fosse a compilação -w3 -es2, afinal, lá dá muito aviso e nem por isso achamos ruim.
Apenas como exemplo:
no HBP
no HBM
Provavelmente pra sua máquina não há problema, porque a máquina pega automático e voce nem percebeu que isso está no projeto.
Como deve ter lido, o usuário até pensou que era problema no Harbour.
Utilizar SIGEP WEB dos Correios
Enviado: 20 Jan 2019 16:08
por JoséQuintas
Caso não tenha percebido, é seu exemplo.
justamente reclamando do que está acrescentado no HBC e no HBM.
De cara, corrigir o HBC e o HBM, coisa não muito comum para um usuário comum.
Como eu disse antes, sua máquina já deve estar configurada pra essa LIB, e por isso não percebeu.