Martes, 18 Marzo 2014 00:00

Montar Servicios Web en SAP mediante funciones RFC de ABAP

Escrito por
Valora este artículo
(3 votos)

El objetivo de este artículo es crear un servicio web en SAP, basándonos en el uso de un módulo de función con conexión remota RFC, que nos aportará la funcionalidad del servicio, una definición WSDL basada en los parámetros de entrada / salida de ese módulo de función, y la creación de una puerta lógica que permita el intercambio de información entre el sistema SAP que ofrece el servicio, y el sistema que lo consume.

 

 

Basicamente un servicio web nos permite estandarizar la comunicación entre un servidor que oferta una funcionalidad, y un cliente que la solicita, abstrayéndonos de los lenguajes y plataformas empleados, para ello nos apoyaremos en los siguientes estándares: SOAP que establece las reglas del intercambio, WSDL que describe la interfaz pública del servicio, y XML que estructura los datos que se intercambian.

Para la creación de un servicio web en SAP, comenzaremos con la creación de un módulo de función desde la SM37, definiendo el formato de ejecución como Módulo de acceso remoto, y marcaremos la casilla basXML.

 

Dentro del módulo de función definiremos los parámetros de entrada en la pestaña Import marcando la opción de “Trasp. Valores”, los parámetros de salida en la pestaña Export también con la casilla de “Trasp. Valores” activada, y todos los datos múltiples tanto de entrada como de salida los definimos como tablas.

Añadimos el código necesario para obtener los datos deseados, y almacenamos el contenido en las estructuras declaradas anteriormente. Guardamos y activamos el módulo de función.

A continuación crearemos la definición del servicio web, para ello vamos a la SE80, y pulsamos sobre Tratar objeto, seleccionamos la pestaña “Enterprise Services”, y marcamos la opción “Descripción de servicio”, dándole un nombre a la definición.

A continuación nos saltará un asistente de SAP que nos guiará en el proceso, mostrándonos una primera pantalla en la que debemos marcar la opción “Service Provider”, para a continuación elegir el tipo de proveedor de servicio, en nuestro caso un objeto ABAP, por lo que marcamos la opción “Existing ABAP Object (Inside Out)”.

Ahora indicamos un nombre y descripción para la definición de servicio, y elegimos el tipo de objeto, en nuestro ejemplo la opción “Function Module”.

A continuación indicamos el nombre del módulo de función creado anteriormente, y marcamos la casilla “Map Name”, para asignar el nombre del módulo de función, y finalmente configuramos los parámetros de seguridad marcando en el menú desplegable el nivel LOW.

 En el siguiente paso deberemos indicar la orden de transporte donde queremos guardar la definición de servicio, en el caso de este ejemplo lo almacenaremos localmente, por lo que no tendremos que indicarle orden de transporte.

13 transport

Al fianalizar el asistente, si todo ha salido correctamente, nos mostrará la definición de servicio creada, y deberemos activarla para que esté disponible a través de la transacción SOAMANAGER.

14 activated

 

Una vez que tenemos activada la definición a partir de la función RFC, deberemos crear el servicio en si mismo, a través de la transacción SOAMANAGER, para ello lanzamos la transacción y nos logearemos, accedemos a la pestaña "Web Service Configuration", y buscamos la definición creada en SAP, luego nos vamos a Configuration, y creamos el servicio y el enlace.

soamanager1

 

soamanager2

 Antes de grabar el servicio creado configuraremos la seguridad con un usuario y clave, a través del protocolo HTTP.

soamanager3

Para obtener el enlace público a la definición de servicio WSDL volveremos a la pestaña "Overview", y pulsaremos sobre "Show / hide selected Binding's or Service's WSDL URL" que nos mostrará la dirección web.

soamanager4

 

soamanager5

 

 

 

Visto 69105 veces Modificado por última vez en Martes, 22 Septiembre 2015 15:59
Más en esta categoría: Tipos de usuario SAP »