如何在mule中找到当前的流名称?

时间:2016-08-19 10:56:43

标签: mule mule-el

我需要将当前流名称捕获到变量中。

我尝试使用#[flow.name],但在mule 3.8.0中没有运气

任何人都可以帮助我吗?

5 个答案:

答案 0 :(得分:3)

根据这篇文章中的答案:How to get caller flow name in private flow in Mule

有一种最简单的方法来获取流名称并将其放入变量中:

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

答案 1 :(得分: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"/>

这将直接在变量

中设置您的当前流名称

答案 2 :(得分:1)

在使用Groovy脚本组件的mule 3.8.5中,

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

答案 3 :(得分:0)

我一直在3.7.3中使用#[flow.name]并且只是在3.8.0中尝试确保它没有被删除,并且它在logger中设置了一个flowVars值并且工作正常。我建议至少发布你的流程片段,也许我们可以发现你遇到的问题。

PS,不确定为什么flow.name不是标准格式或Mule真正记录的,因为它不会继续存在一些担心他们将删除它。我已经看到它不仅仅在这里声明它在MEL中无法访问,但#[flow.name]是MEL表达式并且确实有效。要在异常策略中使用if I Parse Template,我使用sulthony的形式,在表达式中设置flowVars值并在模板中引用flowVars。

答案 4 :(得分:-1)

您可以使用#[flow.name]访问记录器中的流名称,但在MEL中无法访问它。使用flowconstruct获取流名称。请参阅此answer

希望这有帮助。