Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerSet Variable (set-variable
) コンポーネントは、Mule アプリケーションのフロー内で使用する値を格納するための Mule 変数を作成または更新します。Mule 変数は Mule イベントの一部です。文字列やメッセージといったシンプルなリテラル値、メッセージペイロード、または属性オブジェクトを格納できます。たとえば、メッセージの元の (処理前の) ペイロードを格納しておくことで、後でフローやエラーハンドラーで使用できるようにします。
set-variable
コンポーネントは、複雑な式や変換には向いていません。このコンポーネントは選択などのシンプルな処理に使用し、複雑なシナリオでは Transform コンポーネントを使用してください。
Set Variable により、設定可能なプロパティと一緒に、Mule 変数の名前と値を設定できます。
項目 | 使用方法 | 説明 |
---|---|---|
Variable Name (変数名) ( |
必須 |
変数の名前で、文字列または DataWeave 式を指定できます。変数名には、数字、文字、およびアンダースコアのみを含めることができます。たとえば、名前にハイフンは使用できません。 |
Value (値) ( |
必須 |
変数の値で、文字列または DataWeave 式を指定できます。式を使用する例については、Use Dynamic Writer Propertiesを参照してください。 |
Mime Type (MIME タイプ) ( |
省略可能 |
変数の MIME 型 ( |
Encoding (エンコード) ( |
省略可能 |
変数のエンコード ( |
|
次の例では、変数を文字列に設定しています。
Name (名前) = myVar
Value (値) = my first variable
次の例は、5
の値を生成する DataWeave 操作を使用して変数を設定しています。
Name (名前) = myVar
Value (値) = Anypoint Studio では #[max([1,2,3] ++ [3,4,5])]
次の例は、変数をメッセージペイロードに設定しています。
Name (名前) = myVar
Value (値) = Design Center では payload
、Anypoint Studio では #[payload]
次の例は、変数をメッセージ属性に設定しています。
Name (名前) = myVar
Value (値) = Design Center では attributes
、Anypoint Studio では #[attributes]
次の例は、変数をメッセージ全体に設定しています。
Name (名前) = myVar
Value (値) = Design Center では message
、Anypoint Studio では #[message]
次の XML 例では、マップを値として取る変数を設定しています。
<set-variable variableName="employee" value="{ 'name' : 'Ana', 'office' : 'BA' }" mimeType="application/json" encoding="UTF-8"/>
次の例では、DataWeave スクリプトのセレクターを使用して、同じ変数を設定しています。この例では、name
属性が Set Variable への入力として利用できることを前提としています。
<set-variable variableName="employee" value="#[output application/java --- payload.name]"/>
これらの例では、変数をブール値 true
に設定しています。
Name (名前) = myVar
Value (値) =
Design Center では true
、Anypoint Studio では #[true]
Design Center では true as Boolean
、Anypoint Studio では #[true as Boolean]
(1 + 1 == 2)
は Design Center では true
、#[(1 + 1 == 2)]
は Anypoint Studio では true
。
次の例では、DataWeave スクリプトを使用して変数を Java オブジェクトに設定しています。このスクリプトは、Java 形式でオブジェクトを出力します。 <set-variable value='#[%dw 2.0
output application/java
---
{
name: "Tomo",
lastName: "Chibana",
expirationDate: now(),
salesRepr: {
name: "Mariano",
lastName: "de Achaval",
}
} as Object {class: "Customer"}]' doc:name="Set Variable" variableName="Variable to Java Object"/>
.
Java データ形式の詳細は、Java 形式の例ドキュメントを参照してください。
Design Center で Logger コンポーネントを使用して変数の値を表示するには、vars.myVar
ではなく #[vars.myVar]
のように Anypoint Studio の構文を使用する必要がある場合があります。
Set Variable は、現在の Mule イベントで変数を設定し、設定された変数は Mule イベントと一緒に下流のイベントプロセッサーに伝播されます。DataWeave では、vars
を使用することで任意の変数にアクセスできます。たとえば、lastMessage という名前の変数を設定してある場合は、vars.lastMessage
としてアクセスできます。 Transform Message コンポーネントでは変数を設定でき、多くのコネクタやイベントプロセッサーでは [Advanced (詳細)] タブで対象を設定できます。これらによってフロー変数を設定し、同じようにキーワードの vars.
を使用してアクセスできます。