SSIS序列容器不会失败

时间:2014-10-31 15:40:17

标签: visual-studio-2012 ssis

我正在使用Visual Studio 2012.我创建了一个使用Sequence Containers的SSIS解决方案。

SSIS包的重点是这一点。每隔3和5个工作日,我需要创建文件夹并将文件复制到其中。在第3个工作日,文件将复制到相应的第3个工作日文件夹。同样在第5个工作日。这些文件夹和文件存放在一个名为yyyymm的父文件夹中,即201411.两者的文件夹结构有点奇怪,但这是我无法控制的,而不是问题。

我无法弄清楚如何计算工作日,所以我希望设计SSIS包以便单个SSIS包可以完成两者的方式是使用Success / Failure切换优先约束。

我设计了流程,以便第一次运行包时,它会创建Day3文件夹,然后复制文件。第二次运行day3包时会注意到Day3文件夹已经创建并失败。那是失败的意图。我希望包的失败影响父序列容器,并且序列容器完全失败。在此故障之后,我希望程序包继续沿着故障约束,创建Day5文件夹并复制这些文件。

问题是任务失败了,但这会完全停止包。流程不会沿着故障约束继续并执行Day5功能。我已经尝试调整包中的属性,序列容器以及调整传播系统变量,正如我通过互联网搜索建议的那样,但我无法使预期的流程起作用。

可能有更好的方法来完成整个过程,我对建议持开放态度,但这个查询的真正目的是弄清楚如何让Sequence容器整体失败并让包继续执行Day5的功能。

第3个工作日 Third

第五个工作日 5th

SSIS包 enter image description here

期望的结果。如果子包在其中失败,则序列容器将失败。 SSISFAIL

回应以下评论。我试图设置一个布尔约束,但这也不起作用。不确定我是否正确这样做了。 Boolean

1 个答案:

答案 0 :(得分:0)

执行此操作的替代方法是在Package级别设置一个布尔变量,一旦Day3失败,就会将其设置为False。在Failure precedence约束中,您将检查以查看此变量的值。如果变量的值为FALSE(或true),则可以继续使用Day5容器,否则忽略它。

我想到的另一件事是,您可以在第3天容器之后切换优先约束的AND / OR。只是想检查一下,看看是否会改变行为。