使用Pentaho将SQL查询结果集发送到电子邮件ID

时间:2019-10-23 12:23:35

标签: sql email pentaho

我对PDI相当陌生,我正在尝试执行以下操作:

SELECT table_names FROM schema.table_details WHERE last_run_date < current_date

table_details包含有关不同模式中的所有表及其上次运行时间的信息。我想知道今天哪些表没有更新,并以电子邮件的主题或正文形式发送表列表(我希望它们以主题或正文而不是文件的形式发送)。

如何使用PDI执行此操作?

我尝试使用Set variables,但它只能容纳一行。

2 个答案:

答案 0 :(得分:0)

您可以使用“按分隔字符串分隔”选项(其值为$ {line.separator})来逐步使用“分组”,这样您将只有一行包含完整的字符串。这样,您可以将其设置为变量,并将JOB邮件步骤用作正文。

enter image description here

答案 1 :(得分:0)

我已经以一种简单的方式实现了这一点,而不是获得所有表的电子邮件,而收到了所有具有每日状态的表的电子邮件。

您可以通过两种方式执行相同的操作

方法1

  1. 在表输入步骤中使用查询

  2. 将跳数连接到具有文件状态的excel输出

  3. 然后您可以使用电子邮件步骤通过电子邮件发送与附件相同的文件。 (您想获取电子邮件内容中的信息,可以使用“在内存中加载文件内容”流式传输数据,并在电子邮件内容中传递变量)

方法2。(如果您需要表格格式的电子邮件)

  1. 在表输入步骤中使用查询,并使用xml输出提取

  2. 验证xml是否格式正确

  3. 使用XSL转换将输出更改为html

  4. 将html作为变量的一部分传递

  5. 在电子邮件内容中传递变量