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;