por Steve Park Consultor PI/ABAP
¿Has llamado alguna vez a un Servicio Web alojado en SAP SE sólo para obtener un código de retorno genérico que podría significar cualquier cosa? ¿Te preguntas cuáles eran los datos exactos que se pasaban en el parámetro mientras se ejecutaba el servicio web SAP? Por ejemplo, cuando se pasa “00001”, ¿se pasa realmente “00001” o sólo se pasa “1”? Esto podría marcar la diferencia entre un servicio web llamado con éxito o una llamada a un servicio web que devuelva una excepción. Depurar estas llamadas es crucial para garantizar procesos empresariales fluidos.
He encontrado un problema al probar un servicio web SAP cuando se realiza una llamada desde un cliente externo. El Servicio Web SAP devolvía una excepción al cliente externo que no nos decía gran cosa. Los sistemas de planificación de recursos empresariales de SAP facilitan la integración de diversos procesos empresariales, por lo que es esencial resolver estos problemas con prontitud. Las soluciones SAP Business, como SAP Business Technology Platform, desempeñan un papel crucial en estas integraciones.
Este servicio web de SAP se creó a partir de un módulo de funciones, así que mi primer paso fue ir al módulo de funciones e introducir exactamente lo que el cliente externo intentaba enviar, esperando obtener la misma excepción. Sorprendentemente, el módulo de función volvió a funcionar correctamente. Los sistemas ERP de SAP están diseñados para gestionar procesos empresariales complejos, y la depuración de servicios web forma parte del mantenimiento de estos sistemas.
Como no he podido averiguar qué fallaba al hacer la prueba en SAP, mi siguiente paso es ver qué está pasando realmente el cliente externo en tiempo real al servicio web de SAP utilizando el depurador ABAP. Seguramente te estarás preguntando, ¿cómo va a saber SAP cuándo debe iniciar el depurador ABAP, ya que SAP está siendo llamado desde un cliente externo? Las capacidades de la base de datos en tiempo real de SAP HANA son fundamentales para la estrategia de SAP, ya que permiten la accesibilidad a los datos en tiempo real y mejoran el rendimiento de los servicios web.
La respuesta: Tienes que decirle a SAP que estás esperando una llamada
Estos son los pasos para activar el depurador ABAP para llamadas externas.
1) En la transacción SICF, busca el servicio con el que tienes problemas y resalta tu servicio, luego ve a: Editar -> Depuración->Activar Depuración
2) Aquí tienes que introducir el identificador de usuario que el cliente externo está utilizando al realizar la llamada. Es de vital importancia que sea el mismo usuario que se registrará en SAP.
3) Asegúrate de que estás conectado a SAP con el mismo usuario. Ahora inicia la llamada desde el cliente externo y esta vez te darás cuenta de que también se iniciará un depurador ABAP. Ahora puedes recorrer el código y ver exactamente dónde se produce el problema.
4) Cuando hayas encontrado el problema, no olvides desactivar el depurador. Si lo olvidas, SAP lo desactivará automáticamente tras un periodo de 2 horas.
El software de gestión de viajes y gastos basado en la nube también puede integrarse para agilizar los procesos empresariales.