更新时间:2025-04-28 GMT+08:00
分享

多IF条件

解释说明

节点执行依赖多个IF条件的处理策略,配置默认策略操作如下。

  1. 在数据开发主界面的左侧导航栏,选择“配置管理 > 配置”。
  2. 单击“默认项设置”,可设置多IF策略配置项。

    策略支持如下两种,系统默认策略为“逻辑或”。

    • 逻辑或:表示多个IF判断条件只要任意一个满足条件则执行。
    • 逻辑与:表示多个IF判断条件需要所有条件满足时才执行。

    具体使用方法请参见教程案例

  3. 单击“保存”,对设置的配置项进行保存。

教程案例

如果当前节点的执行依赖多个IF条件的节点,执行的策略包含逻辑或和逻辑与两种。

当执行策略配置为逻辑或,则表示多个IF判断条件只要任意一个满足条件,则执行当前节点。

当执行策略配置为逻辑与,则表示多个IF判断条件需要所有条件满足时,才执行当前节点。

如果没有配置执行策略,系统默认为逻辑或处理。

图1 多IF条件作业样例

配置方法

配置执行策略

  1. 登录控制台,找到所需要的实例,单击实例卡片上的“进入控制台”,进入概览页面。
  2. 选择“空间管理”页签,在工作空间列表中,找到所需要的工作空间,单击工作空间的“数据开发”,系统跳转至数据开发页面。
  3. 在数据开发模块,单击“配置管理 > 配置”,单击“默认配置”。
  4. “多IF策略”可设置为“逻辑与”或者“逻辑或”。
  5. 单击“保存”。

开发作业

  1. 在“作业开发”页面,新建一个数据开发作业。
  2. 拖动三个DLI SQL算子作为父节点,一个RDS SQL算子作为子节点,选中连线图标并拖动,编排图1所示的作业。
  3. 右键单击节点间的连线,选择“设置条件”,在弹出的“编辑EL表达式”文本框中输入IF条件。

    每一个条件分支都需要填写IF条件,IF条件为通过EL表达式语法填写三元表达式。

    • test1节点IF条件表达式为:#{(Job.getNodeStatus("test1")) == "success" ? "true" : "false"},
    • test2节点IF条件表达式为:#{(Job.getNodeStatus("test2")) == "success" ? "true" : "false"},
    • test3节点IF条件表达式为:#{(Job.getNodeStatus("test3")) == "success" ? "true" : "false"},

    此处表达式均采用前一个节点的执行状态进行IF条件判断。

    输入IF条件表达式后,配置IF条件匹配失败策略,可选择仅跳过相邻的下一个节点,或者跳过该IF分支后续所有节点。

测试运行作业

  1. 单击作业画布上方的“保存”按钮,保存完成编排的作业。
  2. 单击作业画布上方的“测试运行”按钮,测试作业运行情况。

    test1运行成功,则对应的IF条件为true;

    test2运行成功,则对应的IF条件为true;

    test3运行失败,则对应的IF条件为false。

    多IF策略配置为“逻辑或”时,showtabls节点运行完成,作业运行完成。详细情况如下所示。

    多IF策略配置为“逻辑与”时,showtabls节点跳过,作业运行完成。详细情况如下所示。

相关文档