You are on page 1of 11

Llamada a WS desde PB125 empleando un Proxy

reado por Waldo me lare 21


wgapower@gmail.com


nuestra aplicacin y el Web Service.
Como partida, crearemos una aplicacin proxy_ws en proxy_ws.pbl, tambin crearemos
proxy_ws_objs.pbl para contener los objetos que se crearn al deployar el Proxy.
Tambin necesitamos anexar pbsoapclient125.pbd a nuestra aplicacin para contar
con el soporte SOAP necesario.





Creacin del Proxy.

Desde el men New llegamos a:






Damos Next.



Aqu ponemos la ruta del wsdl del Web Service.

Se detecta el servicio:



Damos Next.



N



El sistema muestra un nombre por defecto para el proyecto. Lo dejamos y situamos como
destino la proxy_ws_objs.pbl.



Ahora, repetimos para proxy_ws_objs.pbl.





Aparece un resumen de lo que se va a crear:



Al dar Finish, se crea el objeto p_proxy_ws_wsproxy



D D j. E g j
comunicacin con el Web Service:




A continuacin, crearemos un objeto no visual con una funcin que sea fcil de llamar
desde cualquier parte y que realice todos los pasos complejos de llamar al Web Service y
obtener una respuesta.. La idea es que el programador, instancie este objeto, haga el
llamado a la funcin y obtenga una respuesta del Web Service de modo sencillo. Le
llamaremos uof_get_transferencia


uof_get_transferencia (long cuenta_destino,string ls_mensaje_error) -> long resultado
Long ll_retval, ll_respuesta
SoapConnection lsoap_conn
sch1__transferencia struc_param
transferenciaservicesoap11 lws_coresoap

lws_coresoap = CREATE transferenciaservicesoap11;

// Validar entradas
If ISNULL( ll_cuenta_destino ) Then
ls_mensaje_error = 'Debe enviar Cuenta Destino.'
Return -1
End If

// Link WSDL
is_endpoint =
'http://10.500.87.181:8888/integracion.pb.webservice/endpoints/TransferenciaService.wsdl'

// Parmetros. Slo vale la cuenta destino.
struc_param.CuentaOrigen = 100
struc_param.CuentaDestino = ll_cuenta_destino
struc_param.Monto = 1.5E2
struc_param.RutDestino = 100

// Instancia una conexin SOAP
lsoap_conn = CREATE SoapConnection

// Setea log para rastrear el intercambio de data.
//ll_retval = lsoap_conn.SetOptions('SoapLog=' + '"C:\mySoapLog.log"')
ll_retval = lsoap_conn.CreateInstance(lws_coresoap, "transferenciaservicesoap11", is_endpoint )

If ll_retval <> 0 Then
ls_mensaje_error = "No habilitado para crear proxy. Cdigo de error: " + String(ll_retval)
Else
// Llamada al web service
TRY
// Respuesta del Web Service
ll_respuesta = lws_coresoap.transferencia( struc_param )
CATCH ( SoapException e )
ls_mensaje_error = e.text
END TRY
End if

// Limpieza
If isValid(lsoap_conn) Then
DESTROY lsoap_conn;
End If
Return ll_respuesta


Llamada al Web Service mediante la funcin uof_get_transferencia

/*

Parmetro: valor numrico digitado en em_1

Entrada | Salida
-------------------
1 | 0
2 | 1
Otro Valor | 2

*/

uo_ws uoWS
Long ll_ret
String ls_error
uoWS = CREATE uo_ws;

ll_ret = uoWS.uof_get_transferencia( LONG( em_1.text ), ls_error )

If ll_ret <> -1 Then
MessageBox( 'Respuesta OK', ll_ret )
Else
MessageBox( 'Error ejecucin Web Service', ls_error )
End If

You might also like