kettl的脚本组件
脚本是转换里面的分类
Java脚本
java脚本就是使用java语言通过代码编程来完成对数据流的操作。内置了很多函数可以直接使用。java脚本主程序入口是processRow()函数,其等价于main方法,processRow()函数是用来处理数据流的场所!
Java脚本Main,Main函数对应一个processRow()函数,processRow()函数是用来处理数据流的场所!
示例
从Excel中读取数据,生成newcode字段,如果code列为NULL就使用name列来替换,否则就在code列的后面加上123,结果保存在Excel
设计转换
输入:Excel输入
脚本:Java代码
输出:Excel输出
转换配置
Step1:Excel输入组件配置
双击组件,写上步骤名称等
相关配置如下所示:
Step2:Java脚本组件配置
双击打开,设置步骤名称
配置信息,如下:
所需添加java代码片段如下:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Locale;
public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException {
Object[] r = getRow();
if(r == null){
setOutputDone();
return false;
}
try{
String yljgmc = get(Fields.In,"医疗机构名称").getString(r);
String yljglxbm = get(Fields.In,"医疗机构类型编码").getString(r);
String yljgbh = get(Fields.In,"医疗机构编号").getString(r);
String sd = get(Fields.In,"属地").getString(r);
String sssjyy = get(Fields.In,"所属上级医院").getString(r);
String ssylt = get(Fields.In,"所属医联体").getString(r);
String sjly = get(Fields.In,"数据来源").getString(r);
String zt = get(Fields.In,"状态").getString(r);
String lx = get(Fields.In,"类型").getString(r);
String jylb = get(Fields.In,"经营类别").getString(r);
get(Fields.Out,"医疗机构名称").setValue(r,yljgmc);
get(Fields.Out,"医疗机构类型编码").setValue(r,yljglxbm);
get(Fields.Out,"医疗机构编号").setValue(r,yljgbh);
get(Fields.Out,"属地").setValue(r,sd);
get(Fields.Out,"所属上级医院").setValue(r,sssjyy);
get(Fields.Out,"所属医联体").setValue(r,ssylt);
get(Fields.Out,"数据来源").setValue(r,sjly);
get(Fields.Out,"状态").setValue(r,zt);
get(Fields.Out,"类型").setValue(r,lx+"123");
get(Fields.Out,"经营类别").setValue(r,jylb);
putRow(data.outputRowMeta, r);
}catch(ParseException e){
}
return true;
}
Step3:Excel输出组件配置
双击打开,设置步骤名称
配置信息,如下:
Step4:保存转换
上述配置好后,点击确定即可!
运行转换,点击运行按钮,成功运行如下:
结果查看
JavaScript脚本
Javascript脚本,就是使用javascript语言通过代码编程来完成对数据流的操作。JS中有很多内置函数,可以在编写JS代码时查看。
存在两种不同的模式:不兼容模式和兼容模式。不兼容模式:是默认的,也是推荐的。兼容模式:兼容老版本的kettle。
Javascript脚本,就是使用javascript语言通过代码编程来完成对数据流的操作。
示例
Step1:Excel输入组件配置
双击组件,写上步骤名称等
相关配置如下所示:
Step2:JavaScript脚本组件配置**
双击打开,设置步骤名称
配置信息,如下:
其他操作如上一致
Step4:保存转换
上述配置好后,点击确定即可!然后查看
运行转换
Rules accumulator
Rules executor
公式
使用kettle中的步骤【公式】,对原始数据单位进行转换;
利用Janino计算Java表达式