【问题标题】:How to make the SSIS package status to failure when propagate was set to false for a Sequence container当序列容器的传播设置为 false 时,如何使 SSIS 包状态失败
【发布时间】:2021-08-12 13:07:35
【问题描述】:

我有一个带有 for each loop > 序列容器的 SSIS 包。序列容器正在尝试从 For each 循环中读取文件并处理其数据。要求是在处理文件时发生任何异常时不要使整个包失败,而是继续处理下一个文件,直到从 for each 循环中处理完所有文件。为此,我将序列容器的 Propagate 变量设置为 False。我还在序列容器的 On Error 事件中添加了电子邮件步骤。该包按预期运行,即使任何文件发生任何异常,也能够处理所有文件。但我希望我的 SSIS 包的状态最终失败,因为其中一个文件失败了。我怎样才能做到这一点?

【问题讨论】:

  • 请展示您的解决方案,然后简短地重复您要更改的内容。谢谢!
  • 抱歉,我无法分享解决方案。我已将序列容器传播变量设置为 false,以允许处理每个循环容器中的所有文件。但是如果序列容器内的任何文件处理失败,我想最终将包状态设置为失败。

标签: error-handling ssis foreach-loop-container


【解决方案1】:

您尝试过这个选项吗? (左侧是俄语的 SSIS 版本,但它是序列容器)

查看 -> 属性窗口 -> 然后单击您的序列容器,它将显示序列容器的其他属性。

如果我是你首先我会尝试属性“FailPackageOnFailture” - 如果我做对了它应该涵盖你的问题。

附:当您单击项目中的空闲位置时,您还可以查看项目的全部属性

已更新(在 cmets 和更清晰的理解任务之后): 这个想法是 - 将 SQ 的这个参数 Maximum ErrorCount 设置为你想要的最大值 - 在这种情况下,它不会停止包,因为其中 1 个文件在 SQ 中失败并且下一个文件将处理,但它应该在 SQ 完成后停止包工作,因为您没有更改包的 MaximumErrorCount。 重要 - 零值将错误计数阈值设置为无穷大,并且包或任务永远不会失败

【讨论】:

  • @user3044602 如果对你有帮助,请告诉我
  • 我已经尝试过这个选项。这将停止包的执行,并且无法处理 for each 循环中的下一个文件,这将违背我的目的。
  • @user3044602 然后尝试使用Maximum ErrorCount(仅适用于SQ)-设置99,保存项目并运行它
  • 这个想法是 - 将此参数设置为你想要的最大值 - 在这种情况下,它不会停止包并且下一个文件将处理,但它应该在 SQ 完成他的工作之后停止包,因为你没有' t 更改包的 MaximumErrorCount
  • 如果我没记错最后一个
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-16
相关资源
最近更新 更多