1

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

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

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

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

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

我们目前的情况是;

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

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

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

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

4

2 回答 2

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

于 2019-11-01T15:05:38.283 回答
0

在 sql 任务中将这样的内容保存在变量中

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

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

getdate() < @[User_var::variable]
于 2019-11-01T14:48:52.813 回答