• Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
S4PCADEMY_Logo
Twitter Linkedin Instagram
S4PCADEMY_Logo
Twitter Linkedin Instagram
FORMACIÓN SAP

Reenviar mensajes HTTP con pausa configurada e iteración máxima fija seguida de manejo de errores

By s4pcademy 


Hola compañeros de aprendizaje,

Continuando con mi ajetreo para reintentar mensajes con un tiempo de espera configurable y una iteración máxima para llamadas http.

Soy bastante consciente de los patrones de reintento detallados en las pautas oficiales. Ayuda de SAP: Aplicar el patrón de reintentoademás de la nueva función incorporada para reintentar llamadas http SAP Integration Suite: opción de reintento incorporada para el adaptador receptor HTTP Cumple el propósito completamente, pero aun así estoy dispuesto a establecer este enfoque para la usabilidad general, si los enfoques anteriores no se pueden lograr por algún motivo.

En diciembre de 2020 planteé esto. Pregunta: Posibilidad de volver a intentar un paso de solicitud-respuesta de SAP CPI Iflow en caso de error http en la comunidad y recibimos sugerencias valiosas para usar colas/almacén de datos JMS y, a partir del día de hoy, tenemos SAP Event Mesh y SAP Advanced Event Mesh (con funciones avanzadas que puede encontrar aquí).

Pero de alguna manera me sentí apegado al enfoque de Iflow y me esforcé por encontrar únicamente una solución lógica y específica para el diseño.

El año pasado implementé una solución simple, parecía genuina y sentí que valía la pena compartirla. La intención de esta solución es volver a intentar el activador http en caso de 5XX Errores http (fallos temporales relacionados con el servidor como 500, etc.). Sin embargo, tenga en cuenta que en el siguiente ejemplo he intentado lograr el resultado a través de otro punto final http de iflow implementado, por lo que trabajé con 404 con fines de demostración.

Planteamiento del problema:

Vuelva a enviar el mensaje a través del receptor HTTP durante una cantidad fija de reintentos después de recibir el código de respuesta 500 con una pausa, digamos después de 20 segundos.

Solución de diseño:

Diseño%20Solución

Solución de diseño

Explicación:

  1. Separe la llamada de respuesta de solicitud http del proceso principal [2] en un nuevo subproceso local [3]
  2. Guarde la carga útil de la solicitud http en la propiedad como carga útil inicial y la configurada esperarTiempoEnSec antes de llamar al subproceso de bucle
  3. Ejecute este proceso local[3] en bucle hasta que el código de respuesta http sea diferente al 404 hasta un máximo de 5 iteraciones, publique que finaliza el ciclo (se puede elegir la opción adecuada en Acción cuando se alcanza la iteración máxima).
  4. El número máximo de iteraciones se fija aquí como 5 (puede ser cualquier número entero positivo ya que esta entrada de campo no admite externalización/variable)
  5. Agregue un enrutador para validar la condición excedente y enrutar al final del error en caso de que exceda el recuento máximo de iteraciones.
  6. Cualquier error en el proceso principal a través del final del error/cualquier otra excepción, a su vez ejecutará el subproceso de excepción y adjuntará MPL a través de Groovy.
  7. El proceso de integración local [3] tiene 2 enrutadores enrutados mediante verificación condicional para la primera llamada; de lo contrario, se realiza una verificación condicional para que 404 siga el carril de reinicio, suspensión y reintento. En caso de cualquier otro error el proceso de integración local [3] Finales, rupturas de bucle y siguientes pasos del proceso principal. [2] es ejecutado
    ——————————————————————————————————————————–
  8. En la configuración del adaptador del receptor HTTP. El Lanzar excepción en caso de falla La opción debe estar desmarcada para lograr este método de reintento.
  9. en el proceso principal [2] el enrutador realiza una verificación condicional del código de respuesta http, aquí tenemos la posibilidad de manejar cada error por separado y aplicar el mecanismo de manejo de errores correcto según Ayuda de SAP: Maneje los errores con elegancia. También es posible que el flujo se extienda para impulsar la carga útil a las colas de reintentos para reintentos posteriores.

Es probable que la implementación de este enfoque varíe según su caso de uso individual.

Por lo tanto, me encantaría recibir noticias de la comunidad sobre este enfoque.


Cómo configurar correos electrónicos para su uso en SAP Access Control
Previo
El principio básico del uso de CSS
Siguiente

Madrid

Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010

México

Paseo de la Reforma 26
Colonia Juárez,  Cuauhtémoc
Ciudad de México 06600

Costa Rica

Real Cariari
Autopista General Cañas, 
San José, SJ 40104

Perú

Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073

Twitter Linkedin Instagram
Copyright 2022 | All Right Reserved.