2016-08-19 7 views

Antwort

2

Basierend auf der Antwort in diesem Beitrag: How to get caller flow name in private flow in Mule

Es ist ein einfachste Weg, die Flussnamen zu bekommen und es in eine Variable setzen:

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

@Thiru obwohl es ein recht alter Thread ist, aber alternativ können Sie direkt den Ausdruck '# [mule: context.serviceName]' in einer Variablen verwenden, um den aktuellen Flussnamen zu setzen .. see die Antwort unten –

-1

Sie können auf den Flow-Namen im Logger zugreifen, indem Sie # [flow.name] verwenden, aber nicht in MEL. Verwenden Sie flowconstruct, um den Flow-Namen zu erhalten. Siehe hierzu answer

Hoffe das hilft.

0

Ich habe # benutze [flow.name ] in 3.7.3 und versuchte gerade in 3.8.0, um sicherzustellen, dass es nicht entfernt worden war und es für mich in der Protokollierung und dem Setzen eines flowVars Wertes gut arbeitete. Ich schlage vor, mindestens einen Ausschnitt Ihres Flusses zu veröffentlichen und vielleicht können wir das Problem erkennen, das Sie haben.

PS, nicht sicher, warum flow.name nicht in Standardformularen oder wirklich von Mule dokumentiert ist, und da es nicht gibt es weiterhin einige Sorgen sie werden es entfernen. Ich habe gesehen, dass es mehr als nur hier angegeben hat, dass es in MEL nicht zugänglich ist, aber # [flow.name] ist ein MEL-Ausdruck und funktioniert. Wenn ich für etwas wie I Parse Template in Ausnahmestrategien verwende, benutze ich das Formular von sulthony, setze einen flowVars-Wert in einem Ausdruck und verweise auf diese flowVars in meiner Vorlage.

2

Alternativ können Sie auch direkt Ausdruck #[mule:context.serviceName] in einer Variablen verwenden: -

<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"/> 

Dies wird Ihre Stromfluss Namen direkt in variablen

1

In mule 3.8.5 mit Groovy Skriptkomponente gesetzt,

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