Mulesoft 3 Как объявить несколько переменных потока - PullRequest
0 голосов
/ 08 февраля 2019

Я новичок в Mulesoft, и я использую Mulesoft версии 3. Мы можем установить значения переменных, используя Set Variable Component.И используя компонент выражения, мы можем установить несколько переменных одновременно.Но компонент выражения не позволяет Declare переменную потока.Поэтому я должен сначала использовать компонент 3 Set Variable, а затем использовать выражение, чтобы установить их за один раз (если это необходимо изменить).

В случае нескольких переменных, есть ли способ объявить и инициализироватьпеременная в одном компоненте вместо отдельного Set Variable компонента для его объявления?

Ответы [ 3 ]

0 голосов
/ 10 февраля 2019

Я хотел бы знать, почему вам нужно просто объявить переменные.В любом случае, если в случае объявления вам просто нужно пустое значение, вы можете просто установить его, как показано ниже.

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

Надеюсь, эта помощь.

0 голосов
/ 10 февраля 2019

Трансформатор 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, что этот конкретный компонент сообщения преобразования устанавливает несколько переменных:

enter image description here

0 голосов
/ 08 февраля 2019

Если вы используете корпоративную версию, пожалуйста, используйте dataweave для установки нескольких переменных в одном компоненте.

Время выполнения 4.1

https://docs.mulesoft.com/mule-runtime/4.1/dataweave-variables

Время выполнения 3.8

https://docs.mulesoft.com/mule-runtime/3.8/dataweave

...