問題的上下文是:當我使用set變量時,datamapper在下拉列表中識別並顯示變量,但當使用Message Properties轉換器設置調用變量時,它永遠不會顯示。 這是正常的嗎?使用消息屬性變量和設置變量變量設置的調用變量之間的區別?
回答
消息屬性變換器是將不同範圍的變量/屬性添加到消息的舊方法。
Mule改進了消息屬性變換器並將其拆分爲<set-variable>
,<set-property>
和<set-session-variable>
變換器。 除了明確的功能分離之外,當查看流程圖時,這使得流程更具可讀性和可理解性。
要記住的一點是,消息屬性默認將屬性添加到出站作用域。如果您想將其添加到必須在scope屬性中提及的調用作用域中。
<message-properties-transformer scope="invocation">
<add-message-property key="someKey" value="someValue"/>
</message-properties-transformer>
希望這會有所幫助。
將範圍設置爲「調用」本身後,我看到此行爲。另一種觀察是,如果我在groovy腳本中創建一個調用變量,datamapper不會識別。似乎只有set-variable對於datamappers可見。 – shrinathM 2014-10-10 06:03:33
請編輯答案以修復缺少的變壓器名稱。 – 2014-10-10 17:59:47
@RyanHoegg感謝您的觀察。我現在正確地編輯它。 :) – user1760178 2014-10-10 18:28:23
不,這是不正常的。
確保在消息屬性變換器上使用invocation
作用域。
我做過大衛。另外,如果在Groovy腳本中設置了任何調用變量,則該變量不會顯示在datamapper下拉列表中。只有從set-variable設置的變量纔會顯示。這裏我只關心調用變量。我沒有試驗其他變量。 – shrinathM 2014-10-10 06:06:03
感覺像一個bug然後:在https://www.mulesoft.org/jira打開一個JIRA並且正如user1760178所說的那樣,'message-properties-transformer'是舊東西,反正你應該使用'set-variable'。 – 2014-10-10 15:43:52
我認爲您要查找的Data Mapper功能稱爲Data Sense,我不認爲它能夠從groovy腳本獲取所需的元數據。應該可以將它添加到消息屬性轉換器中。 – 2014-10-10 17:59:11
請注意,DataMapper是企業版功能,因此您應該能夠獲得MuleSoft的專業支持。 – 2014-10-10 18:19:34