2014-03-07 43 views
0

如何將參數傳遞給mule中的datamapper並訪問它們。 (在XSLT中,我將它們作爲上下文參數傳遞,在param中接收它們並使用$符號進行訪問)。我需要在datamapper中做同樣的事情。任何建議/鏈接/例如表示讚賞。Mule - 將參數傳遞給datamapper並在xpath條件下訪問它們

Approach1: 我們在DataMapper的

output.abc= invokeTransformer("MyTransformer",input.abcdef); 

這MyTransformer使用invokeTransformer方法是重寫了這個默認方法的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

您可以使用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通過輸入端綠色加上圖標。

+0

如何在xpath條件中引用輸入參數變量? – user3359973

+0

我不知道你是否可以這樣做。您可能必須在DataMapper之外定義基於xpath的路由,或者將多個DataMapper鏈接在一起以將inputArgument插入到xml結構中。 –

相關問題