我有一个 SSIS 2019 包,它会在将文件放入文件夹后立即导入 Excel,然后将 Excel 文件移动到另一个文件夹(代理将每 30 分钟运行一次)。一开始我有一个脚本任务,它测试文件是否在预期的文件夹中,如果为真,则控制流转到数据流任务,如果不是,则它无处可去(过程在那里结束)。在测试包时,只要在我打开包或对包执行任何操作时文件位于预期的文件夹中,它就可以正常工作。在我第二次运行包的测试中,在文件被移动后,控制流不会通过脚本任务,但我从数据流中得到一个错误,因为在文件夹中有一个新的空文件与预期文件名但不正确的工作表已自动创建。我不知道是什么任务导致了这种情况,或者 excel 文件连接管理器是否在执行包时执行了此操作。如果文件不在文件夹中,它甚至会在我打开包时立即执行此操作。我该如何阻止这个?我根本不希望它创建一个空的 excel 文件。如果该文件不在指定的文件夹中,我希望它什么也不做。
这是一个完整的事件序列:
- 脚本任务检查文件是否在文件夹中 - 否:不执行任何操作
- 是 - 执行 SQL 任务删除目标表一中的记录
- 然后进入数据流 a.Excel 数据源进入数据转换任务 b.然后数据进入 OLE DB 源(目标表一)
- 存在数据流 - 出错时发送电子邮件
- 然后执行 - On Error 发送电子邮件的 SQL 任务 删除目标表二中的记录 b. 将记录插入到没有空部件号的目标表二中 c.将记录插入到日志历史表中
- 然后执行文件系统任务,将 Excel 文件从 IMBOX 文件夹移动到 OUTBOX 文件夹 – 出错时发送电子邮件 – 成功时发送电子邮件