【问题标题】:How to perform a conditional test within a Talend job?如何在 Talend 作业中执行条件测试?
【发布时间】:2017-09-12 10:34:30
【问题描述】:

我希望触发一系列流程,我想在启动后续流程之前判断每个流程是成功还是失败。

我正在使用 tSSH(在 Talend 6.4.1 上)来触发一个进程,并且我只希望作业成功后继续。如果 tSSH“组件”接收到非零返回码,它似乎不会失败,所以我尝试使用断言。但是,即使断言失败,它似乎也不能阻止组件和子作业“正常”,这有点奇怪,所以我不能使用 on-(component|subjob)-ok 链接到下一个作业.

我似乎无法找到任何有条件的评估组件,可以让我根据评估结果停止工作或子工作的继续。

我能找到的唯一方法就是拥有

tSSH1 --IF globalMap.get("tSSH_1_EXIT_CODE").equals(0)--> tSSH2...
      --IF !globalMap.get("tSSH_1_EXIT_CODE").equals(0)--> (failure logging subjob)

这意味着用否定对测试进行两次编码。

我错过了什么,还是没有这样的条件组件?

【问题讨论】:

    标签: talend


    【解决方案1】:

    您可以使用 tSSH 组件的全局变量在 tSSH 组件上设置一个 if 条件以判断成功/失败,即

    ((String)globalMap.get("tSSH_1_STDERR")) 和 ((String)globalMap.get("tSSH_1_STDOUT"))。

    如果您可以检查的条件是:

    if(((String)globalMap.get("tSSH_1_STDERR")) != null) 比调用错误日志 否则调用 tSSH2。

    希望这会有所帮助...

    【讨论】:

    • 我很困惑你建议我把这个“if”测试放在哪里。
    • 右键单击 tSSH 组件并选择 runif 并连接到下一个组件。现在使用我建议您的全局变量相应地编写条件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多