在 Talend 中将数据从 tJavaRow 传递到 tJava

Passing data from tJavaRow to tJava in Talend

我正在使用 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 行
  • tJava 喜欢 System.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);
}