关于kettle使用process类,建立循环赋值的setValues赋值的问题
kettle吧
全部回复
仅看楼主
level 1
请问下,setValues会覆盖以前的值,我在代码里写了一个循环,想把每个的结果都输出出去要怎么做呢?并且输出的数量可能不一致
2022年06月16日 04点06分 1
level 1
我是小白,项目需要使用kettle写的,因为其他很多东西都用的kettle写的,所以要用这个一起实现,这是代码,每次循环的结果就覆盖掉了呀,有没有其他的方法能增加?
String getStr = "";
for(int i=0;i<timdenodecode.length;i++)
{
for(int j = 1;j+i<nodeValues.length;j++)
{
if (nodeValues[i].equals(null) || nodeValues[i].equals("无") || nodeValues[j+i].equals(null) || nodeValues[j+i].equals("无"))
{
System.out.println("未发生!!!当前时间:" + nodeValues[i] + "校验时间:" + nodeValues[j+i]);
get(Fields.Out, "relation_field").setValue(r, xmbgh);
getStr = nodeCode[i];
if(getStr.subSequence(0,1) == "1")
{
get(Fields.Out, "BusinessType").setValue(r, 1);
get(Fields.Out, "BusinessNo").setValue(r, ysbh);
}else if(getStr.subSequence(0,1) == "2")
{
get(Fields.Out, "BusinessType").setValue(r, 2);
get(Fields.Out, "BusinessNo").setValue(r, xmbgh);
}else if(getStr.subSequence(0,1) == "3")
{
get(Fields.Out, "BusinessType").setValue(r, 3);
get(Fields.Out, "BusinessNo").setValue(r, cgbh);
}else if(getStr.subSequence(0,1) == "4")
{
get(Fields.Out, "BusinessType").setValue(r, 4);
get(Fields.Out, "BusinessNo").setValue(r, htbh);
}else
{
get(Fields.Out, "BusinessType").setValue(r, 99);
get(Fields.Out, "BusinessNo").setValue(r, "0000");
}
get(Fields.Out, "AlertnodeNo").setValue(r, nodeCode[i]);
get(Fields.Out, "AlertInfoNo").setValue(r, "0000");
get(Fields.Out, "Level").setValue(r, "2");
}else
{
if(sdf.parse(nodeValues[i]).getTime()<=sdf.parse(nodeValues[j+i]).getTime()) {
System.out.println("正常数据!!!当前时间:" + nodeValues[i] + "校验时间:" + nodeValues[j+i]);
get(Fields.Out, "relation_field").setValue(r, xmbgh);
getStr = nodeCode[i];
if(getStr.subSequence(0,1) == "1")
{
get(Fields.Out, "BusinessType").setValue(r, 1);
get(Fields.Out, "BusinessNo").setValue(r, ysbh);
}else if(getStr.subSequence(0,1) == "2")
{
get(Fields.Out, "BusinessType").setValue(r, 2);
get(Fields.Out, "BusinessNo").setValue(r, xmbgh);
}else if(getStr.subSequence(0,1) == "3")
{
get(Fields.Out, "BusinessType").setValue(r, 3);
get(Fields.Out, "BusinessNo").setValue(r, cgbh);
}else if(getStr.subSequence(0,1) == "4")
{
get(Fields.Out, "BusinessType").setValue(r, 4);
get(Fields.Out, "BusinessNo").setValue(r, htbh);
}else
{
get(Fields.Out, "BusinessType").setValue(r, 99);
get(Fields.Out, "BusinessNo").setValue(r, "0000");
}
get(Fields.Out, "AlertnodeNo").setValue(r, nodeCode[i]);
get(Fields.Out, "AlertInfoNo").setValue(r, "0000");
get(Fields.Out, "Level").setValue(r, "0");
}else
{
logBasic("触发预警!!!!");
System.out.println("发出警告!!!当前时间:" + nodeValues[i] + "校验时间:" + nodeValues[j+i]);
get(Fields.Out, "relation_field").setValue(r, xmbgh);
getStr = nodeCode[i];
if(getStr.subSequence(0,1) == "1")
{
get(Fields.Out, "BusinessType").setValue(r, 1);
get(Fields.Out, "BusinessNo").setValue(r, ysbh);
}else if(getStr.subSequence(0,1) == "2")
{
get(Fields.Out, "BusinessType").setValue(r, 2);
get(Fields.Out, "BusinessNo").setValue(r, xmbgh);
}else if(getStr.subSequence(0,1) == "3")
{
get(Fields.Out, "BusinessType").setValue(r, 3);
get(Fields.Out, "BusinessNo").setValue(r, cgbh);
}else if(getStr.subSequence(0,1) == "4")
{
get(Fields.Out, "BusinessType").setValue(r, 4);
get(Fields.Out, "BusinessNo").setValue(r, htbh);
}else
{
get(Fields.Out, "BusinessType").setValue(r, 99);
get(Fields.Out, "BusinessNo").setValue(r, "0000");
}
get(Fields.Out, "AlertnodeNo").setValue(r, nodeCode[i]);
get(Fields.Out, "AlertInfoNo").setValue(r, "0000");
get(Fields.Out, "Level").setValue(r, "0");
}
}
}
}
2022年06月16日 04点06分 2
1