使用informatica工作流发送邮件

时间:2014-09-18 15:13:56

标签: unix informatica

我有一个信息映射 - 一个具有Sq->t(x)->tgt

的简单映射

这里我只在满足某个条件时填充目标(这是一个平面文件),这个条件包含在转换中。

现在我的要求是如果目标(一个txt文件)即使只有一个记录也会被填充,它应该向两个人发送一封电子邮件。

我使用的是mailx Unix命令,但我不知道如何使用Unix脚本检查目标文件中是否有任何记录。这就是我的尝试:

if [ "/data/informatica/Services/myfolder/TgtFiles/filename.csv" = "1" ]//here i am trying to check if there are any records in the target
then
    mailx -s "Target is populated" "reciepent1@abc.com reciepent2@abc.com "<<ed
    Validation completed
    ed
else
    exit
    eod
fi

2 个答案:

答案 0 :(得分:1)

不清楚shell informatica正在调用什么,但这应该适用于任何bourne衍生物(不是csh)。

if [ `wc -l < "/data/informatica/Services/myfolder/TgtFiles/filename.csv"` -gt 0 ]
   # //here i am trying to check if there are any records in the target
then
    mailx -s "Target is populated" "reciepent1@abc.com reciepent2@abc.com "<<ed
    Validation completed
    ed
else
    exit
    eod
fi

我无法轻松测试mailx部分,也不知道eod对于informatica的意义。如果我将then正文替换为echo yep,将else正文替换为echo nope,则会按预期工作。

如果您可以使用更新的命令替换,请将第一行替换为

if [ $(wc -l < "/data/informatica/Services/myfolder/TgtFiles/filename.csv") -gt 0 ]

这将为任何复制代码的人树立一个好榜样。

IHTH。

答案 1 :(得分:0)

这也可以使用Command TaskWorkflow之前的链接上的条件来实现。您需要在SessionCommand Task之间的链接上添加以下条件:

$your_session_name.TgtSuccessRows > 0 

如果您使用Post-Session Success Command调用脚本,则需要先将其更改为Command Task