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/>​ Attributes 説明

doc:name

コンポーネントの編集可能な名前。

doc:id

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

variableName

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

value

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

mimeType

変数の MIME 型 (​text/plain​ や ​application/json​ など) を設定します。

encoding

変数のエンコード (​ISO 10646/Unicode(UTF-8)​ など) を設定します。

スニペット XML

Anypoint Code Builder のスニペット XML は、コンポーネントのカスタマイズ可能なテンプレートとして機能します。

<set-variable
  value="#[$1]"
  variableName="$2"
  doc:name="Set variable"
  doc:id="uwboqc" />

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

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