Variables en Expresiones de Restricciones de precedencia con SSIS 2008 – Configuración

En la tarea de Flujo de datos Extraer Productos, Convertir y Cargar Recuento habíamos declarado una variable para almacenar el valor del recuento de filas que iban por la Salida de error.

Variableanterior

PropiedadesVariable

Nuestro objetivo es utilizar el valor devuelto por la variable, es decir, la cantidad de filas truncadas como parte de una expresión que se asigna a la Restricción de precedencia a la tarea siguiente, (en este caso algo tan sencillo como ejecutar proceso). Veamos los pasos a seguir.

1.      Crear una expresión en la Restricción de Precedencia

Editamos la Restricción de precedencia a la tarea Ejecutar Proceso y le definimos que queremos que se ejecute cuando se cumpla la expresión cuya condición es que la variable que tenemos sea mayor que cero.

FilasTruncadasVarOK

Se ha validado correctamente la expresión, por lo que, al menos en apariencia, vamos bien. En el Flujo de Control, junto a la flecha que indica la restricción de precedencia se refleja que en la restricción de precedencia hay una expresión.

FlujoControlExpresion

Ejecutamos … Pero… devuelve error de ejecución  😦

VarError

Lo que ha ocurrido es que no tenemos ninguna Variable con alcance de Paquete, la habíamos definido para esta tarea tenía alcance de Tarea. Además como he estado copiando y pegando tareas en cada caso se ha duplicado la tarea con su correspondiente variable; pero ninguna tiene alcance de Paquete, por lo que no es posible utilizar una variable de una tarea para otra, normal, como siempre hemos visto cuando se trata de alcances de variables.

VariasVariables

2.- Crear una variable con alcance de paquete.

Si en el momento de haber creado la variable, nos hubiésemos asegurado que su alcance fuera paquete, esto no sería necesario. Creamos entonces una nueva variable asegurándonos que su alcance coincide con el paquete.

Variableanterior2

Probamos ahora y parece que sí

VarTruncaPaqOK

3.- Cambiar la variable que guarda los resultados de Recuento de fila, por aquella con alcance de paquete

Hago un cambio, en la tarea Recuento de Filas tengo en cuenta la variable TruncadasPaquete

CambiaVarTareaRecc

4.- Configurar la tarea Destino a esta Restricción de precedencia con expresión que incluye variable

Preparamos la tarea Ejecutar proceso para que active la calculadora si se cumple la condición como vimos antes

EjProcesoDestino

Ya tenemos todas las condiciones creadas, en la próxima veremos la ejecución.