Greetings,
I have a question about the best method to ensure the proper flow of control within a package. I have three related SQL tasks 每 A, B, and C 每 that must execute in sequence. If any one of the tasks fails then the remaining tasks should not execute because each is dependent on the previous step. (A ※success§ precendence constraint.)
Likewise, I have a second set of SQL tasks 每 1, 2, and 3 每 that must execute in sequence. Task 3 should never execute unless tasks 1 and 2 have been successful.
I consider these to be two independent logic paths in the same package and, indeed, when I run the package both task A and task 1 begin running at the same time.
What I*m not sure of is how to add a new task 每 Z 每 that will execute only after both the A-B-C and 1-2-3 task paths have completed. Diagramatically, this would be like having a ※completion§ constraint linking task C to task Z and another ※completion ※ constraint linking task 3 to task Z. In other words, the two independent paths merge at task Z. Task Z is an audit step that must always run 每 it emails summaries of the database activities performed by the other tasks.
What has me puzzled is how I get to Z when there is a failure in either the A-B-C path or the 1-2-3 path. As things stand now, the package will never reach task Z if there is a failure in an earlier task because they are joined by a ※success§ constraint.
I thought I could get around this by using a ※sequence container§ but I discovered when I added A, B, and C to a container that I couldn*t use the ※success§ constraint I needed. I was just guessing that this might be the way to do it.
Can anyone help me with a best practice approach to the control flow issue I face I*m new if that isn*t apparent by my question, so don*t be afraid to make your answer simple and plain.
Thanks for any help,
BCB