¿Cómo cambiar mediante programación el flujo de trabajo entre las tareas de flujo de control de SSIS?
-
02-07-2019 - |
Pregunta
Tengo un paquete SSIS que, según una variable booleana, debería ir a una tarea de script o una tarea de correo electrónico. (Nota: las rutas provienen de desde una tarea de script)
Recuerdo que en el viejo diseñador de dts había una forma de hacerlo a través del código. ¿Cuál es la forma correcta de lograr esto en SSIS?
Solución
No es una división condicional un flujo de datos tarea, que toma una fila de datos y lo empuja en una de dos direcciones Según alguna propiedad de la datos ???
Vaya, eso es correcto. Encontré esta entrada de blog lo que explica cómo realizar una bifurcación condicional del flujo de control adecuado en función de valores booleanos.
Otros consejos
En el flujo de control, arrastre la flecha verde a la tarea de correo electrónico, luego haga clic derecho en ella y verá que puede establecerla desde 'Completado' a 'Condicional', luego puede establecer una expresión en la condición. La flecha se volverá azul. Entonces deberías poder arrastrar otra flecha al otro script y establecerlo como condicional.
Tengo esta configuración a menudo, muchas veces desea enviar un correo electrónico si se aplica una determinada condición. La sintaxis estándar para las restricciones condicionales es algo como:
@[User::SendEmail] == True
Suponiendo que su variable SendEmail es un booleano. Si usa algo más, simplemente construya una expresión que se evalúe como verdadera o falsa.
Recuerde establecer los condicionales en OR en lugar de AND, de lo contrario, no se completará a menos que pueda tomar ambas rutas.
Una tarea de división condicional hace lo que quieres. Agregue la tarea División condicional, agregue una salida adicional (se proporciona una salida predeterminada) y configure la Condición para esa salida. Luego simplemente vincule los resultados (predeterminados y nuevos) a las tareas de Script y correo electrónico, según corresponda.