/
Automatización del proceso de generación de registros electrónicos

Automatización del proceso de generación de registros electrónicos

A fecha de la publicación de esta guía, SAP no ha liberado el evento local R_JournalEntryTP-Created que permitiría poder automatizar la creación del registro TicketBAI sin necesidad de configurar el servicio de EventMesh, ya solicitamos a SAP liberar el evento y prevé liberarlo en 2025. +info

En esta sección se describen los pasos a seguir para llevar a cabo la configuración de la solución EventMesh para la gestión del evento de creación de la factura, y así habilitar la declaración del registro TicketBAI de manera automática y asíncrona.

image-20240325-163843.png
Diagrama de integración de BTP y el sistema S/4HANA Cloud

Esta tarea se compone de varias partes, en las que se involucra SAP BTP. Si no tienes experiencia o es la primera vez que usas esta herramienta, por favor, consulta con los responsables de tu instancia de BTP, ya que el procedimiento puede ser complejo y a veces necesitará tomar decisiones que dependen de configuraciones previas, además el error en alguno de los pasos puede repercutir en tener que volver a empezar la configuración desde el principio.

El uso de la herramienta SAP EventMesh tiene costes asociados que serán repercutidos al cliente directamente por SAP.

Las tareas las dividiremos en 5 pasos:

  1. Habilitar la comunicación desde SAP S/4Hana Public Cloud a SAP BTP (Provider).

En el ejemplo que se muestra en el video, se configura el evento sap/s4/beh/businesspartner/v1/BusinessPartner/Created/v1, pero en nuestro caso será el evento sap/s4/beh/journalentry/v1/JournalEntry/Created/v1.

Notas: Al crear el SAP S/4Hana Cloud Extensibility, nos pedirá un valor para el campo “Instance name” recomendamos usar el id del sistema S/4Hana Cloud. Al crear la instancia de Event Mesh consumer nos pedirá un valor para el campo “Receiver system” (minuto 4:00), recomendamos usar el id del sistema S/4Hana concatenando una C (de consumer) al final.

https://www.youtube.com/watch?v=4LspIL3NxqQ&t=2s&ab_channel=SAPDevelopers

En este paso conseguimos configurar la conexión desde S/4Hana Cloud a BTP, esta configuración nos ha generado una instancia de Event Mesh que funciona como proveedor, adicionalmente hemos creado otra instancia de Event Mesh manualmente que servirá como consumidor de eventos que se publiquen desde nuestro S/4Hana Cloud.

  1. Habilitar la comunicación desde BTP a S/4Hana Cloud (Consumer).

En este paso vamos a configurar en nuestro sistema lo necesario para consumir los eventos de la instancia de EventMesh.

Esta tarea será llevada a cabo en el Tile “Communication Arrangement”, crearemos un nuevo “Communication Arrangement basado en el Communication Scenario SAP_COM_0092, tiene la particularidad de que al crear pide un Service Key, que no es más que un JSON donde se incluyen todos los detalles de la conexión con una instancia Event Mesh.

El usuario puede ser uno nuevo o uno que exista previamente, normalmente crearemos uno que se usará en esta configuración.

image-20240325-150536.png

El Service Key lo tenemos que generar desde BTP, desde la instancia de Event Mesh que creamos en el paso anterior. Vamos al listado de instancias y localizamos nuestra instancia de Event Mesh, y seleccionamos “Create Service Key”.

Indicaremos un nombre para el Service Key, es indiferente, por ejemplo nuestro ID de sistema, y pulsaremos Crear.

Una vez generado, copiamos el JSON que genera y lo pegamos en la configuración del Communication Arrangement y pulsamos crear.

Con esto ya tenemos disponible la opción de consumir eventos de esta instancia de Event Mesh desde nuestro sistema.

  1. Creación del communication arrangement de handler.

En la app Communication Arrangement, debemos crear un nuevo acuerdo basado en el escenario /TBAI/CS_EVENT_MESH.

Crearemos un nuevo Communication System, llamado, por ejemplo, EVENT_MESH_CONSUMER. Marcaremos el flag General>Inbound Only, activaremos la sección Event Mesh y añadiremos el Canal que creamos en el paso 2 (Communication Arrangement de la instancia consumer de Event Mesh).

Añadimos también a la lista de Users for Inbound Communication el usuario que usamos en el paso 2 y guardamos.

Volvemos al Communication Arrangement y guardamos.

  1. Configurar el canal de eventos.

Esta tarea será llevada a cabo en el Tile “Enterprise Event Enablement - Configure Channel Binding” y será necesario realizarla de forma manual en cada uno de los sistemas.

Entramos en el canal que tiene el mismo ID que el Communication System que creamos en el paso anterior, y comprobamos que tiene lo siguiente:

Solo debemos crear un Subscription de la cola (Queue) que creamos en el paso 1, y que deberíamos haber guardo el ID, como se comenta en dicho paso.

Si después de añadir la cola, en la columna Status podemos leer Acknowledged, entonces es que hemos realizado todos los pasos de la configuración correctamente.

  1. Implementar el acuerdo SAP_COM_0002 para el usuario de comunicaciones.

Para proveer al usuario de comunicaciones de los permisos necesarios para consumir las vistas estándar de FI que se utilizan en la solución debemos crear un acuerdo de comunicaciones basado en el escenario de Finanzas, para el mismo usuario y sistema que usamos en el paso 3. Esto puede resultar poco intuitivo, pero así el usuario de integración de EventMesh tendrá los permisos necesarios para consultar vistas como I_JournalEntry y demás vistas necesarias por el producto.

En la aplicación “Communication Arrangement” debemos implementar el escenario SAP_COM_0002 y en la configuración usaremos el mismo sistema que usamos en el paso 3 y el mismo usuario, deshabilitando los servicios de salida, así el campo Outbound User dejará de ser obligatorio y nos dejará grabar.

Para validar que la configuración es correcta, podemos acceder a la aplicación “Enterprise Event Enablement - Event Monitor”, donde es posible visualizar los canales de salida y entrada. En esta herramienta, podremos observar cómo los eventos se generan en el canal de salida, se envían a BTP a través del servicio EventMesh y, finalmente, llegan al canal de entrada del sistema, confirmando que el flujo se ejecuta correctamente.

Durante nuestras pruebas, desde la creación del JournalEntry hasta la recepción del evento, el proceso tiene una duración aproximada de 10 segundos.

Avvale 2024