import java.io.File;
import java.io.IOException;
//kettle中已定义好的行处理方法,每行记录都会运行一次
public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException
{
//(1)获取到上一个步骤的输入行
Object[] r = getRow();
if (r == null) {
setOutputDone();
return false;
}
r = createOutputRow(r, data.outputRowMeta.size());
//(2)读取出參数变量值
String tab="";
//调用代码解析tab对应的数值
try {
String codeIn=get(Fields.In,"tab").getString(r);
System.out.println(codeIn);
byte[] bytes = codeIn.getBytes();
int i=0;
//for (byte b : bytes) {
// i += b;
//}
for(int j=0;j<bytes.length;j++){
i+=bytes[j];
}
i = i%100 + 1;
if(i < 10){
tab ="00"+i;
}else if(i < 100){
tab ="0"+i;
}else{
tab =""+i;
}
} catch (IOException e) {
e.printStackTrace();
}
//(4)把计算好的值放入到输出记录中
get(Fields.Out, "tab").setValue(r, tab);
//get(Fields.Out, "col").setValue(r, recordcount);
//(5)输出到下一个节点做处理
putRow(data.outputRowMeta, r);
return true;
}
使用java获取kettle上个步骤的数据并处理输出到下步骤
最新推荐文章于 2024-07-03 08:54:19 发布