1. 概述
1.1 版本说明
FineReport 版本 | 插件版本 | 功能变动 |
---|---|---|
10.0.18 | V2.0 | ETL 作业新增一种节点类型:「条件分支」 |
1.2 应用场景
条件分支节点的作用就是基于一个来自于上游或者系统的条件,判断是否继续运行下游的节点。
例如:设置一个条件分支,该分支包含两个判断条件,在两个时间段内分别执行不同的离线同步操作,如下图所示:
1.3 功能入口
在 ETL 任务的节点列表处,新增一种节点类型:「条件分支」,但是拖到任务设计界面并不能直接添加条件,添加条件需要满足:
条件分支节点跟其他节点连接起来。
任务需要有参数,因为「条件分支」节点添加条件时就是根据参数进行判断,所以没参数就没办法设置条件。
1.4 功能简介
支持添加多个条件分支,指向不同的下游节点,并可对条件进行编辑。
条件判断返回的值为布尔型:true 或 false,当返回值为 true 时,执行下游节点,当返回值为 false 时,不执行下游节点。
不满足分支条件时,未执行的下游节点不等同于运行失败,不影响整体任务的运行。
2. 示例
2.1 设置参数
新建一个 ETL 任务,给这个任务设置一个日期类型的参数 a ,其值为 yyyy/mm/dd-1 ,表示取当前日期前一天,如下图所示:
2.2 新建节点
将一个「条件分支」节点和两个「离线同步」节点分别拖到设计界面,离线同步节点分别重命名为:离线同步1、离线同步2。如下图所示:
2.3 设置离线同步
1)双击「离线同步1」节点,将「用户表test」里面的数据抽取到自动建表「001」中去,如下图所示:
2)双击「离线同步2」节点,将「用户表test」里面的数据抽取到自动建表「002」中去,如下图所示:
2.4 设置条件分支
1)设置执行「离线同步1」的条件
双击「条件分支」节点,在编辑页面,点击「离线同步1」分支的操作按钮,如下图所示:
添加一个条件:参数 a 属于日期区间 2021-10-29 00:00:00~2021-10-31 00:00:00 ,也就是当前日期前一天如果在这个区间内,就执行离线同步1,如下图所示:
2)设置执行「离线同步2」的条件
设置好第一个条件后,在编辑页面,点击「离线同步2」分支的操作按钮,如下图所示:
添加一个条件:参数 a 属于日期区间 2021-10-26 00:00:00~2021-10-29 00:00:00 ,也就是当前日期前一天如果在这个区间内,就执行离线同步2,如下图所示:
2.5 最终效果
最终完成的任务界面如 1.2 应用场景中所示。
如果当前日期的前一天在区间 2021-10-29 00:00:00~2021-10-31 00:00:00 内,那么该 ETL 任务执行离线同步1,不执行离线同步2。
如果当前日期的前一天在区间 2021-10-26 00:00:00~2021-10-29 00:00:00 内,那么该 ETL 任务执行离线同步2,不执行离线同步1。
3. 注意事项
3.1 常量条件值
直接输入常量类型的条件值,和定义参数时输入的常量格式保持一致,具体要求如下表所示:
类型 | 示例 | 备注 |
---|---|---|
数字-单个 | 1 | |
数字-数组 | 1.4,2.6,4.8,5.6 | 数字间用英文逗号隔开 |
文本-单个 | 文本1 | |
文本-多个 | '文本1','文本2' | 文本加单引号,用英文逗号隔开 |
用文本常量值举个例子,设置如下图所示: