Precedence Constraint with EXPRESSION in SSIS 2008 R2



The control flow in a SSIS package defines the workflow for that package. Control flow determine the order in which tasks will run, it also determines under what conditions they are executed. In other words, certain tasks will run only when a set of defined conditions are met. These conditions in a workflow can be configured by using Precedence Constraints. Precedence constraints link the individual executables and determine how the workflow moves from one executable to the next.
More about Precedence Constraints:
A Constraint is a predefined conditional check in the package that can be used to link between control flow tasks. A task will only execute if the condition that is set by the precedence constraint preceding the task is met. By using these constraints, it is possible to ensure different execution paths depending on the success or failure of other tasks. This means that tasks with precedence constraints can be used to determine the workflow of an SSIS package

If the Constraint Evaluation operation is selected as Expression, then the expression option is enabled, where an expression can be supplied to control the workflow of the tasks in control flow.

In the above flow chart, Task2 will be executed only if the expression is executed successfully.

Now, to see the precedence constraints with expressions in action, follow the below steps.
1. Add two SQL tasks to control flow editor of your project as shown in the below figure.

2. Now for each task, set the valid database connections and write the SQL query that is to be executed for each task as shown in the below figure.  To set the database connections and to write SQL query, double click on Task rectangle, the the following window will be opened. Then click on “OK” button. Similarly set the database connection and write the valid SQL query for Task1 also.

3. Now, a small arrow will be appeared on Execute SQL Task, drag and drop this arrow mark from Execute SQL Task to Execute SQL Task 1. What this does is we are setting the workflow between these two tasks. Now to set the condition checks to determine upon what constraints these two tasks execute, the precedence constraints need to be set. When double clicked on the arrow line, the following window will appear. Set the constraint as well as the value for the constraint and click on “OK” button. Here I have given Valid Expresion DatePart(m,GetDate()) == 9.

4. The control flow pane can be as shown in the below. The fx denotes that the task2 will be executed only the expression is executed successfully.

5. The result can be shown in the below picture.

6. When the supplied expression is not executed successfully like Here I have given Valid Expresion DatePart(m,GetDate()) == 22 which is not valid, the task 2 will not be executed even though the task 1 is executes successfully.

This is it guys .. Hope you will try .. Thanks Kranthi for the document.

Roopesh Babu V