【问题标题】:SSIS Sequence Container will not failSSIS 序列容器不会失败
【发布时间】:2014-11-01 00:43:21
【问题描述】:

我正在使用 Visual Studio 2012。我创建了一个使用序列容器的 SSIS 解决方案。

SSIS 包的重点是这个。每个第 3 和第 5 个工作日我需要创建文件夹并将文件复制到其中。在第 3 个工作日,文件将复制到相应的第 3 个工作日文件夹中。第 5 个工作日也是如此。这些文件夹和文件位于名为 yyyymm 的父文件夹中,即 201411。两者的文件夹结构有点奇怪,但这超出了我的控制范围,不是问题。

我不知道如何计算工作日,所以我希望设计 SSIS 包以便单个 SSIS 包可以同时完成这两者的方法是使用成功/失败切换优先约束。

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

问题是任务按预期失败,但这会完全停止程序包。流程不会沿着失效约束继续并执行 Day5 功能。我已经尝试调整包、序列容器中的属性,并调整传播系统变量,正如我通过互联网搜索所看到的那样,但我无法让预期的流程正常工作。

可能有更好的方法来完成整个过程,我愿意接受建议,但这个查询的真正目的是弄清楚如何让序列容器作为一个整体失败并让包继续执行Day5 函数。

第三个工作日

第 5 个工作日

SSIS 包

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

回应下面的评论。我试图设置一个布尔约束,但这也不起作用。不知道我这样做是否正确。

【问题讨论】:

    标签: visual-studio-2012 ssis


    【解决方案1】:

    这样做的另一种方法是在包级别设置一个布尔变量,一旦第 3 天失败,这将设置为 False。在失败优先约束上,您将检查以查看此变量的值。如果变量的值为 FALSE(或 true),那么您可以继续使用 Day5 容器,否则忽略它。

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

    【讨论】:

    • 我尝试将布尔逻辑添加到约束并切换 AND/OR,但仍然无法让序列容器失败。
    • 添加脚本任务(在第 3 天容器之后)并将布尔变量显式设置为 False。我相信这两个之间的优先约束应该是失败。我将对此进行进一步调查,并在一段时间内回复您。同时,请尝试此解决方案。
    • 如果您可以添加一个有用的图像。我有点困惑什么去哪里了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多