【发布时间】:2023-01-15 09:28:58
【问题描述】:
我必须阅读输入文件以获取员工的电子邮件 ID 并向每个员工发送电子邮件。 如何使用 Datastage 作业执行此操作? 文件看起来像这样, PERSON_ID|FName|LName|Email_ID
【问题讨论】:
标签: datastage
我必须阅读输入文件以获取员工的电子邮件 ID 并向每个员工发送电子邮件。 如何使用 Datastage 作业执行此操作? 文件看起来像这样, PERSON_ID|FName|LName|Email_ID
【问题讨论】:
标签: datastage
DataStage 本身提供了一个仅在序列级别可用的通知阶段。 由于您的信息位于作业的数据流中,因此您可以使用 Wrapped Stage 以便从作业中发送邮件。 包装阶段允许为流中的每一行调用操作系统命令。 Sendmail 等可以用来发送你想要的邮件。
我最近实施了这个。包装阶段很棘手,所以我建议以一种非常简单的方式使用它——用它来调用 bash(或任何其他 shell)并预先准备邮件命令,然后简单地将它发送到那个阶段。
【讨论】:
还有一些选择。
首先是像 Michael 提到的那样使用 Wrapped Stage。另一种方法是编写一个Parallel Routine 用于一个普通的并联transformer,这很相似。
每行发送电子邮件的最简单方法我知道的正在使用服务器例程在变压器中。
缺点是服务器例程已被弃用,我们还不确定 它们迁移到未来版本的 DataStage (CP4D) 的能力如何。 这样做时应该考虑到这一点。
在每个项目中,您应该有一个文件夹
Routines/Built-In/Utilities,其中包含服务器例程DSSendMailAttachmentTester和DSSendMailTester。这些最初是为了在例程编辑器中使用,只是为了测试后端是否真的能够发送邮件。但您也可以在 Transformer 中使用它们,只要是 BASIC Transformer.这意味着您可以使用所有旧学校的东西(这可能不是您想要的)编写服务器作业,或者您可以在并行作业中使用 BASIC Transformer。(点击有关如何启用它的链接。)它允许访问 BASIC 转换和函数。
我建议复制提到的服务器例程来制作您自己的自定义例程,并可能根据您的需要对其进行修改。
【讨论】: