通过C#脚本任务将变量传递给子节点?

时间:2013-12-19 01:33:49

标签: c# .net ssis etl

我不想使用包配置将变量从Parent传递到子包。我更喜欢从父包中的C#脚本任务将变量传递给child。可以这样做吗?这是我希望做的伪代码 -

//code in script task of parent package

Main(){

Object parentObj = SSIS.ParentPackage.myObject;

String parentStr =  SSIS.ParentPackage.myString;

callChildPackage(parentObj, parentStr);

}

1 个答案:

答案 0 :(得分:0)

此答案是从MS论坛复制的。现在,谷歌是你的朋友。

您有四种选择:

  1. 使用父子变量配置

  2. 将值放在父包中的变量中,当使用“执行包任务”运行时,可以从子包中引用该变量。 (http://agilebi.com/jwelch/2009/10/03/passing-an-object-from-a-parent-package-to-a-child

  3. 从C#脚本任务中接管完全执行包的子包的执行。

  4. 使用类似Task Factory Advanced Execute Package的任务。 (完全披露:我为实用工作工作)

  5. 第3项可能最接近你想要的。您需要使用Package.Execute方法自行运行子包。这样做的好处是可以在执行包之前显式设置子包变量。

    John Welch | www.pragmaticworks.com | www.agilebi.com | ssisUnit.codeplex.com

    链接 - http://social.msdn.microsoft.com/Forums/sqlserver/en-US/450ec296-71bb-4170-a71c-a4e3bf453bab/pass-variables-to-child-via-c-script-task-?forum=sqlintegrationservices#450ec296-71bb-4170-a71c-a4e3bf453bab