Мне нужно записать текущее имя потока в переменную.Как найти имя текущего потока в муле?
Я попытался с # [flow.name], но не повезло в мул 3.8.0
может кто-нибудь, пожалуйста, помогите мне?
Мне нужно записать текущее имя потока в переменную.Как найти имя текущего потока в муле?
Я попытался с # [flow.name], но не повезло в мул 3.8.0
может кто-нибудь, пожалуйста, помогите мне?
На основании ответа на этот пост: How to get caller flow name in private flow in Mule
Существует простейший способ получить имя потока и поместить его в переменную:
<expression-component doc:name="Expression"><![CDATA[flowVars.flowName = flow.name;]]></expression-component>
Вы можете получить имя потока в журнале регистрации, используя # [имя_потока], но его не доступно в MEL. Используйте flowconstruct для получения имени потока. См. Это answer
Надеюсь, что это поможет.
Я использую # [flow.name ] в 3.7.3 и просто попытался в 3.8.0 убедиться, что он не был удален, и он отлично работал для меня в журнале и устанавливал значение flowVars. Я предлагаю опубликовать хотя бы фрагмент вашего потока, и, возможно, мы сможем выяснить, что у вас есть.
PS, не уверен, почему имя flow.name не находится в стандартных формах или действительно документировано Мулом, и, поскольку его нет, по-прежнему возникают некоторые проблемы, они удаляют его. Я видел, что он заявил больше, чем просто здесь, что он недоступен в MEL, но # [flow.name] является выражением MEL и работает. Чтобы использовать, если для чего-то вроде шаблона parse в стратегии исключения, я использую форму султония, задаю значение flowVars в выражении и ссылаюсь на этот flowVars в моем шаблоне.
В качестве альтернативы, вы можете напрямую использовать выражение #[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"/>
Это позволит установить текущее имя потока непосредственно в переменной
В мул 3.8.5 с помощью Groovy компонент сценария,
flowVars.currentFlowName = eventContext.getFlowConstruct().getName();
@Thiru, хотя это довольно старая нить, но поочередно, вы можете напрямую использовать выражение '# [mule: context.serviceName]' в переменной для установки текущего имени потока .. см. ответ ниже –