我正在使用Talend进行集成,我想知道是否有可能将数据从tJavaRow传递到tJava组件。

例如:

tJavaRow组件:

String check = input_row.foo;

if( check.contains("Yes")){
    String ret  = "OK";
    return ret;
}


tJava组件:

System.out.println(ret);


是否有一种打印ret的方法,它是对下一个组件内部的上一个组件进行计算的结果?

最佳答案

解决方法是使用globalMaptSetGlobalMap

globalMap.put("ret", ret);


并用恢复

globalMap.get("ret");


/!\重要/!\

但是请注意,如果在主流中使用tJava

tRowGenerator > row1 > tJava > row2> tLogRow



tRowGenerator生成1到10的10行
tJavaSystem.out.println("foo");
tLogRow打印数值


输出将是

foo
1
2
3
4
5
6
7
8
9
10


tJava中的代码仅在生成第一行之前执行一次。检查生成的代码,您可以看到

System.out.println("foo");
....
for(int i = 0; i < 10; i++){
    logrow.print(i);
}

关于java - 在talend中将数据从tJavaRow传递到tJava,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47815404/

10-10 01:45