Altova FlowForce Server 2024 Advanced Edition

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 ejemplo puede ver la estructura de muestra 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 ejecuten los pasos protegidos (correctamente o no), FlowForce ejecuta los controladores del bloque.

 

Bloque protegido

 

Paso A

Paso B

 

Cuando haya errores

  Paso C

Al reintentar

  Paso D

Cuando la operación funcione correctamente

  Paso E

Siempre

  Paso F

 

Bloque protegido

 

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 protegidos finalizan correctamente.

El controlador Al reintentar se ejecuta se ejecuta si cualquiera de los pasos protegidos han fallado. Los pasos protegidos se vuelven a ejecutartantas veces como se haya definido en la opción Número de reintentos (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 protegidos 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 hayan ejecutado los pasos protegidos. El bloque Cuando haya errores se ejecuta antes que el primer bloque Siempre sólo si los pasos protegidos terminaron de ejecutarse con algún error.  

 

En el bloque protegido de muestra anterior, si los pasos A o B fallan, se abandonan los pasos protegidos 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 sólo 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 los pasos protegidos se abandonaron porque se produjo un error. Cuando no quedan reintentos, el error se vuelve a producir fuera de este bloque protegido.

 

Para agregar un paso de ejecución que se intente ejecutar un número de veces siga estos pasos:

 

1.Indique el número de reintentos que necesita (p.ej. 3 veces) en el cuadro de texto en la parte superior del paso controlador de error/operación correcta (imagen siguiente).

2.Haga clic en el botón add que hay bajo la sección Ejecutar con identificador de error/operación correcta y agregue uno o varios pasos que se deben 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.

fs_retry_on_error_03

Configurar un tiempo de espera

Puede configurar un tiempo de espera en un paso controlador de error/operación correcta haciendo clic en el botón configurar un tiempo de espera en la parte superior del bloque Error/operación correcta. Al hacer clic en este botón, aparecerán dos opciones: tiempo de espera y forzar detención tras N segundos adicionales. El primer tiempo de espera cancelará un paso de ejecución si no se ha podido realizar correctamente después de un tiempo determinado (en segundos). El paso de trabajo puede acceder a la solicitud u omitirla. Cuando expira el primer tiempo de espera, se procederá a tramitar el segundo tiempo de espera que aborta el paso del trabajo de manera imperativa. Los tiempos de espera hacen que el paso abortado resulte fallido. Si ha definido controladores Cuando haya errores, Al reintentar o Siempre, éstos se procesarán a continuación.

 

Pasos resumidos

Los pasos resumidos permiten seguir con la ejecución incluso después de haber encontrado un error. Los pasos resumidos son relevantes para el control de errores y sólo pueden ocurrir en secciones de bloques controladores protegidos. Los pasos resumidos también se pueden utilizar dentro de condicionales que se utilizan dentro de secciones de bloques controladores protegidos.

 

Cómo funcionan los pasos resumidos

La idea principal del paso resumido es reemplazar el resultado del paso protegido fallido por un objeto resultado recién construido. Así se evita que si se produce un error en el paso controlador de error/operación correcta, se cancele todo el trabajo. A continuación puede ver las acciones que se realizan al ejecutar un paso resumido:

 

1.El resultado del bloque protegido correspondiente se establece en la expresión calculada.

2.Después, el paso resumido abandona el bloque protegido del que es controlador.

3.La ejecución continúa después del bloque protegido (puede ser el paso siguiente o el final del trabajo) como si el bloque protegido hubiera tenido éxito.

 

Una vez que el paso resumido ha terminado de ejecutarse, no se ejecutarán más bloques controladores del bloque protegido actual o incluso pasos dentro del bloque controlador actual. Si necesita definir algunas operaciones de depuración, puede anidar otro bloque protegido dentro del primero y añadir, por ejemplo, controladores Siempre o Cuando la operación funcione correctamente.

 

Añadir un paso resumido

Para agregar un paso resumido, siga estos pasos:

 

1.Cree un paso controlador de error/operación correcta

2.Haga clic en el icono Más en la ubicación deseada.

3.Seleccione Paso resumido de la lista.

4.Aparecerá el paso resumido que contiene un cuadro de texto en el que deberá introducir una función de expresión. El resultado del bloque protegido actual se establecerá en la expresión calculada en este campo.

 

La expresión pasada al paso resumido debe ser compatible con el tipo devuelto del bloque protegido, que es el tipo del último paso ejecutado dentro de la secuencia protegida. A continuación puede ver una lista de las funciones de expresión que puede usar:

 

make-error-result

make-success-result

merge-results

 

Dónde colocar un paso resumido

Existen diferentes puntos en los que puede colocar los pasos resumidos en bloques protegidos. A continuación puede ver algunas posibilidades:

 

Ejemplo 1: Puede colocar un paso resumido dentro de un bloque controlador.

Ejemplo 2: También puede dividir el bloque protegido en dos bloques anidados, uno que contenga un paso resumido y otro que ejecute los controladores Siempre restantes.

 

Ejemplo

En la práctica no es necesario definir todos los 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.

fs_protected_block_01

 

© 2018-2024 Altova GmbH