SSIS序列容器:设置文件不存在时的条件参数

SSIS序列容器:设置文件不存在时的条件参数,ssis,Ssis,我希望有人能就我在SSIS序列容器方面遇到的问题提供另外两种观点。我对序列容器比较陌生,它们正在完成需要做的事情,但情况是这样的:假设我有三个序列容器,它们都处理文件。容器A、B和C。容器A将始终进行处理,因为它将解压文件,但容器B可能不会根据文件是否存在执行操作,容器C也是如此。所有容器都包含其他工作正常的任务。我曾尝试通过使用表达式计算文件名来在容器之间使用约束,但这似乎不起作用。我不确定答案是否是将脚本任务放在序列容器中的数据流任务中,查看文件名,然后说,如果文件存在,处理它,如果没有,继

我希望有人能就我在SSIS序列容器方面遇到的问题提供另外两种观点。我对序列容器比较陌生,它们正在完成需要做的事情,但情况是这样的:假设我有三个序列容器,它们都处理文件。容器A、B和C。容器A将始终进行处理,因为它将解压文件,但容器B可能不会根据文件是否存在执行操作,容器C也是如此。所有容器都包含其他工作正常的任务。我曾尝试通过使用表达式计算文件名来在容器之间使用约束,但这似乎不起作用。我不确定答案是否是将脚本任务放在序列容器中的数据流任务中,查看文件名,然后说,如果文件存在,处理它,如果没有,继续


任何帮助都将不胜感激。非常感谢。

如果我理解你的问题。序列容器A始终运行,因为它正在查找下游容器所依赖的.zip文件。如果父项不满足某些条件(找到要解压缩的存档),则需要禁用依赖项

最快/无代码的方法是将两个序列容器包装在一个Foreach循环容器中。这将触发,找不到要处理的文件,并且永远不会调用内部容器

脚本任务是一个控制流元素,它很好,可以启用/禁用容器,也可以启用/禁用优先级约束

根据您的业务需要,任何一种都可能是正确的方法

基于下面的评论,我可能会这样设计我的包。序列容器封装了数据可用时需要发生的所有事情。序列容器很容易检查我的文件是否存在。这确实假设一个简单的文件存在性检查就足够了。如果需要文件A和Z,那么脚本任务将更容易

ForEach循环容器的配置。我通常使用枚举器部分下的表达式(并基于变量而不是显示的硬编码值进行赋值),因为这使我具有最大的灵活性


我遇到的问题是zip文件中的文件。我在任何时候都可能有四到五个文件。假设文件是A、B、C、D和E。如果文件A不存在,则服务文件A内容的序列容器不必执行,因此它可以移动到下一个序列容器,依此类推。这是一个串行过程,因为根据客户当天的数据,我可能没有所有可用的文件。其他任务取决于zip文件的内容,zip文件是具有标准化名称的CSV文件。我更新了我的答案,并给出了一张图片,说明了我将如何以最少的工作量布局数据流。谢谢您提供的示例。截图帮助很大。目前我正在研究的唯一一个部分是获取表达式,以说明文件是否存在于FELC中。我是要计算集合表达式中的文件名,还是仅计算表达式选择?用另一个屏幕截图更新。简短的是枚举器下的表达式(上半部分)将覆盖枚举器配置部分(下半部分)中的值。感谢您的帮助。屏幕截图真的很有帮助,我想我现在可以为其中一个容器正常工作了。其余的我明天来处理。我真的很感谢你的帖子和帮助。