kettl的脚本组件

2025-05-22 05:56

kettl的脚本组件

脚本是转换里面的分类

image.png

Java脚本

​ java脚本就是使用java语言通过代码编程来完成对数据流的操作。内置了很多函数可以直接使用。java脚本主程序入口是processRow()函数,其等价于main方法,processRow()函数是用来处理数据流的场所!

Java脚本Main,Main函数对应一个processRow()函数,processRow()函数是用来处理数据流的场所!

示例

从Excel中读取数据,生成newcode字段,如果code列为NULL就使用name列来替换,否则就在code列的后面加上123,结果保存在Excel

设计转换

  • 输入:Excel输入

  • 脚本:Java代码

  • 输出:Excel输出

  • image.png

    转换配置


  • Step1:Excel输入组件配置

    • 双击组件,写上步骤名称等

    • 相关配置如下所示:

      image.png

      image.png

      image.png

      image.png

      Step2:Java脚本组件配置

  • 双击打开,设置步骤名称

  • 配置信息,如下:

    image.png

    所需添加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输出组件配置

  • 双击打开,设置步骤名称

  • 配置信息,如下:

    image.png

  • Step4:保存转换

    上述配置好后,点击确定即可!

    运行转换,点击运行按钮,成功运行如下:

    image.png

    结果查看

    image.png

JavaScript脚本

​ Javascript脚本,就是使用javascript语言通过代码编程来完成对数据流的操作。JS中有很多内置函数,可以在编写JS代码时查看。

​ 存在两种不同的模式:不兼容模式和兼容模式。不兼容模式:是默认的,也是推荐的。兼容模式:兼容老版本的kettle。

​ Javascript脚本,就是使用javascript语言通过代码编程来完成对数据流的操作。

示例

Step1:Excel输入组件配置

  • 双击组件,写上步骤名称等

  • 相关配置如下所示:

    image.png

    Step2:JavaScript脚本组件配置**

  • 双击打开,设置步骤名称

  • 配置信息,如下:

    image.png

    其他操作如上一致

    Step4:保存转换

    上述配置好后,点击确定即可!然后查看

    运行转换

    image.png

Rules accumulator
Rules executor
公式

使用kettle中的步骤【公式】,对原始数据单位进行转换;

image.png

利用Janino计算Java表达式

image.png

相关新闻
热点
投票
查看结果
Tags

站点地图 在线访客: 今日访问量: 昨日访问量: 总访问量:

© 2025 个人网站 版权所有

备案号:苏ICP备2024108837号

苏公网安备32011302322151号