【问题标题】:SSIS 2012 - passing variables from parent to child packageSSIS 2012 - 将变量从父包传递到子包
【发布时间】:2014-08-04 16:39:39
【问题描述】:

我知道这个话题已经被讨论过很多次了,但是我有一个警告,我似乎无法找到答案。

我有几个包都有 ActivityDate 变量。默认情况下,包需要在昨天的日期运行。

有两种可能的情况。

场景 1 - 从主包调用包。在这种情况下,ActivityDate 在主包中设置一次,即昨天的日期,然后传递给子包。

场景 2 - 包独立运行。在这种情况下,每个子包中的 ActivityDate 都通过表达式设置为昨天的日期。

在 SQL 2008 中这非常简单 - 每个子包 vas 中的变量通过场景 1 的包配置设置,但在场景 2 中运行时使用表达式。

2012年我不清楚如何做到这一点。没有更多的包配置,所以我需要在子包中创建包参数,然后从父包链接到它。但是参数不使用表达式。因此,如果我在子包中创建 ActivityDate 参数,那么我可以从父包链接到它(对于场景 1),但我不能为它创建表达式(对于场景 2)。如果我只有 ActivityDate 变量,那么我可以创建一个表达式,但不能从父级链接到它。
那么我如何让这两种情况在 2012 年发挥作用呢?

请帮忙!

【问题讨论】:

  • 如果总是设置为昨天,你可以简单地在每个包中设置它,而不用担心它通过。
  • 我认为除了昨天之外,您还希望灵活地做事,否则@GoatCO 是绝对正确的。
  • Kyle,你是对的,我当然希望灵活地在任何其他日期运行它。

标签: sql ssis ssis-2012


【解决方案1】:

首先,参数绑定可以使用表达式:

  1. 创建一个变量@User::Variable 来保存您要传递给子包的值。
  2. 将@User::Variable 绑定到您的子参数。

其次,您拥有执行相同基本功能的环境变量,而不是包配置,在运行时动态设置参数值。基本设置是:

  1. 定义一个项目参数并在你的包中使用它。
  2. 在IS服务器上,定义环境,设置环境变量。
  3. 部署您的项目并将环境变量绑定到您的项目参数。
  4. 使用特定环境参考执行包。

无论如何,您要完成什么并不完全清楚 - 默认情况下使用父活动日期,但允许使用参数覆盖它?或者如果你独立于父包调用子包,仍然提供昨天的值?

所以,我认为这完成了你想要的:

  1. 在 Master Package User::ActivityDate 中创建变量。直接或使用表达式设置其值。
  2. 在 Master Package User::RunningFromMaster 中创建第二个变量。设置为布尔类型并将默认设置为 True。
  3. 在子包中创建参数 $Parameter::MasterActivityDate 绑定到执行包任务中的 User::ActivityDate。
  4. 在子包中创建参数 $Parameter::RunningFromMaster 绑定到执行包任务中的 User::RunningFromMaster。设置为布尔类型,默认为 False。
  5. 在子包用户::ChildActivityDate 中创建变量。
  6. 将 User::ChildActivityDate 的 Expression 属性设置为 (@[$Parameter::RunningFromMaster] ? @$Parameter::MasterActivityDate : DATEADD("d",-1, GETDATE() ) )
  7. 在您的包中使用 User::ChildActivityDate。

当您从 master 运行时,User::ChildActivityDate 只会采用传入 MasterActivityDate 参数的任何值。当您的子包独立运行时,它只会使用表达式来拉取昨天的日期(请随意修改表达式以满足您的特定需求。)

另外,如果有人问起,我使用了布尔值,因为 DateTime 参数始终默认为 GETDATE(),因此您必须构建复杂的条件来确定它们是否已设置。

【讨论】:

  • Kyle,是的,这正是我想要做的——默认情况下使用父活动日期,但如果子包独立运行,则可以覆盖它。您的解决方案完美地实现了这一点,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 2012-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多