Se debe crear un proxy al servicio web, por medio del "Web service proxy wizard"
Se deben importar las librerias: (Estas se encuentran el las carpetas de instalacion de power builder)
PBDOM110.pbx
pbsoapclient110.pbx
pbwsclient110.pbx
Luego se debe ejecutar "Deploy" para que el powerbuilder construya el proxy al servicio web.
Se crea una funcion que recibe una variable de tipo string(Que es el nombre del campo del cual queremos el valor) y retorna un string que es el valor buscado:
string dato;
long conexion_estatus;
pbdom_builder lector_xml;
pbdom_document documento_xml;
pbdom_element elemento_xml;
pxservice1 servicio;
//crea un objeto soap para conectar al servicio web
SoapConnection conexion_ws;
conexion_ws = create SoapConnection;
//configura un archivo de logs para ver errores de la conexion
conexion_ws.setoptions( 'SoapLog="c:\\soaplog.txt"');
//realiza la conexion al servicio web
conexion_estatus = conexion_ws.createinstance( servicio,"pxservice1");
//Verifica que la conexion se alla realizado con exito
if (conexion_estatus <> 0) then
MessageBox("Error", "Error al contactar el servicio web.", Exclamation!, OK!,1);
end if
//recibe la informacion del webservice llamando a la funcion informacion_deudor con el parametroidentificacion_deudor
dato = servicio.informacion_deudor( identificacion_deudor);
//decodifica el archivo xml y crea un documento dom
lector_xml = Create pbdom_builder;
documento_xml = lector_xml.BuildFromString (dato);
elemento_xml = documento_xml.getrootelement( ).getchildelement( "deudor");
elemento_xml = elemento_xml.getchildelement( "nombre_completo");
return string(elemento_xml.gettext( ));
John J. Martinez
http://solucionesjj.blogspot.com