【问题标题】:Is there a way to stop a conditional split after a certain date?有没有办法在某个日期之后停止条件拆分?
【发布时间】:2019-11-01 12:07:51
【问题描述】:

我有一个带有条件拆分的 SSIS 包,它基本上检查一个数字是否大于另一个数字。 该数字实际上是一个财务周期,但它以“yyyymm”格式存储为 int,例如“201911”

有条件的拆分将小于或等于当前财务期间的任何数据发送到我们的对帐软件中,并将大于或等于当前财务期的任何数据发送到保留表。

12 月 3 日之后,我们将不再需要检查这一点,因为所有数据都将发送到同一个地方。

我试图避免在当天更新包的需要,我想构建某种日期检查来更改条件拆分的工作方式

我考虑过结合我们当前的情况检查周期数是否大于或等于“201912”,但我们经常收到属于未来或过去周期的交易,然后会被错误地拆分。

我们目前的情况是;

intPeriodNo <= @[User_var::intBankPeriodNo]这将被加载到rec软件中 intPeriodNo > @[User_var::intBankPeriodNo]这将被加载到保持表中

intPeriodNo 来自源数据,intBankPeriodNo 来自我们的期间控制表。

我希望能够在 12 月 3 日停止条件拆分拆分数据,而不管期间编号如何,并强制将所有数据加载到记录软件中。

我在 SSIS 方面有一些经验,但数量不多,因此非常感谢任何帮助或想法。

【问题讨论】:

    标签: ssis conditional-split


    【解决方案1】:

    您可以编辑当前的两个条件以检查今天的日期作为条件的一部分。

    (GETDATE()>(DT_DBDATE)("2019-12-03")) || (intPeriodNo <= @[User_var::intBankPeriodNo])
    

    当前日期大于 2019-12-03 或当前条件 -> 选择此路径。

    然后,

    (GETDATE()<=(DT_DBDATE)("2019-12-03")) && intPeriodNo > @[User_var::intBankPeriodNo]
    

    当前日期小于或等于 2019-12-03 AND 当前条件 -> 选择此路径。

    2019-12-03 之后,所有行都将沿路径一,您可以随时返回并在空闲时编辑包。

    【讨论】:

      【解决方案2】:

      在 sql 任务中将类似的内容保存在变量中

      SELECT CONVERT(datetime,SUBSTRING('201911',1,4)+'-'+SUBSTRING('201911',5,2)+'-01',121)
      

      在条件拆分中,您可以使用它来管理您的流程

      getdate() < @[User_var::variable]
      

      【讨论】:

        猜你喜欢
        • 2022-01-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-15
        • 2012-02-17
        • 2017-04-16
        • 2020-02-29
        相关资源
        最近更新 更多