如何将参数传递给mule中的datamapper并访问它们。 (在XSLT中,我将它们作为上下文参数传递,在param中接收它们并使用$ symbol进行访问)。我需要在datamapper中做同样的事情。任何建议/链接/示例表示赞赏。
Approach1: 我们在datamapper中使用了invokeTransformer方法
output.abc= invokeTransformer("MyTransformer",input.abcdef);
此MyTransformer是一个重写此默认方法的java组件。
@Override
public String transformMessage(MuleMessage message, String outputEncoding)
throws TransformerException {
System.out.println("Inside transformer" +message.getProperty ("sessionVariable1",PropertyScope.SESSION));
return message.getProperty("sessionVariable1",PropertyScope.SESSION);
但是,问题是我不是从骡子流中调用这个变压器。但是,从datamapper调用它。因此,参数“消息”不会被传递。因此,无法检索该会话变量以返回到datamapper。有没有办法发送这个参数(来自datamapper的MuleMessage)?
答案 0 :(得分:1)
您可以在DataMapper中使用输入参数,然后在输出中引用它们:
<set-variable variableName="testvar" value="value of testvar"/>
<data-mapper:transform config-ref="new_mapping_grf"">
<data-mapper:input-arguments>
<data-mapper:input-argument key="testvar">#[flowVars['testvar']]</data-mapper:input-argument>
</data-mapper:input-arguments>
</data-mapper:transform>
和
output.myField = invokeTransformer("MyTransformer",inputArguments.testvar);
或
output.myField = inputArguments.testvar;
通过输入端绿色加图标添加DataMapper GUI中可用的输入参数。