在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目錄下
底下變數名稱跟儲存變數名稱一樣,如下圖所示