Трансформатор Message Properties
Если вы хотите установить несколько переменных потока в одном компоненте в Mule 3, и вам не нужно выполнять какие-либо преобразования заранее , Message Properties
трансформатор, пожалуй, самый лаконичный способ сделать это.Мне это нравится, потому что помимо возможности установить несколько переменных потока в одном компоненте, XML понятен, и когда вы нажимаете на компонент в AP Studio, пользовательский интерфейс сразу же делает очевидным, что вы устанавливаете несколько переменных с помощьюодин компонент.Просто убедитесь, что вы используете scope="invocation"
, чтобы установить переменные потока:
<message-properties-transformer scope="invocation" doc:name="Set flowVars">
<add-message-property key="varName1" value="1"/>
<add-message-property key="varName2" value="2"/>
<add-message-property key="varName3" value="2"/>
</message-properties-transformer>
Если вам нужно выполнить небольшие преобразования, вы всегда можете вызвать DataWeave из MEL.Вот пример:
...
<add-message-property key="varName1" value="dw('payload map $.id')"/>
...
Компонент Transform Message
(DataWeave)
Вы также можете сделать это в DataWeave с компонентом Transform Message
.Я чувствую, что у этого есть пара недостатков, на которые я должен указать.Во-первых, XML является более подробным и трудным для чтения:
<dw:transform-message doc:name="Transform Message">
<dw:set-variable variableName="varName1"><![CDATA[%dw 1.0
%output application/java
---
1]]></dw:set-variable>
<dw:set-variable variableName="varName2"><![CDATA[%dw 1.0
%output application/java
---
2]]></dw:set-variable>
<dw:set-variable variableName="varName3"><![CDATA[%dw 1.0
%output application/java
---
3]]></dw:set-variable>
</dw:transform-message>
Кроме того, не существует очевидного способа сказать из пользовательского интерфейса AP Studio, что этот конкретный компонент сообщения преобразования устанавливает несколько переменных: