RE:Consumir Web Service en Java desde Power Builde
Yo lo hice con la versión 10.5 no sé si te sirva en la version 7
Nuevo
Project
Web Service Proxy Wizard
Use .Net Engine (Apagado, no utilice el engine de Microsoft)
WSDL File Name (El nombre del web service con el cual se desea interactuar + ?WSDL )
wsServicio
wsServicioSoap
Solocita un prefijo para el objeto a crear sugiero (ws web service)
prefix For Proxy Name (capturar ws)
PBL (Pregunta en cual PBL deseas almacenar el objeto)
Ready to create proxy (Se da clic sobre Finish )
Esto te crea un objeto (p_ws_proxy1) en la librería que se seleccionó, se cierran todas las ventanas excepto el Library con botón derecho sobre el objeto y se selecciona la opción Deploy, esto desglosa las estructuras que utilizan las funciones del Servicio WEB.
Debes conocer las funciones creadas en el web service. una vez que se hizo esto ahora puedes mandar llamar desde Power BUilder las funciones del web Service como si fueran propias, como si las hubieras hecho en power builder abajo te muestro un ejemplo
Para esto dentro de el target en el que estas trabajando debes cargar ademas de tus pbl's una pbd (pbsoapclient105.pbd) que contiene los objetos soapconnection y soapexception esta la obtuve de los samples del power 10.5
El siguiente codigo utiliza una funcion de nombre getcompania declarada en el web service que recibe como parametro un numero de compañia y regresa el nombre de la compañia
SoapConnection isc_soapc
wswsserviciosoap px_Service
boolean lb_todobien = true
if of_instantiateService(px_Service, "wswsserviciosoap") then
TRY
as_nombre_compania = px_Service.getcompania(ai_compania)
IF ISNULL(as_nombre_compania) OR LEN(as_nombre_compania) = 0 THEN
MessageBox("Error", "No fué posible obtener el nombre de la compañia: " + string(ai_compania) , Information!)
lb_todobien = false
end if
CATCH (Throwable t)
MessageBox("Error al invocar el servicio WEB (of_obtiene_compania)", t.GetMessage(), StopSign!)
lb_todobien = FALSE
END TRY
end if
RETURN lb_todobien