2010-09-29 8 views
8

, vedere la figura per avere un'idea dello scenario.In che modo due diverse attività possono eseguire un'attività in SSIS

alt text

Ora, quando il mio pacchetto verrà eseguito dopo l'esecuzione del s! compito, verrà seguito il percorso A o B. Quindi, se A viene seguito, viene eseguita l'attività S2 e F2. Ma se viene seguito il percorso B, vengono eseguiti i task F1 e F3. Ma anche dopo aver completato l'attività F3, il flusso dovrebbe passare all'attività S2 tramite il percorso E. Ma ciò non accade e al completamento dell'operazione F3, il pacchetto termina con successo.

Ho bisogno di aiuto su questo su come spostarmi sul percorso E ed eseguire i task S2 e F2 dopo il completamento del task F3.

Grazie.

risposta

0

La mia ipotesi è che F3 sia una trasformazione non bloccante. Quindi è necessario inserire una trasformazione Semi o Fully Blocking per forzare SSIS ad attendere che F3 e S1 eseguano S2.

C'è una buona lista here e una spiegazione migliore di come le trasformazioni si bloccano a vicenda. Ma probabilmente utilizzerei uno Union Tutti con F3 e S1 come predecessori e S2 come successore.

+0

Penso che l'OP si riferisca al flusso di controllo e non al flusso di dati. Questa soluzione risolve i componenti di trasformazione in un'attività del flusso di dati. – bobs

+0

bob ha ragione ... questa soluzione funzionerà solo all'interno di un flusso di dati. – CTKeane

19

Il tuo problema è legato alle impostazioni dei tuoi vincoli di precedenza (le linee blu). È necessario indirizzare le impostazioni di Vincolo multiplo perché si hanno due vincoli di precedenza che portano a un'attività (S2).

La configurazione corrente indica che entrambi i percorsi A e E devono essere completati prima dell'avvio dell'attività S2. Poiché solo uno di questi percorsi verrà completato, SSIS si interromperà. È necessario apportare modifiche in modo che quando il percorso A o il percorso E sia completato, avviare l'attività S2.

Effettuare le seguenti operazioni per apportare la modifica. Fare clic con il tasto destro del mouse su uno dei due percorsi A o su E e selezionare Modifica. In Precedence Constraint Editor, in Vincoli multipli, selezionare "Logical OR. Un vincolo deve essere valutato su True". Fare clic su OK per chiudere la finestra di dialogo. I percorsi A ed E cambieranno in linee tratteggiate, che rappresentano la condizione OR appena definita.

+1

questo mi ha salvato da strapparmi i capelli. Grazie mille, la soluzione funziona come un fascino –

Problemi correlati