Configuración del Exception Handler

Para configurar un Exception Handler, es necesario definirlo dentro de un flujo y aplicarlo a los módulos. También puede ser necesario configurar el servidor syslog y el correo electrónico de notificación.


Cómo acceder

En la página de edición del flujo, selecciona el botón "Exception Handlers".

Objetivos

Configurar el manejo de excepciones para un módulo REST.

Passo a Passo

Paso 01: Crear el Exception Handler para el tratamiento de errores HTTP

  1. Haz clic en "Agregar Exception Handler".

En la pantalla que se presenta:

  • Define un nombre para tu Exception Handler, por ejemplo: HTTP Handler. Este nombre será visible en la configuración del módulo.

  • Crea una descripción sobre este Exception Handler.

  • Define el alcance de disponibilidad de tu EH:

    • Flujo: visible y disponible solo en el flow que estás editando.

    • Integración: visible y disponible para todos los flows de la integración que estás editando.

    • Espacio: disponible para cualquier flujo de cualquier integración de tu espacio.

  • Haz clic en "Agregar regla" para crear una nueva Regla del Handler.

Después de hacer clic en "Agregar regla", se abrirá la segunda parte de las configuraciones:

  • Define un nombre para tu Regla del Handler, por ejemplo: Client/Server Error Responses.

  • Define los reintentos en 1. El objetivo es permitir que Skyone Studio intente la llamada una vez más, eliminando posibles errores puntuales de comunicación.

  • Define el tiempo de espera.

  • Define la expresión regular que identifica cualquier error de cliente o servidor HTTP. Para ello, usamos una expresión regular que encuentra cualquier secuencia de 3 dígitos que comience con 4 o 5. Observa que todos los caracteres son importantes para el funcionamiento de una expresión regular, incluidos los espacios.

Puedes encontrar validadores de expresiones regulares en Internet, por ejemplo: https://regex101.com/

  • Selecciona las notificaciones que esta ER generará, por ejemplo: Syslog y Local.

  • Define el mensaje generado en esas notificaciones, por ejemplo: HTTP Error 400/500. Este mensaje podrá ser filtrado en el syslog o en los logs locales.

Esta Regla del Handler puede resumirse en el siguiente cuadro:

Nombre
Reintento
Tiempo de espera
REGEX
ANY
Notificación
Mensaje
¿Enviar Parámetros?

Client/Server Error Responses

1

0

“status”: [45]\d\

syslog

local

HTTP Error 400/500

Regla por defecto del Handler

  • Define las notificaciones que serán generadas, por ejemplo syslog y Local.

  • Define el mensaje de notificación, por ejemplo: HTTP FATAL ERROR.

  • Selecciona ¿Enviar parámetros en el mensaje? Esta opción incluirá en la notificación toda la información de contexto de la llamada, permitiendo identificar exactamente los parámetros utilizados.

  • Elige la Acción final (Continuar, Continuar loop o Detener).

  • Haz clic en "Guardar" para finalizar la configuración.


Paso 02: Crear el Exception Handler para el tratamiento de errores Genéricos

Muchos errores son imprevisibles. Podemos definir un EH para tratarlos de forma estandarizada.

  • Crea un nuevo EH con el nombre Generic con alcance de Integración.

  • Agrega la siguiente Regla del Handler:

Name
Retrices
Delay
REGEX
ANY
Notificação
Message
Send Params

Generic

1

0

syslog

local

UNKNOWN ERROR

Observa que seleccionamos el campo ANY. Con esta opción, cualquier excepción será manejada por esta regla. Típicamente, esta opción se aplica solo una vez al final de una secuencia de EH para tratar todos los errores que no fueron específicamente definidos anteriormente.

  • Configura la Regla por defecto del Handler.

  • Selecciona Syslog y Local como mecanismos de notificación.

  • Selecciona ¿Enviar parámetros en el mensaje? Esta opción nos permitirá investigar los detalles del error desconocido que generó la excepción.

  • Selecciona la acción final como Detener. De esta manera, el flujo se interrumpirá, ya que estamos manejando un error grave para el cual nuestro flujo no está preparado.

  • Haz clic en "Guardar" para finalizar la configuración.

Paso 03: Aplicar los Exception Handlers en el Módulo

Ingresa al modo de edición del módulo que recibirá los Exception Handlers. Observa que ambos EH creados están disponibles para su aplicación en el módulo.

  • Primero selecciona HTTP Handler y luego selecciona Generic.

  • Observa que se insertan en el campo de Handlers seleccionados en el orden en que fueron seleccionados. Este orden también determina la secuencia en la que se evaluarán las excepciones, por lo que es fundamental para el correcto funcionamiento de la pila de EH.

Paso 04: Configurar las notificaciones syslog y correo electrónico del Exception Handler

Al crear una regla en el Exception Handler, es posible elegir qué mensajes recibirás. Sin embargo, solo seleccionar el tipo de mensaje no es suficiente para garantizar la recepción de la notificación.

Para recibir todas las notificaciones, sigue estos pasos:

  1. Accede a "Configuraciones" en el área de edición del flujo.

  2. Haz clic en la pestaña "Alertas".

  3. En "Configuraciones de logs", ingresa la dirección del servidor syslog y/o las direcciones de correo electrónico que deben recibir las notificaciones.

  4. Finalmente, haz clic en "Guardar cambios".


Paso 05: Ejecutar el flujo

  1. Ejecuta este flujo contra algún servicio programado para responder con un código de error (por ejemplo 400) o provoca el error mediante algún parámetro configurado incorrectamente.

  2. Observa que el flujo finaliza con éxito a pesar de la excepción, ya que fue manejada con la acción Continuar.

  3. Nota que los mensajes de log generados localmente indican que el EH HTTP Handler fue responsable del manejo de la excepción.

  4. Se generaron dos llamadas: una reintento con sus respectivas notificaciones. La tercera notificación de error fue generada por la Regla por defecto del Handler e incluye los detalles de la llamada que causó la excepción.

Adicionalmente, puedes ejecutar este flujo contra un servicio que esté indisponible.

  • En este caso no se recibirá un código HTTP, sino algún otro tipo de error.

  • El ejemplo siguiente fue generado contra un servidor con el servicio deshabilitado.

  • Observa el error de Conexión Rechazada en el mensaje detallado.

  • El manejo de este error fue ejecutado por el EH Generic.

  • El flujo se interrumpió generando un ERROR, conforme fue programado en el Handler mediante la acción Detener de la Regla por defecto del Handler.


Próximos pasos

Last updated