0

在我的场景中,更新从子级传递给父级的表值。
我正在使用 EPT(执行包任务)来调用子包,并且子包中的变量值之一将在父包中更新。所以我正在使用父包配置,但父包级别中没有填充值。

在我的情况下,在子包级别和父包级别中,变量名称应该相同。

请在这种情况下帮助我。

问候,拉维。

4

3 回答 3

2

不要在 child 和 master pacakge 中创建变量,而是在 child 中使用 master 包变量作为读取变量并将值分配给该变量。然后在执行孩子后回到主人那里,变量用子值更新。我试过了,成功了。

谢谢拉维库玛

于 2013-03-20T06:36:50.760 回答
2

我们只能在运行时将子变量值分配给父变量。由于父包充当子包的容器,因此可以访问父变量,但只能在运行时访问。

这可以使用子包中的脚本任务来实现。

以下是步骤:-

1-在父包中创建一个变量。2- 在子包中创建一个子变量。3- 在子包中打开脚本任务。4-将 ReadOnlyVariables 变量选项指定为子变量。5 将 ReadWriteVariables 变量选项指定为父变量。

(** 注意:- 父变量在 ReadWriteVariables 变量选项中不可用,但不用担心只需手动给出名称示例:- “User::ParentVariable”

“这是可行的,因为脚本任务在设计时不会验证在其 ReadOnlyVariables 和 ReadWriteVariables 属性中声明的变量名称。” )

6-编辑脚本任务并使用以下代码将子变量值分配给父变量。

 public void Main()

{
  Dts.Variables["Parentvariable"].Value=Dts.Variables["Childvariable"].Value.ToString();

}

希望它有所帮助......谢谢:) !!!

于 2014-07-31T08:04:00.213 回答
0

我相信使用父包配置在子包中设置变量就像通过值而不是通过引用将变量传递给函数。换句话说,您在执行时将子变量的值设置为父包中变量的值。由于这两个项目是单独的可执行文件,因此变量的范围不能(至少到 2008 年)从子级传递给父级。您将需要查看将数据存储在其他位置(也许将其存储到表中)并在控件返回父包后从该位置检索它。我相信你在 2012 年可能有更高级别的范围变量,但我还没有将任何包移动到那个级别,所以我不得不推迟到那些可能使用过 2012 年的人。

于 2012-09-21T13:05:51.263 回答