Introducción
CPI es una tecnología maravillosa para escenarios B2B que nos ayuda a conectar diferentes sistemas, organizar y transformar datos. Al igual que con la conexión de diferentes sistemas, en ocasiones también es posible que necesitemos procesar excepciones cuando las cosas no siguen como esperábamos.
Este blog proporciona información de nivel principiante sobre el manejo de una excepción en CPI.
CPI tiene la capacidad de manejar excepciones. Sin embargo, la forma en que se manejan las excepciones puede ser un poco diferente de lo que esperaría un principiante. Definitivamente fue diferente de lo que esperaba 🙂
Como desarrollador ABAP tradicional, esperaba detectar la excepción y enrutar el control a los pasos posteriores en el iFlow principal. Pero, el manejo de excepciones en CPI por diseño NO regresa al flujo principal después de que se genera una excepción.
Por ejemplo, en el siguiente flujo, espero una excepción en el paso «Obtener gvCounter». Pero una vez que el control pasa al proceso de Excepción, el control no vuelve al flujo de integración principal para procesar el resto de los pasos.
opción de solución
¿Cómo podría enrutarse el subproceso de excepción al flujo principal?
Una opción de solución es agrupar los procesos subsiguientes en el flujo principal en un subproceso e invocar el subproceso dentro del flujo de Excepción.
Al granularizar el proceso principal en subprocesos, podemos desviar el flujo de excepción para procesar los pasos restantes en el flujo de integración.
Resumen de los pasos
Paso 01 – definir el “flujo restante”.
Paso 02 – Defina un proceso de excepción e invoque “remainingFlow” desde el proceso de excepción.
En mi ejemplo, espero una excepción en el paso Obtener variable persistente «Obtener gvCounter». Entonces, estoy definiendo un proceso de manejo de excepciones para manejar el error cuando la variable gvCounter no persiste antes.
Paso 03 – También necesito asegurarme de que el “reminingFlow” se procese incluso cuando no haya excepciones.
Entonces, también estoy invocando el «reminingFlow» en mi flujo principal.
Después de la implementación, podemos ver que se invoca el flujo restante independientemente de si hay un error o no.
Pensamiento final
La solución discutida aquí podría ser una entre las muchas opciones. Cualquier desarrollador experimentado puede sugerir cualquier otro método que conozca para procesar el resto de los pasos de integración después de que se genere una excepción.
También siéntase libre de comentar cualquier blog de SAP o rutas de aprendizaje que ayuden a aprender la suite de integración.
Aquí hay algunos enlaces útiles que sigo para aprender Integration Suite:
Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010
Paseo de la Reforma 26
Colonia Juárez, Cuauhtémoc
Ciudad de México 06600
Real Cariari
Autopista General Cañas,
San José, SJ 40104
Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073