2010-09-29 15 views
8

Consulte la figura para tener una idea del escenario.Cómo dos tareas diferentes pueden ir a una tarea en SSIS

alt text

Ahora cuando mi paquete se ejecutará después de ejecutar el s! tarea, se seguirá la ruta A o B. Entonces, si se sigue A, entonces se ejecuta la Tarea S2 y F2. Pero si se sigue la ruta B, se ejecutan las tareas F1 y F3. Pero también después de completar la tarea F3, el flujo debe ir a la tarea S2 a través de la ruta E. Pero esto no sucede y cuando se completa la tarea F3, el paquete termina con éxito.

Necesito ayuda sobre cómo moverme a la ruta E y ejecutar la tarea S2 y F2 después de completar la tarea F3.

Gracias.

Respuesta

0

Supongo que F3 es una transformación sin bloqueo. Por lo tanto, debe insertar una transformación Semi o Completamente bloqueada para forzar a que SSIS espere hasta F3 y S1 para ejecutar S2.

Hay una buena lista here y una mejor explicación de cómo las transformaciones se bloquean entre sí. Pero probablemente usaría un Union All con F3 y S1 como predecesores y S2 como sucesor.

+0

Creo que OP se refiere al flujo de control y no al flujo de datos. Esta solución aborda los componentes de transformación en una tarea de flujo de datos. – bobs

+0

bobs es correcto ... esta solución solo funcionará dentro de un flujo de datos. – CTKeane

19

Su problema está relacionado con la configuración de las Restricciones de precedencia (las líneas azules). Debe abordar la configuración Restricción múltiple porque tiene dos Restricciones de precedencia que conducen a una tarea (S2).

Su configuración actual muestra que las rutas A y E deben completarse antes de que se inicie la Tarea S2. Como solo se completará una de estas rutas, SSIS se detiene. Debe realizar cambios para que cuando finalice la ruta E o, comience la tarea S2.

Haga lo siguiente para realizar el cambio. Haga clic derecho en la ruta A o la ruta E y seleccione Editar. En Precedence Constraint Editor, en Multiple constraints, seleccione "Logical OR. Una restricción debe evaluar True". Haga clic en Aceptar para cerrar el cuadro de diálogo. Las rutas A y E cambiarán a líneas punteadas, que representan la condición OR que acaba de definir.

+1

esto me salvó de quitarme el pelo. Muchas gracias, la solución funciona como un encanto –

Cuestiones relacionadas