Java Script 代码
组件介绍
JavaScript代码组件中可以执行 java script 代码,恰当的使用可以极大丰富 UDI 的使用场景。在脚本区域中键入的代码在步骤中的每一行执行一次。此步骤还允许您在单个步骤中创建多个脚本。
- 输入:数据流
- 输出:经处理的数据流
页面介绍
运行“JavaScript代码”组件得到下图所示的界面:
参数选项
“JavaScript代码”组件页面包含如下选项:
选项 | 说明 | 样例值 |
---|---|---|
Transform Scripts | 在此步骤中创建的脚本 | CSV文件输入 |
Transform Constants | 预定义静态常量,用于控制数据行发生的情况。使用时必须为变量指定一个常量trans_Status值。若要使用这些常量,必须首先在脚本trans_Status将 trans_Status 变量设置为CONTINUE_TRANSFORMATION,以便将变量赋值设置为正在处理的第一行。否则,将忽略对trans_Status的任何后续赋值。双击常量以将其添加到 Java 脚本窗格 | |
Transform Functions | 可以在脚本中使用的字符串,数字,日期,逻辑,特殊和文件函数。这些包含的函数用Java实现,并且比JavaScript函数执行得更快。每个函数都有一个示例脚本演示其用法。双击该函数以将其添加到Java脚本窗格。右键单击并选择示例,将示例添加到Java脚本窗格 | |
输入字段 | 输入步骤的字段 | |
输出字段 | 为步骤输出字段 | |
Script here | 填写待运行的 java script 脚本 | |
兼容模式 | 选择兼容模式选项以使用2.5JavaScript引擎的版本。如果未选择此选项(默认),则该步骤使用JavaScript引擎的版本3 | |
优化级别 | 选择 JavaScript 优化级别。这些值是: 1:JavaScript 以解释模式运行。 0:不执行优化。 1-9:执行所有优化。 9 执行最多的优化,脚本执行速度更快,但编译速度较慢。默认值为 9 | 9 |
字段表
组件底部表格为字段表,右击选择“获取变量(&G)”,组件可根据当前指定设置从源文件获取相应内容填充字段表。该表包含以下列:
列名 | 说明 | 样例值 |
---|---|---|
字段名称 | 指定传入字段的名称 | |
重命名 | 为传入字段指定一个新名称 | |
类型 | 指定输出字段的数据类型 | |
长度 | 指定输出字段的长度 | |
精确 | 指定输出字段的精度值 | |
替换值 FiedName 或 Rename | 指定是将选定字段的值替换为另一个值还是重命名字段。值为Y和N |
使用案例
使用“JavaScript代码”组件添加 proc_code 字段,首先使用“CSV文件输入”组件提取数据如下图所示:
使用“JavaScript代码”组件添加proc_code字段并运行成功结果如下图所示:
使用案例二
在这个步骤里可以写JavaScript,可以通过JavaScript读取文件、连接到数据库、输出信息到弹出窗口,等等。你会发现它能提供比你想要的更多的功能。 (1)、新建转换,首先需要一些输入数据,将“表输入”拖至画布,并rental表数据。 sql附件为:rental.sql
截图如下:
(2)、将“字段选择”拖至画布,选择如图所示的四个字段。
(3)、将“JavaScript”拖至画布,添加筛选代码。
//Script here
var status = "OK";
var age = dateDiff(rental_date,return_date,"w");
if (age >= 1) status = "LATE";
(4)、将Switch/Case拖至画布,设置判断条件,并且值为OK发送给OK步骤,值为LATE发送给“中止”步骤
(5)、完整转换如下图所示:
(6)、运行转换,结果如下图所示:
(7)、点开OK及中止,查看输出结果。