Controlador de error/operación correcta
Cuando un paso de un trabajo da lugar a error, el trabajo también se considera fallido. Para realizar algunas acciones de limpieza antes de que finalice el trabajo (como registrar el error o enviar notificaciones por correo electrónico), puede crear identificadores de error/operación correcta. Estos identificadores sirven para proteger la ejecución de uno o varios pasos del trabajo (p. ej. bloques protegidos). Los controladores de error/operación correcta y los pasos protegidos forman parte de los llamados bloques protegidos (véase Estructura de un bloque protegido más abajo).
En función de sus necesidades, puede crear pasos de ejecución, pasos Opción, pasos For-Each y pasos pospuestos dentro de un bloque protegido. También puede anidar bloques protegidos dentro del bloque protegido.
Agregar un controlador de errores/operación correcta
Para agregar un controlador de errores cree un trabajo o abra uno que ya exista y haga clic en nuevo identificador de Error/Operación correcta. Después seleccione el controlador correspondiente.
Estructura de un bloque protegido
En el esquema que aparece a continuación puede ver la estructura de un bloque protegido. El bloque protegido de la imagen consiste en pasos protegidos (pasos A y B) y controladores que indican si la operación se llevó a cabo correctamente o no (pasos C, D, E y F). Cuando se ejecute la secuencia protegida (correctamente o no), FlowForce ejecuta los controladores del bloque.
Paso A
Paso B
Cuando haya errores
Paso C
Al reintentar
Paso D
Cuando la operación funcione correctamente
Paso E
Siempre
Paso F
Tipos de controladores
Cada uno de ellos tiene una condición particular que, de cumplirse, hace que se ejecuten los pasos de ese controlador. Los controladores de errores pueden ser de varios tipos:
•El controlador Cuando haya errores ejecuta cierta acción si uno de los pasos del bloque protegido da lugar a error
•El controlador Cuando la operación funcione correctamente ejecuta cierta acción si todos los pasos del bloque protegido finalizan correctamente
•El controlador Al reintentar se ejecuta se ejecuta si cualquiera de los pasos del bloque protegido ha fallado. El paso se vuelve a intentar tantas veces como se haya definido en la opción correspondiente (véase la opción Reintentar más abajo). La opción predeterminada es 0.
•El controlador Siempre ejecuta cierta acción independientemente de si los pasos del bloque protegido finalizan correctamente o no.
Orden de ejecución de los controladores
Los bloques de controladores siempre se ejecutan en el orden indicado. Por ejemplo, si hay un bloque Siempre seguido de un bloque Cuando haya errores y luego por otro bloque Siempre, los dos bloques Siempre se ejecutan en el orden indicado una vez se haya ejecutado la secuencia protegida. El bloque Cuando haya errores se ejecuta antes que el primer bloque Siempre solo si la secuencia protegida terminó de ejecutarse con algún error.
En el extracto de código anterior, si los pasos A o B fallan, se abandona la secuencia protegida y se garantiza la ejecución de los pasos C y F (porque son de tipo Cuando haya errores y Siempre, respectivamente). El paso D solo se ejecuta si quedan intentos (véase la subsección siguiente).
Opción Reintentar
Puede que haya casos en los que quiera intentar volver a ejecutar un paso si su ejecución falló o por alguna otra razón. Para que sea posible volver a intentar un paso en caso de que se encuentre un error, FlowForce Server ofrece la opción Reintentar. Por defecto, esta opción es 0, lo que significa que el bloque protegido se ejecutará una sola vez y no se volverá a intentar.
Los bloques Al reintentar solo se ejecutan si le quedan intentos a la secuencia protegida. El reintento en sí no empieza hasta que no se han ejecutado correctamente todos los bloques de controladores y solamente si la secuencia protegida se abandonó porque se produjo un error. Cuando no quedan reintentos, el error se vuelve a producir fuera de este bloque protegido y podría ser observado por otros bloques protegidos.
Para agregar un paso de ejecución que se intente ejecutar un número de veces siga estos pasos:
1.Haga clic en nuevo identificador de Error/Operación correcta en la página de configuración del trabajo.
2.Después indique el número de reintentos que necesita, por ejemplo 3 veces (imagen siguiente).
3.Haga clic en el botón que hay bajo la sección Ejecutar con identificador de error/operación correcta y agregue el paso (o pasos) que se debe(n) intentar ejecutar de nuevo si ocurre un error.
En la imagen siguiente puede ver un trabajo que carga un archivo a un servidor FTP y que se intentará ejecutar 3 veces si se encuentra un error. El número de reintentos de cualquier instancia de trabajo aparece en el registro. Si además necesita obtener y procesar el número de reintentos en tiempo de ejecución, llame a la función de expresión retry-count.
Ejemplo
En la práctica no es necesario definir los tres tipos de controladores por cada trabajo (aunque si quiere puede hacerlo). Lo más común es definir solamente los controladores Cuando haya errores y Siempre (imagen siguiente).
El primer paso ejecuta un script del directorio C:\scripts. Para ello invoca la función \system\shell\commandline. La ejecución de este paso está protegida por dos controladores: Cuando haya errores y Siempre. Si la ejecución del primer paso falla, el controlador Cuando haya errores solamente envía un correo electrónico con el ID de la instancia de trabajo fallida en el asunto. El controlador Siempre se ejecuta siempre, independientemente de si el primer paso se completó correctamente o no. Este controlador guarda un mensaje en el registro, para lo que ejecuta un script desde el directorio C:\scripts.
Para ver un ejemplo más completo consulte el apartado Agregar un control de errores a un trabajo.