SSIS——根据员工情况给员工发送不同的邮件

SSIS - send different emails to employees depending on employee situation

我对 SSIS 还很陌生。

我有一个非常复杂的 SQL 查询(我不想复制和维护 3 次),其结果是一个包含 2 列的 table: 电子邮件地址,formLetterNumber

我想做的是

for each row returned:
    if formLetterNumber == 1
           send form letter #1 to that emailAddress
    if formLetterNumber == 2
           send form letter #2 to that emailAddress
    if formLetterNumber == 3
           send form letter #3 to that emailAddress  

出于各种商业原因,我预计套用信函不会超过 3 个。

我做了什么:

但现在我想做一个有条件的拆分,这样我就可以根据 SQL 返回的formLetterNumber 将流程分成 3 个不同的发送邮件任务。但是条件拆分在数据流工具箱上,而发送邮件任务只在控制流工具箱上,我不知道如何将数据从一个组件移动到另一个组件。查看图像以了解我正在尝试做的事情:enter image description here, enter image description here

我在这个网站和 YouTube 上看过,要么找不到解决方案,要么我问问题的方式不对。 C# 和脚本是一种选择,但购买其他软件则不是。预先感谢您的建议。

可以在 SSIS 控制流中使用 Precedence Constraints

优先约束支持表达式。如果我们在 SSIS 优先约束中选择表达式,它将计算表达式,如果表达式为真,则受约束的可执行文件运行。

因此,对于您的情况,您需要三个优先约束以及一个表达式,如下所示:

@formLetterNumber == 1

下一个优先约束表达式是

@formLetterNumber == 2

关于该主题的好文章:Overview of SSIS Precedence Constraints

作为最终结果,可以按如下方式组成过程:

  1. 在 Foreach Employee Container 中添加一个空的 Sequence Container
  2. 乱序容器添加三个优先约束描述 以上。
  3. 对于特定类型的套用信函,每个优先约束都以其自己的“发送电子邮件”任务结束。