反馈已提交

网络繁忙

连线执行判断

  • 文档创建者:Wendy123456
  • 历史版本:9
  • 最近更新:Wendy123456 于 2024-01-30
  • 1. 概述

    1.1 版本

    FineDataLink 版本功能变动
    4.0.3

    1)在 步骤流 中,右键点击节点连线,提供「无条件执行」、「成功时执行」、「报错时执行」的节点连线配置

    2)在 步骤流 中,右键点击节点,新增「执行判断」按钮,支持自定义多执行条件的生效方式(全部逻辑与、全部逻辑或),灵活控制任务中节点的依赖关系

    1.2 应用场景

    用户希望 ETL 任务执行失败后,可以自定义错误处理流程。比如 ETL 任务执行失败后,在企业微信群中通知。

    1.3 功能简介

    如下图所示:

    7.png

    2. 功能介绍

    将连线的始端称为上游节点,连线的末端称为下游节点。

    2.1 节点连线配置介绍

    在 步骤流 中,右键点击节点连线,提供「无条件执行」、「成功时执行」、「报错时执行」的节点连线配置。如下图所示:

    6.png

    具体说明如下表所示:

    注:默认成功时执行。

    选择项说明
    无条件执行不论上游节点执行是否成功,都执行下游节点
    成功时执行上游节点执行成功时,执行下游节点
    报错时执行上游节点执行失败时,执行下游节点

    2.2 「执行判断」按钮介绍

    在 步骤流 中,右键点击节点,新增「执行判断」按钮,支持自定义多执行条件的生效方式(全部逻辑与、全部逻辑或),灵活控制任务中节点的依赖关系。如下图所示:

    8.png

    下游节点被多个上游节点连接时,点击「执行判断」按钮,下拉框可选择「所有」和「任一」,分别对应两个生效逻辑,「全部逻辑与」和「全部逻辑或」。

    • 全部逻辑与:下游节点在所有上游节点执行结果均满足连线执行条件时触发执行。

    • 全部逻辑或:下游节点在任一上游节点执行结果满足连线执行条件时触发执行(在下游节点处集中配置)。

    2.3 总体执行策略

    1)下游节点被一个上游节点连接时,该上游节点执行结果满足其连线执行条件,则触发下游节点执行。

    2)下游节点被多个上游节点连接时,在所有上游节点执行完成后触发判断,按照选择的生效逻辑执行:

    • 全部逻辑与:下游节点在所有上游节点执行结果均满足连线执行条件时触发执行。

    • 全部逻辑或:下游节点在任一上游节点执行结果满足连线执行条件时触发执行(在下游节点处集中配置)。

    3)「条件分支」节点只允许选择「成功时执行」,没有「失败时执行」和「无条件执行」:

    • 连线条件为「成功时执行」且符合条件分支配置条件,则触发执行对应下游节点

    • 连线条件为「成功时执行」但不符合条件分支配置条件,则跳过执行下游节点

    4)虚拟节点默认为「成功时执行」,没有「失败时执行」和「无条件执行」,虚拟节点如果执行,必然执行成功。

    2.4 场景示例

    2.4.1 一对多场景说明

    ETL 任务设计如下图所示:

    1653469578358102.png

    ABCD构成了一对多场景,其执行策略如下:

    注:A 不是条件分支节点。

    A 节点执行结果B(与A连线为成功时执行)C(与A连线为失败时执行)D(与A连线为无条件执行)
    执行失败不触发执行触发执行触发执行
    执行成功触发执行不触发执行触发执行

    终止执行

    如:执行至 A 节点时,任务手动停止

    不触发执行不触发执行不触发执行

    跳过执行。如:

    1)A 上游不是条件分支节点,且执行结果不满足连线执行条件

    2)A 上游是条件分支节点,且判断后不走 A分支

    不触发执行不触发执行不触发执行

    2.4.2 多对一场景说明

    ETL 任务设计如下图所示:

    1653470028765378.png

    ABCD构成了多对一场景,其执行策略如下:

    注:A\B\C均不是条件分支节点;在所有上游节点执行完成后触发判断。

    执行条件生效方式A/B/C实际执行结果D
    全部逻辑与
    A\B\C执行结果均满足各自连线执行条件触发执行
    A\B\C执行结果任一不满足其连线执行条件不触发执行
    全部逻辑或A\B\C执行结果任一满足其连线执行条件触发执行
    A\B\C执行结果均不满足各自连线执行条件不触发执行

    若场景如下图所示:

    1706582001895959.png

    若 A、B、C 中至少有一个节点及其下游节点执行成功,H 节点都执行。

    若希望 D、E、F节点全部执行成功再执行 H 节点,可在 H 节点前添加「条件分支」节点,通过参数 ${jobname.opresult} (节点执行成功值为 success)的值判断是否执行 H 节点。

    2.4.3 多对多场景

    A-C 的配置为成功时执行,A-D 的配置为失败时执行,B-C 的配置为成功时执行,B-D 的配置为失败时执行,「多执行条件生效方式」配置为「全部逻辑与」。如下图所示:

    11.png

    执行策略:A 执行成功且 B 执行成功时,C 执行,D 不执行;A 执行失败且 B 执行失败时,D 执行,C 不执行;A 执行成功且 B 执行失败时,C 和 D 都不执行。

    2.5 兼容说明

    升级后,对于所有节点连线,都统一将连线的执行条件设为成功时执行,「多执行条件生效方式」配置为「全部逻辑与」。

    3. 示例

    示例:如果上游节点运行成功,则执行下一个节点,如果失败,则发送消息通知。

    3.1 前期准备

    参考 第一个ETL任务的开发 文档的 2.1-2.4 节内容,作为示例基础,用以展示连线执行判断功能。

    3.2 新增消息通知节点

    1)新增「消息通知」节点,与「salesum建表节点」连接起来。

    2)右键点击「消息通知」节点和「salesum建表节点」之间的连线,选择「报错时执行」。如下图所示:

    2.png

    3)「消息通知」节点设置如下图所示:

    3.png

    3.3 运行任务

    3.3.1 salesum建表节点执行成功

    点击右上角的「保存并运行」。如下图所示:

    此时salesum建表节点执行成功,消息通知节点被跳过执行。

    12.png

    MySQL 数据库中生成了两个表:

    salecopy:

    1653529324713248.png

    salesum:

    1653529345593022.png

    3.3.2 salesum建表节点执行失败

    1)修改「salesum建表」节点的 SQL 语句,将 SQL 语句改为无法执行的 SQL 。如下图所示:

    9.png

    2)点击右上角的「保存并运行」。如下图所示:

    此时salesum建表节点执行失败,消息通知节点执行成功。

    10.png

    企业微信群中,消息通知给设置的群成员。如下图所示:

    11.png



    附件列表


    主题: 管理系统
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持