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
webcep.png
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

Código: Selecionar todos

-u+hwg_compat.ch
no HBM

Código: Selecionar todos

-u+hwg_compat.ch
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
teste.png
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.