2013-06-11 67 views
2

我建立一个简单的集成服务项目,读取的CSV文件“待定”目录下,加载每一个到一个临时表,并将该文件移动到“已完成”或“失败”目录取决于它是否成功加载。 “完成”和“失败”目录的位置在项目参数中设置。SSIS文件系统任务失败,没有错误

的问题是,在“移动到失败目录”任务也永远不会执行,即使所有的任务,导致它成功执行。令人沮丧的是没有产生错误信息。我已经尝试在任务的事件处理程序上设置一个断点,但断点从来不会被打中。这就好像任务根本就没有(我已经检查过Disabled属性没有被无意地设置在任务上,但事实并非如此)。

这很奇怪,因为“移动已完成”任务工作正常,这两项任务是相同的保存他们写的目录。这两个目录都存在并具有相同的访问权限,但我想如果它是权限问题会有某种错误。

SSIS flow

在上面的图中,它是在不工作的右手侧的MoveToFailed任务。它可以通过多种方式达到 - 重复文件或未知文件或包含无效记录的文件。不管它如何被调用,任务都不会执行。

+0

你能抽出控制流的屏幕截图? – billinkc

+0

@billinkc:完成 –

+0

优秀。所以当这些不好的事情发生时,程序包是否以错误结束,或者它们是逻辑错误,因此程序包应该做些什么?我在GetValidInvalidRecordCount上看到这个表达式,这让我认为路径是一个逻辑错误。但是MarkInvalidFile和其他脚本任务看起来像只限于成功。 – billinkc

回答

1

您需要更改优先约束中MoveToFailed所以他们在“逻辑或”模式。
选择其中一个约束到该组件并单击鼠标右键,选择“编辑”有一个在底部的单选按钮标注为“逻辑或。一个约束必须评估为真'。

+0

MarkDuplicate正在成功完成,并且在先行约束上没有表达式。他们没有什么可以在这个约束上进行或。你有不同的看法吗? – billinkc

+0

您将它写入的方式在执行该任务之前必须为真,才能导入该任务的所有三个优先约束。如果你像我解释的那样改变它,那么当任何一个优先约束为真时,任务都会执行。 –

+0

是的,这是优先约束。我的一个菜鸟错误;我最熟悉的ETL/EAI工具会触发任何输入(OR)上的任务。 –

相关问题