我有一个由许多包组成的 SSIS 项目,包括一个 Main_Flow 包,它以所需的顺序执行其他包。
第一个被调用的包Main_Flow
是Extract_Archive
一个用于查找压缩文件的 ForEach 容器。如果存在一个或多个 zip 文件,它会将它们提取到一个位置并将变量标记ArchiveFileFound
为 TRUE。
ArchiveFileFound
现在回到 Main-Flow 包,我希望仅当fromExtract_Archive
设置为 TRUE 时才执行下一步。但是,该变量仅存在于Extract_Archive
. 我一直在寻找有关如何将变量从一个 SSIS 包传递到另一个包的信息,但我找不到一个很好的实用且推荐的示例。有什么想法吗?
这可以使用子包中的脚本任务来完成,以根据子包中变量的值更新父包中的变量,假设访问的变量在父包和父包中都没有相同的名称子包。虽然父包中的变量不会显示在
ReadWriteVariables
脚本任务的字段中,但如果您在此处输入它们,则可以访问它们。更新父包中的变量将遵循与相同包中的变量相同的语法,C# 示例对此进行了详细说明。这是我创建的解决方案,我使用了与 userfl89 相同的逻辑,因此我在 Master 包上创建了一个名为 vErrorPropagation 的变量,并在 SSIS 的错误处理程序中创建了一个脚本任务,用于测试该变量是否设置为 true。下面的屏幕截图