Você está na página 1de 22

Contenido

1. Introduccin .....................................................................................................................................1
2. Crear Servicio ...................................................................................................................................2
2.1. Asistente de creacin ...................................................................................................................2
3. Adaptar los nombres del servicio .....................................................................................................6
4. Publicar el servicio............................................................................................................................6
5. Crear EndPoint. ................................................................................................................................8
6. URL del servicio ............................................................................................................................. 13
7. Test Servicio .................................................................................................................................. 13
8. Republicar el servicio .................................................................................................................... 16
8.1. Actualizar Servicio ..................................................................................................................... 16
8.2. Crear el Servicio......................................................................................................................... 18
8.3. Publicacin ................................................................................................................................ 18
8.4. Configuracin del Endpoint ....................................................................................................... 18
9. Problemas al crear el servicio........................................................................................................ 21
9.1. No es posible publicar a travs de WSPUBLISH. ....................................................................... 21
9.2. Incoherencia de datos en SE80. ................................................................................................ 21

1. Introduccin

Para generar servicios desde la parte SAP es necesario:

Crear al menos un mdulo de funciones con la opcin Modulo de acceso remoto marcada
Crear el servicio a partir de ste mdulo de funciones o de un grupo de funciones.
Publicar el servicio.
Crear el endpoint para establecer la conexin.

2. Crear Servicio

2.1. Asistente de creacin

Accedemos a la transaccin SE80, seleccionamos el paquete sobre el que queremos crear el servicio
(en este caso ZHR), botn derecho Crear->Enterprise Service.
Nos aparecer un asistente a travs del cual podemos crear el proxy. Seleccionamos Service
Provider, porque lo que queremos es crear un servicio que sea consumido por otros.

Tenemos varias opciones para crear el servicio a travs de un mdulo de funciones (Servicio con
una sola accin) o a travs de un grupo de funciones (Servicio con ms acciones). Estas opciones
son las opciones que vamos a utilizar.

Nota: En este documento vamos a usar la opcin Grupo de funciones.

Seleccionamos el grupo de funciones y seleccionamos Mapping of names.

Por defecto vienen seleccionados todos los mdulos de funciones (Con la opcin acceso remoto
activa). Deseleccionamos las que no queramos tener como acciones en el servicio.
Seleccionamos la configuracin de seguridad PRF_DT_IF_SEC_NO

Seleccionamos el paquete y orden de transporte

Finalizamos el asistente pulsando Finalizar.

Se genera el servicio y aparecer en la carpeta de Enterprise Services-> DefinicionesServ.


Aqu tenemos toda la informacin del servicio. las acciones del servicio, parmetros, etc...

IMPORTANTE:

Activar el servicio sino no lo tendremos disponible.


Hay veces que ciertos objetos no se regeneran bien (Siendo borrados, transportados, etc...)
al visualizar la SE80. Y no reflejan la realidad. Objetos creados no estn en el sistema, objetos
borrados permanecen visibles.
Esto les ocurre, entre otros, a los Servicios. Para ello hay que ir a travs de la SE80 Paquete
(ZHR), Botn derecho (Sobre ZHR) -> Otras funciones -> Reestructurar lista de objetos.
3. Adaptar los nombres del servicio

El nombre del servicio que se ve desde el exterior es el nombre del servicio al crear el endpoint. (Ver
Crear EndPoint.)

Los nombres de las acciones al mapear los nombres de los mdulos de funciones tendramos que
todas las acciones comienzan con Z*. En este caso ZhrEmpleadoEsValido.

Podemos cambiar todos los nombres de las acciones en este caso lo cambiamos por EsValido y as
con el resto. Tambin es posible cambiar los nombres de los parmetros.

4. Publicar el servicio

A travs de la transaccin WSPUBLISH publicamos el servicio. Introduciendo el nombre del servicio a


publicar y marcando Forzar publicacin
Nota: Normalmente no suprimiremos los puntos de destino (endpoint) en Service Registry.

Si queremos mantener el endpoint, por ejemplo al republicar, no deberamos marcar esta opcin.
5. Crear EndPoint.

Para que otras aplicaciones tengan acceso al servicio necesitamos crear la configuracin de conexin.
Esto se llama Endpoint y se crear siguiendo estos pasos:

Accedemos al SOA Manager (Transaccin SOAMANAGER) y entramos en el sistema con nuestro


usuario/contrasea de SAP.

Una vez hemos accedido, vamos a la pestaa Business Administration hacemos click en Web Service
Administration.

Seleccionamos Search by: Service y buscamos nuestro servicio


Seleccionamos el proxy y mostramos los detalles pinchando . En la pestaa
configuracin creamos los Puertos lgicos.

Pinchamos en para que nos aparezca la siguiente pantalla de creacin:

Damos un nombre a la puerta lgica


El nombre del servicio va a ser la parte visible desde el exterior. Por ejemplo si referenciamos desde
un proyecto de .Net
En el campo New Service Name, ah ponemos el nombre que queremos mostrar de cara al exterior.

Pulsamos y generamos la conexin y grabamos el endpoint que hemos creado.


En la pestaa Provider Security marcamos No Authentication y establecemos las credenciales con
el usuario COMM_SOA.

Esta es la configuracin de la conexin que hemos establecido para el servicio web.


6. URL del servicio

La URL del servicio la encontramos en la transaccin SOAMANAGER seleccionando el servicio en la


pestaa Overview en el enlace Open WSDL document for selected binding.

La Url que abre el navegador al pinchar en el enlace es la que genera SAP. Es la referencia al servicio
que debemos proporcionar al desarrollador que vaya a usar la aplicacin.

7. Test Servicio

Para realizar una prueba del servicio, a travs de la transaccin SOAMANAGER seleccionando el
servicio en la pestaa Overview en el enlace Open Web Service navigator for selected binding. O
directamente en la direccin:

http://psapceapp.sap.emt.es:50000/sr (Produccin)
http://dsapce.sap.emt.es:50000/sr (Desarrollo)

Nos aparece (Si debemos autenticarnos, lo hacemos) una pantalla para filtrar los servicios

Pulsamos para ejecutar el endpoint que queremos


Seleccionamos la accin

Si no tenemos las credenciales en el servicio nos las pedir

Aparecer la respuesta
8. Republicar el servicio

Debido a los cambios en los servicios establecidos por nuevos requerimientos, necesitamos
republicar un servicio y necesitamos MANTENER la URL del servicio sin modificar, porque si no
habra que distribuir la nueva URL a todos los que estn usndola. Normalmente no necesitaremos
hacerlo y ser transparente para ellos ya que no modificaremos, en general, la firma del servicio, as
que solo aadiremos acciones nuevas al servicio o campos nuevos campos dentro de un parmetro
de entrada.

Para republicar el servicio manteniendo la URL sin modificar debemos seguir los siguientes pasos:

IMPORTANTE: NO BORRAR EL ENDPOINT (Configuracin). Si lo hacemos, al crearlo de nuevo nos


genera una nueva URL con todos los inconvenientes que esto nos puede generar.

8.1. Actualizar Servicio

Ejecutamos la transaccin SE80,


Filtramos por el Paquete ZHR y desplegamos la carpeta Enterprise Services ->
DefinicionesServ
No hay que borrar todo el servicio. Podemos adaptarlo con la opcin botn derecho sobre el servicio
en la pestaa Internal View-> Modificar operaciones.

Si aadimos una accin nueva.


Por ejemplo la accin Recupera fotografa de repositorio SAP a partir de la funcin
ZHR_GET_FOTO_EMPLEDO es una accin nueva. Seleccionamos y activamos.
Si aadimos un campo nuevo.
Deseleccionamos la accin/acciones que se vean afectadas, aceptamos, volvemos a incluir
estas acciones y ya se habran refrescado los campos del servicio.

Nota: Con estas opciones no es necesario generar un nuevo endpoint. Pero si borramos algn
campo o cambiamos su nombre no dir que el servicio est inconsistente y habr que generar un
nuevo endpoint. Ah es obligatorio. Esto habr que hacerlo con mucho cuidado, generando otra
versin del grupo de funciones, etc

8.2. Crear el Servicio

Ver punto Crear Servicio

8.3. Publicacin

Ver punto Publicar el servicio

8.4. Configuracin del Endpoint

Aqu vamos a mantener el endpoint. Accederiamos al servicio como en el punto Crear EndPoint.
Pero editamos el endpoint que ya tenemos generado.
Seleccionamos y pulsamos el botn Apply Selection y en la pestaa Configurations tenemos
el Endpoint (que no habamos borrado).

Tenemos que entrar editando (Botn Edit).


Tenemos que seleccionar las siguientes opciones y aadir el usuario y contrasea con los que se
va a autenticar el servicio. En este caso el usuario COMM_SOA
9. Problemas al crear el servicio

9.1. No es posible publicar a travs de WSPUBLISH.

Problema: Se produce un error que nos muestra el log al publicar.

Solucin: Es necesario hablar con el equipo de bsico, probablemente sea algn usuario que
no ha caducado la password.

9.2. Incoherencia de datos en SE80.

Problema: Objetos transportados no aparecen en SE80 y/o objetos borrados aparecen en


SE80.
El motivo es que SAP ciertos objetos no se regeneran bien (Siendo borrados, transportados,
etc...) al visualizar la SE80. Y no reflejan la realidad. Objetos creados no estn en el sistema,
objetos borrados permanecen visibles.
Esto les ocurre a los Proxies.

Solucin: Reestructurar los objetos. Para ello hay que ir a travs de la SE80 Paquete (ZHR),
Botn derecho (Sobre ZHR) -> Otras funciones -> Reestructurar lista de objetos.