我不想使用包配置将变量从Parent传递到子包。我更喜欢从父包中的C#脚本任务将变量传递给child。可以这样做吗?这是我希望做的伪代码 -
//code in script task of parent package
Main(){
Object parentObj = SSIS.ParentPackage.myObject;
String parentStr = SSIS.ParentPackage.myString;
callChildPackage(parentObj, parentStr);
}
答案 0 :(得分:0)
此答案是从MS论坛复制的。现在,谷歌是你的朋友。
您有四种选择:
使用父子变量配置
将值放在父包中的变量中,当使用“执行包任务”运行时,可以从子包中引用该变量。 (http://agilebi.com/jwelch/2009/10/03/passing-an-object-from-a-parent-package-to-a-child)
从C#脚本任务中接管完全执行包的子包的执行。
使用类似Task Factory Advanced Execute Package的任务。 (完全披露:我为实用工作工作)
第3项可能最接近你想要的。您需要使用Package.Execute方法自行运行子包。这样做的好处是可以在执行包之前显式设置子包变量。
John Welch | www.pragmaticworks.com | www.agilebi.com | ssisUnit.codeplex.com