
Si una tarea con la recuperación automática habilitada falla durante la ejecución, puede ejecutar la tarea de nuevo en modo de recuperación. Durante el modo de recuperación, Data Services recupera los resultados de los pasos completados correctamente y solo vuelve a ejecutar los pasos incompletos o fallidos en las mismas condiciones que el trabajo original.
Habilitación de la recuperación

La recuperación no está activada por defecto en la ejecución del job. Debe seleccionar la opción.
Cuando la opción está activada, Data Services registra todas las tareas completadas y fallidas.
Si el job falla, hay otra opción disponible para la siguiente ejecución de job: Recuperar de la última ejecución fallida. La opción se selecciona por defecto y el job se ejecuta en modo de recuperación.
Modo de recuperación
En el modo de recuperación, Data Services ejecuta los pasos o unidades de recuperación que no se completaron correctamente en una ejecución anterior. Esto incluye los pasos que han fallado y los pasos que han generado una excepción pero que se han completado correctamente, como los de un bloque try/catch. Al igual que en la ejecución normal del job, Data Services ejecuta los pasos en paralelo si no están conectados en los diagramas de flujo de trabajo y en serie si están conectados.
Permítanme explicar con un ejemplo:
Requisitos de recuperación
En nuestro ejemplo, para garantizar que las tablas de hechos se cargan con los datos que corresponden correctamente a los datos ya cargados en las tablas de dimensión:
- El job de recuperación debe utilizar los mismos criterios de extracción que el job original para el flujo de datos recuperado.
Si el job de recuperación utiliza nuevos criterios de extracción, como la extracción de datos basada en la fecha actual del sistema, los datos de las tablas no se corresponderán con los datos extraídos previamente en el flujo de datos completado. Si el job de recuperación utiliza valores nuevos, la ejecución del job puede seguir una vía de acceso completamente diferente con pasos condicionales o bloques try/catch.
- El job de recuperación debe seguir exactamente la misma ruta de ejecución que el job original.
Data Services registra cualquier entrada externa al trabajo original para que el trabajo de recuperación pueda utilizar estos valores almacenados y seguir la misma ruta de ejecución.
Uso de bloques Intentar/Interceptar para la recuperación
Data Services no guarda el resultado de un bloque try/catch para volver a utilizarlo durante la recuperación. Si se lanza una excepción dentro de un bloque try/catch, durante la recuperación, Data Services ejecuta el paso que arrojó la excepción y los pasos siguientes.
Dado que la ruta de ejecución con el bloque try/catch puede ser diferente en el job recuperado, el uso de variables establecidas en el bloque try/catch podría alterar los resultados durante la recuperación automática.
Por ejemplo, supongamos que crea un job que define el valor de la variable $i dentro de un bloque try/catch. Si se produce una excepción, fije un valor alternativo para $i. Los pasos siguientes se basan en el nuevo valor de $i.

Durante la primera ejecución del job, el primer flujo de trabajo contiene un error que genera una excepción, que se intercepta, y luego fija la variable en 0. Pero el job continúa con el siguiente paso y ejecuta el workflow por $i>1. Sin embargo, el job falla en el flujo de trabajo subsiguiente como se muestra en la siguiente figura.

Después de corregir el error, ejecute el job en modo de recuperación. Durante la ejecución de la recuperación, el primer flujo de trabajo ya no genera la excepción. Por lo tanto, el valor de la variable $i es diferente, y el trabajo selecciona un flujo de trabajo posterior diferente, produciendo diferentes resultados como se muestra en la siguiente figura.

Unidades de recuperación

En algunos casos, los pasos de un flujo de trabajo dependen entre sí y se ejecutan juntos. Cuando haya una dependencia, designe el flujo de trabajo como una unidad de recuperación. Esto requiere que todo el flujo de trabajo se complete correctamente. Si el flujo de trabajo no se completa correctamente, Data Services ejecuta todo el flujo de trabajo durante la recuperación, incluidos los pasos que se ejecutaron correctamente en ejecuciones de flujo de trabajo anteriores.
Por el contrario, es posible que deba especificar que un flujo de trabajo o flujo de datos solo se ejecute una vez. Cuando esta opción está activada, la tarea nunca vuelve a ejecutar el objeto.
Atención
