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.
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.
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.
Antes de grabar el servicio creado configuraremos la seguridad con un usuario y clave, a través del protocolo HTTP.
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.