---
schema_version: "1"
id: 846d7c57eb5f023188d50b15ad98deb8a68bc8d0cb49e041bb5535d3a3ef560e
title: Set Variable トランスフォーマー
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/mule-runtime/4.6/variable-transformer-reference.md
canonical_url: https://docs.mulesoft.com/jp/mule-runtime/4.6/variable-transformer-reference
source_site: docs.mulesoft.com
content_type: documentation
content_hash: cf9e9b919bb82b7fc94e0098db1707eec21fd20f69555e052f969c7911c5f425
description: MuleSoft Documentation Site
release: "4.6"
latest: false
---
# Set Variable トランスフォーマー

Set Variable (​`set-variable`​) コンポーネントは、Mule アプリケーションのフロー内で使用する値を格納するための ​[Mule 変数](https://docs.mulesoft.com/jp/mule-runtime/4.6/about-mule-variables)​を作成または更新します。Mule 変数は ​[Mule イベント](https://docs.mulesoft.com/jp/mule-runtime/4.6/about-mule-event)​の一部です。文字列やメッセージといったシンプルなリテラル値、メッセージペイロード、または属性オブジェクトを格納できます。たとえば、メッセージの元の (処理前の) ペイロードを格納しておくことで、後でフローやエラーハンドラーで使用できるようにします。

`set-variable`​ コンポーネントは、複雑な式や変換には向いていません。このコンポーネントは選択などのシンプルな処理に使用し、複雑なシナリオでは ​[Transform コンポーネント](https://docs.mulesoft.com/jp/mule-runtime/4.6/transform-component-about)​を使用してください。

## [](#参照)参照

Set Variable により、設定可能なプロパティと一緒に、Mule 変数の名前と値を設定できます。

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 60%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">項目</th>
<th class="tableblock halign-left valign-top">使い方</th>
<th class="tableblock halign-left valign-top">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Variable Name (変数名) (​<code>variableName</code>​)</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>必須</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>変数の名前 (文字列である必要があります)。変数名には、数字、文字、およびアンダースコアのみを含めることができます。たとえば、名前にハイフンは使用できません。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Value (値) (​<code>value</code>​)</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>必須</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>変数の値で、文字列または DataWeave 式を指定できます。式を使用する例については、<a href="https://docs.mulesoft.com/dataweave/latest/dataweave-cookbook-writer-prop-mule" class="xref page">Use Dynamic Writer Properties</a>を参照してください。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Mime Type (MIME タイプ) (​<code>mimeType</code>​)</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>省略可能</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>変数の MIME 型 (​<code>text/plain</code>​ や ​<code>application/json</code>​ など) を設定します。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Encoding (エンコード) (​<code>encoding</code>​)</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>省略可能</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>変数のエンコード (​<code>ISO 10646/Unicode(UTF-8)</code>​ など) を設定します。</p>
</div></div></td>
</tr>
</tbody>
</table>

<table>
<tbody><tr>
<td class="icon">
<i class="fa icon-warning" title="Warning"></i>
</td>
<td class="content">
<div class="paragraph">
<p><code>mimeType</code>​ 属性と ​<code>encoding</code>​ 属性は、​<code>value</code>​ に指定された DataWeave 式には影響しません。これらは、格納されている出力値にのみ影響します。変換が必要な場合には、DataWeave 式に明示的な出力ディレクティブを指定する必要があります。</p>
</div>
</td>
</tr>
</tbody></table>

## [](#例)例

次の例では、変数を文字列に設定しています。

- 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 形式の例](https://docs.mulesoft.com/dataweave/latest/dataweave-formats-java#format_examples)​ドキュメントを参照してください。

Design Center で Logger コンポーネントを使用して変数の値を表示するには、​`vars.myVar`​ ではなく ​`#[vars.myVar]`​ のように Anypoint Studio の構文を使用する必要がある場合があります。

## [](#他のイベントプロセッサーの変数へのアクセス)他のイベントプロセッサーの変数へのアクセス

Set Variable は、現在の Mule イベントで変数を設定し、設定された変数は Mule イベントと一緒に下流のイベントプロセッサーに伝播されます。DataWeave では、​`vars`​ を使用することで任意の変数にアクセスできます。たとえば、lastMessage という名前の変数を設定してある場合は、​`vars.lastMessage`​ としてアクセスできます。 Transform Message コンポーネントでは変数を設定でき、多くのコネクタやイベントプロセッサーでは \[Advanced (詳細)\] タブで対象を設定できます。これらによってフロー変数を設定し、同じようにキーワードの ​`vars.`​ を使用してアクセスできます。

## [](#関連情報)関連情報

- [Mule イベントの変数](https://docs.mulesoft.com/jp/mule-runtime/4.6/about-mule-variables)
- [対象変数を使用したデータの強化](https://docs.mulesoft.com/jp/mule-runtime/4.6/target-variables)