kettle中使用java代码模块

来源:互联网 发布:微信订餐系统源码免费 编辑:程序博客网 时间:2024/06/03 18:27

在kettle使用java代码模块需要注意的一些事项,以防忘记。

首先需要继承processRow方法,跟java的main方法类似,代码从这里开始执行,并且在里边读取跟保存变量。

public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws Exception{Object[] r = getRow();if (r == null) {  setOutputDone();  return false;}    r = createOutputRow(r, data.outputRowMeta.size());    String appid = get(Fields.In, "appid").getString(r); String appkey = get(Fields.In, "appkey").getString(r);String city_code = get(Fields.In, "city_code").getString(r);String date = get(Fields.In, "date").getString(r);Map body = new HashMap();body.put("city_code", city_code);    body.put("date", date);String sign = signRequest(appid, body, appkey);    get(Fields.Out,"sign").setValue(r,sign);logBasic("sign:"+sign);    putRow(data.outputRowMeta, r);return true;}
如上,前几行代码不变  读取变量使用get(Fields.In, "appid");

保存变量使用get(Fields.Out,"sign").setValue(r,sign);

最后不要忘记putRow(data.outputRowMeta, r);及return true;


输入日志可以使用logBasic("sign:"+sign);


上面import java.util.*;

需要的jar包放入kettle安装目录的lib目录下

底下变量名称跟保存变量名称一样,如下图所示


3 0
原创粉丝点击