SSIS提供了许多解决数据获取和集成问题的任务,但它缺少的一项任务是通过HTTP下载文件的“HTTP任务”。
要解决此问题,我安装了Wget,并使用执行包任务从SSIS运行它。
Wget位于我的系统路径上,因此我可以在任何目录中运行程序时从命令提示符输入“wget”。但SSIS抱怨“文件/进程'wget'不在路径上”:
我已将流程属性RerquireFullFileName设置为False以阻止此投诉导致错误:
除了在开始时发出警告外,程序包还按预期运行。它调用wget并下载我告诉它的文件。但是,如何阻止SSIS抱怨wget不在路径上?
编辑:按照Siva的建议,将Execute Process任务的DelayValidation属性设置为True并不能解决问题。它只是阻止SSIS在设计时抱怨。通过延迟验证,在运行时,我在调试输出窗口中看到了这一点:
SSIS package "Extract.dtsx" starting.
Warning: 0xC0029154 at Download Locations Dump, Execute Process Task: File/Process "wget" is not in path.
SSIS package "Extract.dtsx" finished: Success.
答案 0 :(得分:4)
发生警告是因为打包在设计时试图验证可执行文件的位置。您可以通过将Execute Process task
的属性延迟验证从 False 更改为 True ,将此验证推迟到运行时间。
分步流程:
在SSIS包中,我已将Execute Process Task
配置为使用工具 Wget 。参考屏幕截图# 1 。
屏幕截图# 2 警告消息类似于问题中显示的屏幕截图。
右键点击执行流程任务和选定的属性,如屏幕截图# 3 所示。
在属性窗口中,将DelayValidation属性值从False更改为True。
屏幕截图# 5 表示不再显示警告。
修改强>
要完全取消警告,即使在运行时,您也可以执行以下操作:
创建一个变量来存储 wget.exe 的完整路径。使用wget.exe的完整路径填充变量。您的方案中的值可能会有所不同。请参阅屏幕截图# 6 。
双击“执行进程”任务。在任务的“表达式”部分,单击省略号按钮。请参阅屏幕截图# 7 。
在属性表达式编辑器上,将可执行文件属性值设置为新创建的变量@[USer::WgetPath]
。请参阅屏幕截图# 8 。
希望有所帮助。
屏幕截图#1:
屏幕截图#2:
屏幕截图#3:
屏幕截图#4:
屏幕截图#5:
屏幕截图#6:
屏幕截图#7:
屏幕截图#8:
答案 1 :(得分:0)
转到“执行流程任务”的“属性”,然后将RequireFullFileName属性设置为false。您可以通过以下方式访问属性:单击任务,然后按F4键;或者右键单击任务,然后从上下文菜单中单击属性。
此解决方案已在带有SSDT的VS 2017中经过测试。您将看到一个黄色标志警告,但程序包将运行该命令。
答案 2 :(得分:0)
请注意,Visual Studio在启动时会加载PATH环境变量。这意味着,如果您打开项目,安装一些东西(向PATH添加一个新值),然后尝试使用刚刚安装的可执行文件,即使它确实存在于目录中,它也会给您“文件/进程不在路径中”警告。路径。只需关闭VS,重新加载项目,警告就会消失。