我继承了一堆SSIS包。在其中一些软件包中,有一个连接管理器用于获取平面文件。这些平面文件每天从FTP下载并解压缩 - 然后在这些包中使用。这些包是通过SQL代理程序作业执行的,并且该作业当前正在成功。
现在我们有一个额外的平面文件,我们以前没有,我们希望它包含在内(我们只是将平面文件中的数据转储到SQL服务器表中)。因此,这个新的平面文件将被转储到一个新表中。文件和表格与已经使用的文件/表格完全相同 - 因此我已将所有内容设置为匹配。
问题是,当我手动运行时,我无法获取其中一个包,因为它说它无法找到连接管理器中引用的平面文件。奇怪的是我在连接管理器中看到了一个硬编码的特定平面文件。这些文件在文件名中包含一个简单的日期标记 - 所以...如果SQL作业仍然成功,并假设我正在查看的包与作业执行的版本相同(我是通过将实时包/导入导出到BIDS并进行比较来验证这一点)那么该包是如何引用不再存在的旧文件的呢? (部分sql作业也删除了旧文件 - 所以包不可能抓住旧文件。)
我唯一注意到的另一件事是包中的一个名为" SearchFileName" - 这是完全合理的,但我无法在包装中的任何地方看到它被使用。它可能是,但我无法找到。也许有一种特定的方法来寻找它?
总而言之 - 计划作业执行一个包 - 但是当我查看BIDS中的包时,会对包中正在使用的文件不再存在进行硬编码引用。我无法弄清楚这是如何工作的,我需要知道,以便我可以安排另一个包来从另一个更新的类似文件中提取。
以下是使用w / hardcoded filename的Varibale和Connection Manager的屏幕截图。