Pentaho/PDI:如果加载作业(在元作业内)失败,则自动将值递增 1



在PDI中,我有以下结构

  • 0_Metajob
  • 1_Load_1
  • 1_Load_2
  • 1_SimpleEvaluation
  • 1_Mail

截至目前
1_Load_1 和 1_Load_2 彼此独立。无论第一个是否成功,第二个都将运行。没关系,我想要这样!

Issue

我希望有一个计数器,每次单次加载失败时递增 1,即在我的示例中,计数器可以取值 0、1 或 2.
我需要它做什么?客户将在元作业结束时收到一封邮件。上述值决定了邮件的主题,即 0=一切正常,1=马马虎虎,2=加载完全失败!
为什么不在每一个加载作业中邮寄?我这样做,但没有附加日志文件,因为它通常未完成。因此,日志文件将与元作业完成时发送的邮件一起邮寄。

尝试<</strong>br/>"设置变量"。以为我可以通过在值字段中添加一个来简单地增加它,即"${变量名称}+1"。当然,此步骤是在每个 Load-Job.
的故障路径中实现的,但是,它不起作用.

有人介意帮助我吗?我将不胜感激!

Set Variable 不做计算,你需要一个 Javascript 步骤。

幸运的是,变量也可以在Javascript步骤中设置。这段代码应该进入你放置的每个步骤,而不是设置变量步骤:

var i = parseInt(parent_job.getVariable("Counter"),0);
i = i + 1;
parent_job.setVariable("Counter",i);
true;

这段代码从父作业中获取变量"Counter"并将其转换为 int,因为所有 Pentaho 变量都是字符串。然后它递增它并再次设置作业变量。最后的"true"是确保javascript步骤向主作业报告成功。

重要提示:这与您在作业中的预期大致相同。它不会在转变中!

相关内容

  • 没有找到相关文章

最新更新