Utilizar SIGEP WEB dos Correios

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

Moderador: Moderadores

hs_paulo
Usuário Nível 1
Usuário Nível 1
Mensagens: 25
Registrado em: 02 Set 2015 17:11
Localização: Bauru

Utilizar SIGEP WEB dos Correios

Mensagem por hs_paulo »

Na execução esta dando erro

"Error BASE/1004 No exported method: OPEN"
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Utilizar SIGEP WEB dos Correios

Mensagem 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.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Utilizar SIGEP WEB dos Correios

Mensagem por asimoes »

Segue o exemplo compilado e com fonte.
demo.zip
Exemplo compilador + fonte
(685.67 KiB) Baixado 271 vezes
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
hs_paulo
Usuário Nível 1
Usuário Nível 1
Mensagens: 25
Registrado em: 02 Set 2015 17:11
Localização: Bauru

Utilizar SIGEP WEB dos Correios

Mensagem por hs_paulo »

Simões,

Desculpe te incomodar tanto.

Quando tento compilar o seu demo da erros.
Coloquei print da tela em anexo.
Anexos
erro.png
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Utilizar SIGEP WEB dos Correios

Mensagem por asimoes »

Olá,

Remove essa linha {win}libs=hbct de demo.hbc
e inclui hbct.hbc em hbmk.hbm
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Utilizar SIGEP WEB dos Correios

Mensagem 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
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Utilizar SIGEP WEB dos Correios

Mensagem 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
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
hs_paulo
Usuário Nível 1
Usuário Nível 1
Mensagens: 25
Registrado em: 02 Set 2015 17:11
Localização: Bauru

Utilizar SIGEP WEB dos Correios

Mensagem 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?
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Utilizar SIGEP WEB dos Correios

Mensagem 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.
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
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Utilizar SIGEP WEB dos Correios

Mensagem 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
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Utilizar SIGEP WEB dos Correios

Mensagem 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.
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
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Utilizar SIGEP WEB dos Correios

Mensagem 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.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Utilizar SIGEP WEB dos Correios

Mensagem por asimoes »

Vou me afastar do fórum pra não me aborrecer, a minha saúde em primeiro lugar.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Utilizar SIGEP WEB dos Correios

Mensagem 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.
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
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Utilizar SIGEP WEB dos Correios

Mensagem 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.
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/
Responder