【发布时间】:2018-03-03 11:46:22
【问题描述】:
我需要遍历一个数据库表并发送一个 html 格式的邮件。
我尝试使用 xml 和 xsl 转换,但无法获得预期的结果。
另外,请建议是在 PostGressql 中构建超链接更好,还是在 Pentaho 中也可以
我尝试使用表格输入和 Javascript 步骤。事情是它为每一行输出。我需要组合和连接每一行输出以形成结果 HTML
【问题讨论】:
标签: html email pentaho pdi spoon
我需要遍历一个数据库表并发送一个 html 格式的邮件。
我尝试使用 xml 和 xsl 转换,但无法获得预期的结果。
另外,请建议是在 PostGressql 中构建超链接更好,还是在 Pentaho 中也可以
我尝试使用表格输入和 Javascript 步骤。事情是它为每一行输出。我需要组合和连接每一行输出以形成结果 HTML
【问题讨论】:
标签: html email pentaho pdi spoon
使用 Pentaho:使用 table input 获取您的数据,制作 html(例如使用 java script),从 grid 或constant 步骤,并将整体交给mail 步骤。
使用 javascript,您逐行构建了一个名为 html 的 -tag,但您只需要一条消息。所以你用Group by 步骤将它们分组(没有Group field,主题=html,类型=Concatenate strings separated by,值=空)。然后,您可以将其放在Mail 步骤中。
但是Mail 步骤需要更多信息(收件人、发件人、主题、服务器、端口……)。您可以通过Constant 步骤将它们放入流中。
鉴于您的用例,您可能会惊讶于您必须将此数据放入流中,而不是在Mail 步骤中提供一个框。这是因为此步骤旨在为每个收件人发送一封个性化的邮件。
既然您知道该怎么做,就不要向每个人发送 100000 封邮件。
【讨论】:
var output = <html><head/><body>EDW - <a href="{edw_link}">{edw_link_text}</a></body></html> .您可能需要使用 output.toXMLString() 方法将 xml 转换为字符串(不确定,自从我使用 Pentaho 以来已经有一段时间了)。在大括号中,您可以使用变量或列名 - 它们将被替换为它们的值。
var 关键字声明的变量。因此,您可以将html_Column2 的值“累积”到html_Column1 中。如果需要初始化html_Column,右击选项卡(命名为Script 1),添加新选项卡,然后右键单击新选项卡(命名为Item 0),将其定义为StartScript,并将@987654344 @那里。