O programa abaixo consome um webservice e exporta o retorno para um arquivo .XML no diretório C:\.

DEFINE VARIABLE hWebService AS HANDLE NO-UNDO.
DEFINE VARIABLE hConsultaValorPortType AS HANDLE NO-UNDO.
DEFINE VARIABLE ConsultaValor AS LONGCHAR NO-UNDO.
DEFINE VARIABLE ConsultaValorResponse AS LONGCHAR NO-UNDO.

ASSIGN ConsultaValor = “xml de entrada”.

CREATE SERVER hWebService.
hWebService:CONNECT(“-WSDL ‘http://…. seu wsdl”) NO-ERROR.
RUN ConsultaValorPortType SET hConsultaValorPortType ON hWebService NO-ERROR.
RUN INVOKE IN hConsultaValorPortType(INPUT ConsultaValor, OUTPUT ConsultaValorResponse).

OUTPUT TO c:\valor.xml.
EXPORT ConsultaValorResponse.
OUTPUT CLOSE.

DELETE procedure hConsultaValorPortType.
hWebService:disconnect().
DELETE OBJECT hWebService.

Funciona que é uma beleza…. :D



7 Responses to “Consumir WebServices no progress”  

  1. Muito bom!!

  2. 2 Eduardo Stopa

    Esse programa também roda na versão 9.1d?

  3. Eai Eduardo,

    Eu fiz esse na versão 10.B, qualquer coisa tamo ai…
    flw

  4. Atualizado…

    DELETE procedure hConsultaValorPortType.
    hWebService:disconnect().
    DELETE OBJECT hWebService.

  5. 5 Marcelo Mattioli

    Olá,

    Seria possivel utilizar esta mesma logica para acessar o webservice da Sefaz?

    Obrigado.

  6. Marcelo,

    Poderia passar o endereço do WSDL para testarmos?

    abs

  7. 7 Adriano

    Alguem conseguiu implementar este fonte no progress versão 91.d ?


Leave a Reply