3

我有一个计划每天导出数据的 SSIS 包。我有一些任务只想在每月的第一天执行。重要的是跳过这些任务,如果不是第一天,包继续执行。

经过一番搜索,我找到了许多解决此问题的参考资料,使用以下博客文章中发布的方法:http: //bi-polar23.blogspot.com/2007/05/conditional-task-execution。 html

但是,我认为有一个更简单的解决方案。为什么我不能在每个月的第一天任务中添加一个表达式来检查当月的日期并相应地在任务上设置“已禁用”属性?

使用表达式和禁用任务似乎比在每个任务之前添加一个虚拟脚本要简单得多。其他人是否看到或知道我解决此问题的方法存在问题?初步测试似乎有效,但是,我发现 SSIS 很挑剔。如果将来可能会引起问题,我宁愿不做“非常规”的事情。

感谢您的任何想法。

4

1 回答 1

8

我认为unconventional设置表达式以在有条件的基础上禁用任务没有任何意义。我在我开发的包中做了同样的事情。我宁愿直接在Disable任务的属性上设置条件 usingExpressions而不是 using Script Task。请参阅屏幕截图# 1。换句话说,我同意你的做法。

这种方法的一个注意事项是,下一个查看包的人可能不知道为什么特定任务没有在给定日期执行(在您的情况下是一个月的第一天)。为了防止这种情况,您可以添加一个Annotation声明,说明该任务的属性Expression上有一个集合。Disable

我建议的另一件事是计算月份的第一天值并将其存储在属性EvaluateAsExpression设置为true的变量中,并在给定任务的表达式中使用此变量来禁用\启用它。这将阻止计算每个任务表达式中的值。屏幕截图# 1显示该Disable属性设置为假定存储在变量中的值IsFirstDayOfMonth。可以设置此变量上的表达式来计算当月的第一天。

希望有帮助。

截图#1:

1

于 2011-06-01T19:55:12.287 回答