Alerta: ¡Un post largo!
Este blog es una continuación de mi blog anterior:
ABAP Daemon - Sesión ABAP con duración ilimitada.
El ejemplo a continuación representa uno de los posibles casos de uso del daemon ABAP, con la integración entre tecnologías de interfaz: AIF (Framework de Interfaz de Aplicación), IDOC's, RFC Asíncrono, eventos comerciales (flujo de trabajo) y de clase, programa de informe, correo electrónico y ABAP Daemon.
Descargo de responsabilidad
:
-
En este ejemplo, no se crea ningún documento real, pero se utiliza un número ficticio (suponiendo un número de documento SAP) para actualizar la base de datos personalizada/desencadenar un IDoc saliente después de cada ocurrencia de evento.
-
Por favor, verifique si el componente AIFGEN de AIF está disponible y la administración está configurada en el sistema. Si no, puede utilizar cualquier otra técnica de interfaz, por ejemplo, IDoc, proxy, REST API, etc.
-
El Daemon ABAP utiliza el formato PCP (
Protocolo de Canal de Envío
) (nombre y valor) para transferir el mensaje entre las sesiones y mantener el estado. Para enviar datos de mensaje al daemon, se utiliza el formato JSON (serializar/deserializar). Las tablas/estructuras internas se convierten en JSON (cadena larga) y se envían al daemon, donde se vuelven a convertir en tablas/estructuras internas desde JSON. Puede utilizar cualquier formato de cadena larga (XML, XSTRING, etc.).
-
Si no recibe el correo electrónico, verifique el código SOST.
-
Para depurar el daemon/AIF, puede utilizar un depurador externo o un bucle infinito (proceso de trabajo SM50).
Para comprender mejor, he implementado un prototipo basado en el siguiente escenario comercial.
Escenario comercial: Proceso general de adquisición de activos: Ejemplo
Supongamos que el usuario/empresa desea adquirir algún activo/artículo (por ejemplo, una computadora portátil/maquinaria pesada para la fábrica). Entonces, en este proceso, se crean diferentes documentos para completar la adquisición. Después de la creación/posterior de cada documento (o eventos), deseo que se actualice una tabla personalizada y se desencadene un mensaje IDOC saliente. El paso de actualización de la tabla y el envío de IDOC se manejarán mediante una instancia del daemon. A continuación, intento explicar cómo fluirá el proceso comercial completo para mi ejemplo.
-
El usuario/empresa presenta una solicitud en algún portal del sistema heredado para la adquisición de un activo y los detalles de la solicitud se envían al sistema S/4 HANA (1909) a través de la tecnología de interfaz AIF (Framework de Interfaz de Aplicación).
-
Al recibir el mensaje AIF, se crean diferentes documentos (por ejemplo, Orden Interna, Maestro de Activos y Requisición de Compra). El documento creado en este paso debe actualizarse en una tabla personalizada (para referencia) y desencadenar un IDOC saliente.
-
En el siguiente paso, se crea una Orden de Compra con referencia a la Requisición de Compra. La Orden de Compra también debe actualizarse en una tabla personalizada y desencadenar un IDOC saliente.
-
En el siguiente paso, el proveedor envía el activo físico. Esto conduce a la recepción de bienes en S/4 HANA. Los detalles de la recepción de bienes se reciben a través de AIF, lo que resulta en la publicación del documento de material. Los documentos de material deben actualizarse en una tabla personalizada y desencadenar un IDOC saliente.
-
Por último, el proveedor envía una factura a través de AIF, lo que conduce a la creación de la factura de compra en el sistema en S/4 HANA. Los documentos de la factura deben actualizarse en una tabla personalizada y enviarse un IDOC saliente.
-
Hay muchos procesos adicionales para completar la adquisición de activos (por ejemplo, capitalización, depreciación, desactivación), no nos centremos en más procesos comerciales subsecuentes y creemos un flujo técnico utilizando Daemon.
Cada mensaje de entrada/salida o documento creado/modificado/eliminado se puede considerar como un evento en ABAP.
La implementación completa se basa en el escenario comercial explicado anteriormente.
Diseño técnico:
Nota: El siguiente ejemplo implementado y probado se realizó en S/4 HANA 1909 (como ABAP 7.54).
Aquí, intenté la integración entre diferentes Objetos/funcionalidades ABAP con ABAP Daemon:
Programa de Informe
: Este es un programa interactivo (basado en ventanas emergentes) responsable de