Talend ESB将变量从Route传递到cTalendJob

时间:2016-04-01 14:42:50

标签: integration esb talend

如何将exchange.getIn().getMessageId()设置为变量并将ContextParam中的cTalendJob传递给我的作业?我可以像“bla bla bla”那样传递String,但是当我尝试传递变量之类的时候 `

${myVariable}, 
 #{myVariable}, 
 {myVariable}, 
 $myVariable, 
 context.myVariable

我得到错误myVariable无法解析变量。

有人知道怎么做吗?

2 个答案:

答案 0 :(得分:0)

您可以从配置为tRouteInput的路径中获取作业中的变量。 在tRouteInput写这样的东西:

${header.typesOfParametre.nameOfParametre}
如果你把变量放在标题中,

标题......

我希望我帮助你

答案 1 :(得分:0)

如果像我一样,您不想更改作业的tRouteInput组件,只需在路线中为${myvariable}设置作业的上下文参数,那么就会有一点点这种丑陋的做法。

我想从消息头设置context参数,所以我创建了一个cSetHeader组件并设置了一个与上下文参数名称匹配的头,这允许您选择表达式语言,因此在简单中您可以拥有${header.headerName}

cTalendJob的“高级设置”标签中,选中“传播标题”复选框,这将填充与邮件标题名称完全匹配的所有上下文变量。

这对我有用,但为了完整性和安全性,您可能需要确保删除任何所需的标题,以防它们覆盖Talend作业中的其他上下文变量。< / p>