覆盖主要内容
版本: 6.1.0

公式

组件介绍

公式”组件可以计算数据流中的公式表达式。它可用于创建简单的计算,例如[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预览可以看出数据已经正确分类。