有没有办法在特定日期后停止有条件的拆分?

Is there a way to stop a conditional split after a certain date?

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

有条件的拆分将小于或等于当前财务周期的任何内容发送到我们的对账软件中,将大于的任何内容发送到控股 table。

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

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

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

我们目前的情况是;

intPeriodNo <= @[User_var::intBankPeriodNo]这个会被加载到rec软件中 intPeriodNo > @[User_var::intBankPeriodNo] 这将被加载到馆藏中 table

intPeriodNo 来自源数据,intBankPeriodNo 来自我们的周期控制 table.

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

我有一些使用 SSIS 的经验,但不是很多,所以非常感谢任何帮助或想法。

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

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

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

getdate() < @[User_var::variable]

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

(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 之后,所有行都将沿路径一走,您可以随时返回并在有空时随意编辑包。