公式
组件介绍
“公式”组件可以计算数据流中的公式表达式。它可用于创建简单的计算,例如[A] + [B]或更复杂的业务逻辑,其中包含很多嵌套的if / then逻辑。
- **输入:**包含需要计算字段的数据流
- **输出:**包含计算结果的数据流
页面介绍
运行“公式”组件得到下图所示的界面:
右键单击字段空白处可进行行插入。现介绍各字段如下:
字段表
选项 | 说明 | 样例值 |
---|---|---|
新字段 | 自命名新的字段名称。 | |
公式 | 点击公式会弹出一个编辑公式窗口,该窗口后续将详细介绍。 | |
值类型 | 下拉框中选择该字段的值的数据 类型。 | Integer |
长度 | 该字段中数据的长度。 | |
精度 | 该字段中数据的精度。 | |
替换值 | 下拉框中可选择输入流中的字段,用新字段将其替换。 |
公式界面
当按下“公式”单元格条目时,**“编辑公式”**窗口将打开,并为用户提供可用功能的帮助:
公式编辑器窗口直接检查提供的语法和字段名称。如果发生错误,将直接获得错误消息。
使用案例
使用逻辑公式 IF
来演示一个小案例。
首先使用**“自定义常量数据”**组件定义初始数据。源数据如下所示:
而后在**“公式”**组件中进行定义:
**在“编辑公式”**窗口中编写公式if([num_1] > 15; [num_1] + [num_0]; [num_1] - [num_0])
。注意引用变量要加[ ]
.
最终运行结果如下:
计算正确。
使用案例二
实际这不是一个真正的脚本步骤,但它可以提供比“计算器”步骤更多的灵活的公式。 (1)、新建转换,首先需要一些输入数据,将自定义常量数据拖至画布,并添加一些数据。双击组件,步骤名称默认,在“元数据”中先定义【Name】列并选择好数据类型,在“”中输入测试数据,如下图所示:
(2)、将获取系统信息拖至画布,设置获取【today】为"系统日期(可变)" (3)、将计算器拖至画布,添加如图所示公式作为计算【age_in_years】字段的条件。
(4)、将过滤记录拖至画布,设置如下过滤条件,并且true步骤发送给Young,false步骤发送给**“Old”**
(5)、完整转换如下图所示:
(6)、运行转换,结果如下图所示:
(7)、点开Young,Old预览可以看出数据已经正确分类。