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
Hola John, muy buena tu idea, ahora tengo que hacerte unas preguntas por favor...
ResponderEliminarnecesito bajar de un link un txt y luego importar ese archivo plano a una tabla de sybase con Power builder estoy trabajando con la version 9, se puede?
para esto debo armar un ws?
desde ya, muchas gracias!!!
Fabricio
Hola, que pena la demora!! bueno te cuento que esa parte no la manejo muy bien, no trabajo SQLAnywere, en MSSQL lo que hago normalmente es crear un dts para carga de datos. cualquier cosa con mucho gusto!! siento no ser tan útil!
ResponderEliminarAnte todo agradezco la publicacion amigo John.
ResponderEliminarAhora si no fuera mucha molestia te pediria q publiques un ejemplo entre power builder y PHP conectados con Web service.
Por ahi he leido que necesito librerias NUSOAP propias para el cliente PB que se comuniquen con el web service en php.
Agradezco de antemano tus respuestas
Saludos desde Peru
Este comentario ha sido eliminado por el autor.
ResponderEliminarI recently came across your blog and have been reading along. I thought I would leave my first comment.
ResponderEliminarI don't know what to say except that I have enjoyed reading. Nice blog. I will keep visiting this blog very often.
Thank You
PowerBuilder
you are right @Jajob its Nice Post about PowerBuilder Development . Thanks for sharing few of information .
ResponderEliminarHola John:
ResponderEliminar¿Lo mismo es para Power Builder 8?
De no ser igual, de que manera puedo consumir WS con PB 8?
Gracias..
Hola!!!, no estoy seguro si funciona en PB8 no uso ese, uso la 11 y se que de hay en adelante si se usa.
EliminarAbraham no estoy seguro, la verdad empece a trabajar con las versiones de powerbuilder desde la 11 en adelante, no estoy seguro de las anteriores, aunque pensaría que es posible!
ResponderEliminarHola de Nuevo John:
ResponderEliminarSabes el PB 8 no tiene el WEB SERVICE PROXY WIZARD, ¿Sabrás si ese componente se puede adquirir e implementarla a PB 8?
Gracias!!
Hola!!!, no estoy seguro si funciona en PB8 no uso ese, uso la 11 y se que de hay en adelante si se usa.
Eliminarjohn te has encontrado con el inconveniente de consumir un webservice que requiera ws-security headers, estoy probando consumir con pb12 generando un proxy .net y no puedo agregar el header de seguridad wsse. porque no esta incorporado en el wsld.
ResponderEliminarsaludos
y gracias
John, tengo que hacer una comunicacion por web service con un ente fiscalizador, donde yo le envio 4 archivos y este me devuelve error ante alguna inconsistencia o bien me retorna datos que debo utilizar en otros procesos, tendras algun ejemplo de como hacerlo. Esto es para implementar factura electronica.
ResponderEliminarHola!, no no tengo un ejemplo, hace rato que no trabajo mas con este tema, ya que empezamos a utilizar todo por medio de .Net! lo siento!
ResponderEliminarSi se puede hacer, yo he trabajdo con power builder desde la versión 4..!!!
ResponderEliminarGRacias por el dato!!! suuuuuper!!
EliminarEstimado amigo primero felicitándote por el blog, mi consulta es si es posible implementar esta solución con PB 10 y si éste dispone de Web Service Proxy Wizard. Gracias
ResponderEliminarUn anónimo comentario, dice que si se puede!! que desde la versión 4 se hace!!, personalmente se que desde la 11 en adelante se puede.
EliminarPor favor, necesito un poco de sus ayudas...Recientemente cree 2 Web Services en PowerBuilder 12 que corren perfectamente desde mi PC. Los compilo y genero un archivo de instalación para instalarlo en otra màquina donde serà invocado por una aplicación hecha en Visual Studio. Una vez instalada, se invoca al servicio y da un error donde no se puede localizar un archivo y muestra la ubicación original donde fue creado el Web Service en mi PC...¿Qué debo hacer para solventar este problema? En realidad necesito que estos servicios corran en esa aplicación...Gracias
ResponderEliminarA lo mejor lo que te falta es definir como parámetro la dirección donde se alojaran o instalarán los web services, es decir dependiendo de donde los instales cambias las direcciones definidos en los parámetros, esta implementación deberias hacerla en el cliente que consume el web service.
EliminarHola Jhon no si me puedas ayudar pero ami no me deja crear en PW12.5 el Web service proxy wizard me sale Cannot access the WSDL OR THE WSDL FILE IS INVALID.
ResponderEliminarEstoy recien aprendiendo a conectare con wsdl gracias por tu ayuda
Una consulta, debo consumir un ws desde power builder, ya cree a traves de service prozy wizard, pero como hago para cambiar la url, la cual se lee de una variable de configuracion que cambia segun el ambiente de trabajo. Gracias
ResponderEliminar