Cha*_*adD 12 ssis visual-studio-2005 bids
我有一个包含Process Task的SSIS包.流程任务需要执行批处理文件.批处理文件的位置因环境(开发,生产)而异.
如何动态设置Process Task对象的Executable属性值为用户变量?


小智 22
我认为你需要创建一个变量,它接受文件夹路径和可执行文件名作为表达式进行评估.然后,您需要将此变量作为表达式赋值给.的Executable属性Execute Process Task.此外,您需要在设计期间拥有有效的可执行路径.
这是一个粗略的分步示例,说明如何将变量传递给Execute Process Task的Executable属性.该示例是使用SSIS 2008 R2创建的,并且还使用三个.bat文件来说明功能.尽管该示例位于SSIS 2008 R2中,但该逻辑应适用于SSIS 2005.
创建三个.bat文件,即Process_0.bat,Process_1.bat和Process_2.bat.请参阅截图#1.使用echo命令填充它们,如屏幕截图#2 - #4所示.
创建一个SSIS包.我在开头的YYYYMMDD_hhmm格式中命名了包,然后是SO代表Stack Overflow,后面是SO问题ID,最后是描述.这对我来说很容易在以后再提到.参见截图#5.
创建以下变量:参见屏幕截图#6.
ExecutableFileName - 此变量的类型为string.它将包含可执行文件名.
ExecutableFolder - 此变量的类型为string.它将包含可执行文件'文件夹路径.
ExecutableFilePath - 此变量的类型为string.不要键入此变量的任何值.这将是一个表达式,它结合了变量ExecutableFolder和ExecutableFileName来生成完整的文件路径.参见截屏#7.选择变量,然后按F4打开属性窗口.将EvaluateAsExpression True设置为并将Expression设置为@[User::ExecutableFolder] + @[User::ExecutableFileName]
ExecutableOutput - 此变量的类型为string.它将存储可执行文件的输出值.在这种情况下,.bat文件回显的值.
在包的控制流路径上,放置执行流程任务和脚本任务,如屏幕截图#8所示.
配置执行流程任务,如屏幕截图#9 - #11所示.在Task的Process部分,您需要为初始配置指定可执行路径.另外,指定StandardOutputVariable(这是针对此示例).在表达式部分,通过指定变量@ [User :: ExecutablePath]来覆盖可执行路径
在脚本任务中,替换Main方法,如屏幕截图#12 - #13所示.
执行包.您应该获得输出,如屏幕截图#14所示.它显示了.bat文件Process_0.bat与输出一起执行"Process 0".
现在,将变量ExecutableFileName的值更改为Process_1.bat.不要做任何其他更改.执行包.您应该获得输出,如屏幕截图#15 - #16所示.它显示了.bat文件Process_1.bat与输出一起执行"Process 1".
现在,将变量ExecutableFileName的值更改为Process_2.bat.不要做任何其他更改.执行包.您应该获得输出,如屏幕截图#17 - #18所示.它显示了.bat文件Process_2.bat与输出一起执行"Process 2".
希望有所帮助.
截图:
#1:

#2:

#3:

#4:

#5:

#6:

#7:

#8:

#9:

#10:

#11:

#12:

#13:

#14:

#15:

#16:

#17:

#18:

| 归档时间: |
|
| 查看次数: |
30875 次 |
| 最近记录: |