SSIS foreach 循环,根据处理过程中的任何错误将每个文件移动到文件夹 Done 或 Error

SSIS foreach loop, move each file to folder Done or Error based on any errors during processing

我正在处理一个 Integration Services 项目,它每天会处理一些文件,处理它们并将它们移动到 Done 文件夹或 Error 文件夹,具体取决于在处理文件时是否有错误。

我以前很少使用 SSIS,只处理简单的数据流,但我已经设法遍历所有文件并使用 this answer 处理它们。我添加了一个 File System Task,它根据 DestinationFullPath 变量将文件移动到 Done 文件夹。这一切正常,当没有任何错误时,所有文件都会被处理并移动到 Done 文件夹。

但是,当一个文件中出现错误时(例如缺少列、存储到数据库时出错、找不到 patientid 等),整个流程将停止。

我想要的是,在处理一个文件后,它应该捕获任何错误并将文件移动到 "Done" 文件夹或 "Error" 文件夹,然后继续处理下一个文件.

这样的事情可能吗,如果可能的话怎么办?我已经尝试更改 DestinationFullPath 变量并将其设置为错误文件夹,但它仍然会引发错误并停止其他文件的流动。 此外,Data Flow Task "Handle next CSV file"(在 Foreach 循环容器内)没有红色错误输出箭头,对吗?我能以某种方式添加它吗?

解决方法很少: 1. 创建另一个控制流任务 例如:移动错误文件并将绿色先例从处理下一个 CSV 文件连接到新组件,右键单击约束并单击失败(红色约束) 2.Handle 利用数据流组件的错误 属性 数据流任务中的错误,请确保将数据流组件上的延迟验证保持为 True,这样它就不会在启动时失败。