Set Variable (<set-variable/>)

logo cloud IDE Cloud IDE

logo desktop IDE Desktop IDE

Mule アプリケーションのフロー内で使用する値を格納するための ​Mule 変数​を作成または更新します。

Mule 変数は ​Mule イベント​の一部です。文字列やメッセージといったシンプルなリテラル値、メッセージペイロード、または属性オブジェクトを格納できます。たとえば、メッセージの元の (処理前の) ペイロードを格納しておくことで、後でフローやエラーハンドラーで使用できるようにします。

複雑な式や変換には Set Variable を使用しないでください。代わりに、このコンポーネントは選択などのシンプルな操作に使用し、複雑なシナリオでは Transform コンポーネントを使用します。

コンポーネント XML

このコンポーネントは、次の XML 構造をサポートします。

<set-variable
  variableName="myVar"
  value="myVarValue"
  doc:name="Set variable"
  doc:id="mrsngz" />

Set Variable (​<set-variable/>​) 属性は UI および XML で設定できます。

属性名 属性 XML 説明

Set variable (変数を設定)​ (デフォルト)

doc:name

キャンバスに表示されるコンポーネントの編集可能な名前。

なし

doc:id

コンポーネントの自動生成された識別子。

Value (値)

value

変数の値で、文字列または DataWeave 式を指定できます。式を使用する例については、動的ライタープロパティの使用を参照してください。この属性は必須です。

Variable name (変数名)

variableName

変数の名前で、文字列または DataWeave 式を指定できます。変数名には、数字、文字、およびアンダースコアのみを含める必要があります。この属性は必須です。

Encoding (エンコード)

encoding

このコンポーネントで出力されるペイロードのエンコード。

Mime type (MIME タイプ)

mimeType

このコンポーネントで出力されるペイロードの MIME タイプ。詳細は、​「リーダーとライターのプロパティの使用」​を参照してください。

パラメーター

なし

リーダープロパティのキーと値のペアを ​outputMimeType​ 属性の値に追加します。複数のキーと値のペアが許可されます。リーダープロパティは MIME タイプに固有です。例として、​application/json​ の​「JSON リーダープロパティ」​を参照してください。他のリーダープロパティを見つけるには、​DataWeave 形式のドキュメント​の「サポートされる形式」に移動し、​「リーダーとライターのプロパティの使用」​を参照してください。

他のイベントプロセッサーの変数へのアクセス

Set Variable は、現在の Mule イベントで変数を設定し、設定された変数は Mule イベントと一緒に下流のイベントプロセッサーに伝播されます。DataWeave では、​vars​ を使用することで任意の変数にアクセスできます。たとえば、​vars.lastMessage​ を使用して、​lastMessage​ という名前の変数にアクセスできます。Transform コンポーネントでは変数を設定でき、多くのコネクタやイベントプロセッサーには設定できる対象変数あります。

次の例では、Mule 変数の値を文字列、DataWeave 操作の結果、メッセージペイロード、メッセージ属性、マップ値、Java オブジェクトに設定します。

例: 文字列値を使用した変数の設定

次の例では、文字列値を変数に割り当てます。

<set-variable
  value="My First Variable"
  variableName="myVar" />

例: DataWeave 式の結果を変数として設定

次の例では、DataWeave 式の結果を変数に割り当てます。

<set-variable
  value=#[max([1,2,3] ++ [3,4,5])]
  variableName="myResult" />

例: 変数をメッセージペイロードに設定

次の例では、メッセージペイロードを変数に割り当てます。

<set-variable
  value=#[payload]
  variableName="myPayload" />

例: 変数をメッセージ属性に設定

次の例では、メッセージ属性を変数に割り当てます。

<set-variable
  value=#[attributes]
  variableName="myAttributes" />

例: マップ値を使用した変数の設定

次の例では、マップ値を変数に割り当てます。

<set-variable
  value="{ 'name' : 'Ana', 'office' : 'BA' }"
  variableName="employee"
  mimeType="application/json"
  encoding="UTF-8"/>

例: 変数を Java オブジェクトに設定

次の例では、DataWeave スクリプトを使用して 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"}]'
  variableName="Variable to Java Object"/>