views:

38

answers:

2

Hi,

please see the figure to get idea of the scenario.

alt text

Now when my Package will run after executing the s! task, either A or B path will be followed. So If A is followed then Task S2 and F2 is executed. But if path B is followed, task F1 and F3 is executed. But also after completing task F3, the flow should go to task S2 via path E. But this doesn't happen and as the task F3 is completed, the package ends with success.

I need help on this on how to move to path E and execute task S2 and F2 after task F3 completion.

Thanks.

A: 

My guess is that F3 is a non-blocking transform. So you need to insert either a Semi or Fully Blocking transform to force SSIS to wait until F3 and S1 to execute S2.

There is a good list here and a better explanation of how transforms block one another. But I'd probably use a Union All with both F3 and S1 as predecessors and S2 as the successor.

CTKeane
I think the OP is referring to the Control Flow and not Data Flow. This solution addresses the transformation components in a Data Flow task.
bobs
bobs is right...this solution will only work inside a data flow.
CTKeane
+1  A: 

Your problem is related to settings in your Precedence Constraints (the blue lines). You need to address Multiple Constraint settings because you have two Precedence Constraints leading to one task (S2).

Your current configuration shows that both paths A and E must complete before Task S2 will start. Since only one of these paths will complete, SSIS stops. You need to make changes so that when either path A or path E completes, start task S2.

Do the following to make the change. Right-click on either path A or path E and select Edit. In the Precedence Constraint Editor, under Multiple constraints, select "Logical OR. One constraint must evaluate to True". Click OK to close the dialog. Paths A and E will change to dotted lines, which represents the OR condition you just defined.

bobs