2016-08-19 39 views

回答

2

基於這一職位的答案:How to get caller flow name in private flow in Mule

有獲得流動名字,並把它變成一個變量,最簡單的方法:

<expression-component doc:name="Expression"><![CDATA[flowVars.flowName = flow.name;]]></expression-component> 
+1

@Thiru雖然這是一個很舊的線程,但或者,你可以直接使用表達式'#[騾子:context.serviceName]'在一個變量來設置當前流動名..見下面的答案 –

-1

您可以通過使用#[flow.name]但其在MEL無法訪問的記錄器訪問流量名。使用flowconstruct獲取流名稱。請參考此answer

希望這有助於。

0

我一直在使用#[flow.name ]在3.7.3中,只是在3.8.0中試過,以確保它沒有被刪除,它在記錄器中工作正常並設置了flowVars值。我建議發佈至少一部分流程,也許我們可以發現你遇到的問題。

PS,不知道爲什麼flow.name是不是在標準形式或真的騾子記錄,並且因爲它是不是還有繼續有些擔心,他們將其刪除。我已經看到它不僅僅是在這裏陳述它不能在MEL中訪問,但是#[flow.name]是一個MEL表達式並且工作。爲了使用像I Parse Template這樣的異常策略,我使用sulthony的形式,在表達式中設置flowVars值並在我的模板中引用flowVars。

2

或者,你可以直接使用表達#[mule:context.serviceName]在一個變量: -

<set-variable variableName="myFlowName" value="#[mule:context.serviceName]" doc:name="Variable"/> 
<!-- Print the value of variale in logger --> 
<logger message="#[flowVars.myFlowName]" level="INFO" doc:name="Logger"/> 

這將在變量

1

直接設置當前流名稱在騾子3.8.5使用Groovy腳本組件,

flowVars.currentFlowName = eventContext.getFlowConstruct().getName();