2016-04-22 21 views
0

我有一個來自Mule中的webservice的輸出,它返回一個linkedHashMap,我需要將各個值動態插入到模板中。該模板用於通過SMTP連接器發送電子郵件。我可以使用MEL#[有效載荷]獲得所有值,但我無法一一得到它們。我試過#[payload.get(0)],#[payload [0]],但它們都返回null。從mule中的linkedHashMap返回單個值

騾子XML看起來是這樣的:

<flow name="MW_Flow"> 
    <file:inbound-endpoint path="C:\....\1" connector- ref="File" responseTimeout="10000" doc:name="File" pollingFrequency="60000"/> 
    <ws:consumer config-ref="File_Read_WS" operation="all3" doc:name="FileRead DBWriter WS"/> 
    <dw:transform-message metadata:id="6ee92ba8-9f67-40d6-bfa3-3e237da20822" doc:name="Transform Message"> 

<foreach doc:name="For Each"> 
     <logger message="#[payload]" level="INFO" doc:name="Logger"/> 
     <parse-template location="C:\.....\Templates\Mail.txt" metadata:id="b7d894eb-465b-47f7-a542-b49fc4fb53d9" doc:name="Parse Template"/> 
     <logger message="2: #[message.exception] #[message.dataType] #[payload]" level="INFO" doc:name="Logger"/> 
    </foreach> 
</flow> 

模板(純文本文件),看起來有點像這樣:

[Name]您好。 這是來自[name2]的電子郵件。以下事件[事件] .....

除了使用返回整行(4個值)的#[有效內容]時,我所得到的全部值都是空值。

任何幫助非常感謝! /Johan

回答

0

如果你的有效負載是Map,那麼payload.get(0)或payload [0]的行爲就好像你試圖從map中獲得一個值作爲key,我猜想它不存在在你的地圖中。

嘗試用名字來訪問它 - #[payload.name]#[payload.name2]#[payload[name]]

+0

我想這些,但他們沒有工作,但使用「」讓我嘗試另一種實際工作的方式,#[payload.column_name]回想起來非常明顯...不管怎樣,thx爲您的快速響應! – Slim

+0

很高興工作!你的意思是#[payload.column_name]有效嗎?如果是,那麼這就是我在回答#[payload.name]中提到的,我認爲你在地圖上有名字鍵,因爲你在模板中使用了這個鍵:)。 –

+0

是的,#[payload.column_name]工作!起初我並沒有意識到,因爲我的專欄的名字不是名字,所以我只是在這裏寫下來使它更容易理解: – Slim