Loki70
Loki70

Reputation: 623

Passing a variable value from Control Flow to Data Flow in SSIS

I have a fairly straightforward SSIS package where I can't sucessfully pass the value of a package-scoped variable from the Control Flow to a Data Flow task. Consider the below diagram:

Control Flow

The Execute SQL task gets values from a list of "machines". This is used to control a ForEach Loop Container, which works very well. Next a script task performs some math and assigns a single number to a package scoped variable (integer type). I have added message boxes that pop up during the loop so that I can verify that the value of this variable is being set properly.

The last icon is a data flow where I want to use the variable value. I have a simple script task that contains just a message box showing me the current value of this same variable. Every time, the variable is the value that I initially set in the designer (BIDS). Therefore, the value is not being "passed" to the data flow. I have verified multiple times that the names of the variables are correct (including case sensitive values).

This should be pretty simple, and I am getting frustrated with this issue. I would greatly appreciate and suggestions or comments. Thank you!

Upvotes: 2

Views: 7246

Answers (1)

Jim
Jim

Reputation: 3510

How are you setting the package variable from your script task? It should look like this (c#):

DTS.Variables["testVariable"].Value = "some value";

Then to test it from the script component in your dataflow task:

public override void PostExecute()
{
    base.PostExecute();

    MessageBox.Show(Variables.testVariable, "test");
}

I did this in a test package and it worked fine.

EDIT

Also make sure that you added the variable to the ReadWriteVariables section of the properties for the script tasks.

Upvotes: 2

Related Questions