虚拟 SSIS 任务是个好主意吗

Is a dummy SSIS task a good idea

几个月前我开始了一份新工作,我注意到一些旧的 SSIS 包是用虚拟任务构建的。例如,如果有一个 Execute SQL Task 并且它产生一个 Boolean 结果,True 结果可能会转到需要完成某事的任务。但是,还有一个 False 的虚拟任务,它什么也不做,并被标记为这样。

这是我所看到的示例。

这是对这些类型的任务进行编码的最佳实践或正确方法吗?我编写这些类型任务的方法是只编写所需的任务而忽略其他任务。在我的图像示例中,我会编写 True 代码,但不会为 False 添加任务。

只是好奇我是否做错了什么。

为什么要添加一个什么都不做的虚拟任务?

(1) 通知开发人员

如果目标是通知开发人员编辑包那么你可以在 True 优先约束旁边写一个 annotation,并且写如果 False result is not considered or does or does nothing

(2) 用于调试目的

如果添加虚拟任务是用于调试目的,那么这不是一个坏主意。因为它会让浏览者的包裹流程更加清晰。但是在生产服务器上部署包之前,您必须禁用此组件。

(3) 应用表达式

如果目标是在优先约束中应用表达式,就像评论中提到的那样,那么正确的方法是使用Expression Task (如果它连接到虚拟任务)

也基于此Microsoft article

A precedence constraint can use an expression to define the constraint between two executables

所以如果需要表达式,那么将它写在True优先约束中,或者如果需要表达式来为变量赋值,那么就像我提到的以上使用表达式任务

在一行标准实践中,如果某些事情没有按照所需的逻辑进行,则创建日志。应该记录它以供将来调试。

如果您期望某些布尔逻辑结果为真,但事实证明它为假,那么应该有一些结构来记录它。

现在开始使用虚拟任务,这没有什么坏处,但应该使用一些可以创建一些日志以供将来参考的任务。