Mule - 将参数传递给datamapper并在xpath条件下访问它们

时间:2014-03-07 05:33:46

标签: xslt mule datamapper mule-studio

如何将参数传递给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)?

1 个答案:

答案 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中可用的输入参数。