En primer lugar, a la hora de consumir un servicio web SAP o no SAP, debemos obtener los datos de este disponibles en su descriptor WSDL.
Tal y como vimos en el segundo artículo sobre publicar servicios web en SAP, desde la transacción SOAMANAGER se puede acceder al fichero WSDL del servicio web a consumir de donde es posible extraer las funciones disponibles desde ese servicio web y la manera en la que pueden ser accedidas.
Cliente SOAP para consumir servicio web SAP
Para consumir un web service SAP, php es una buena opción ya que definiendo unas pocas líneas de código podemos acceder y utilizar funciones SAP desde una aplicación web.
En primer lugar se debe crear un cliente SOAP a partir de la URL del fichero WSDL del servicio web SAP y de la localización del servicio que se va a consumir.
[php]
$location_URL = ‘https://ruta_sevicio_web.com/zlast_news2/100/zlast_news2/zb_last_news2’;
$wsdl = ‘https://ruta_servicio_web.com/wsdl/srvc_00505692214C1EE3B6D524ADE1ECD0F4/wsdl11/allinone/standard/document?sap-client=100?wsdl’;
[/php]
Para ello se crea una instancia de la clase SoapClient de PHP, indicando las opciones que correspondan en cada caso.
Según el nivel de autenticación indicado al crear el servicio web puede ser necesario la especificación de usuario y contraseña. Estos datos se han de pasar al crear el cliente SOAP y no al llamar a una acción. En realidad esta información se transfiere a través de la cabecera del mensaje SOAP. Por tanto, un ejemplo de cliente SOAP para consumir un web service SAP con PHP sería el siguiente:
[php]
$client = new SoapClient($wsdl, array(
‘location’ => $location_URL,
‘uri’ => «»,
‘trace’ => 1,
‘login’ => $usuario,
‘password’ => $pass
));
[/php]
Consumir web service SOAP de SAP con PHP
Una vez disponemos del cliente SOAP creado en PHP, hay que llevar a cabo una llamada a la acción del servicio web SAP que se desee. En PHP existe un método propio de SoapClient que devuelve la lista de funciones disponibles en el servicio web: __getFunctions.
Suponiendo que la función que deseemos consumir del servicio web SAP sea ZNEWS_FM_GET_ULTIMAS_NOTICIAS la forma de llamarla y pasarle los parámetros de entrada necesarios es la siguiente:
[php]
try{
$response = $client->ZNEWS_FM_GET_ULTIMAS_NOTICIAS(array(«IM_NUM_NOTICIAS» => «5»));
$xml = simplexml_load_string($order_return);
foreach( $xml->children() as $child ) {
echo $child->FECHA_CREACION;
}
}
catch (SoapFault $exception){
var_dump(get_class($exception));
var_dump($exception);
}
[/php]
En la variable $response obtendremos el resultado de la llamada a la función que tendrá el formato indicado en el WSDL como mensaje de respuesta.
Una vez disponemos de la respuesta en PHP podemos extraer de esta los datos que deseemos y formatearla como sea conveniente en cada caso. Como se puede comprobar una vez se dispone del descriptor WSDL, es muy sencillo consumir un servicio web con PHP.
Más información:
Quizas te pueda interesar
Migración de SAP PI/PO a SAP Integration Suite
👀 Apúntate a este webinar y amplía información sobre la migración a SAP Integration Suite Moderniza tu Integración Empresarial: Migración de SAP PI/PO a SAP Integration Suite En un entorno empresarial cada vez más dinámico y digital, la conectividad entre...
SAP Build Work Zone
Antes de empezar hablar de SAP Build Work Zone, vamos a retroceder un poco al pasado porque Work Zone no es un producto que SAP se ha sacado de la chistera mágicamente, si no una evolución de productos anteriores. SAP Build Work Zone es la versión potenciada de los...
SAP TechEd 2024:
Principales Anuncios en la Keynote
Como otros años, en octubre tiene lugar en Barcelona la considerada como mayor conferencia tecnológica de SAP: SAP TechEd. Este evento tiene como fin presentar una serie de anuncios de los nuevos productos y evoluciones en SAP. En concreto, esta edición 2024 se centró...