---
schema_version: "1"
id: af165dbae976d79e40e250d603ae62640f7515123af02c600f9eb7cd6472029e
title: lookup
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/dataweave/2.3/dw-mule-functions-lookup.md
canonical_url: https://docs.mulesoft.com/jp/dataweave/2.3/dw-mule-functions-lookup
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 230c75cf62808b3f19260976c9b2535df83e990d238313e33f1fdf8c1fa49f2d
description: MuleSoft Documentation Site
release: "2.3"
latest: false
---
# lookup

## [](#lookup1)lookup(String, Any, Number)

この関数を使用すると、Mule アプリケーション内でフローを実行し、結果のペイロードを取得できます。

これは、Mule Runtime バージョン 4.1.4 以降で実行されている Mule アプリケーションで動作します。

Flow Reference コンポーネント (推奨) と同様に、​`lookup`​ 関数を使用すると、アプリケーション内で別のフローを実行し、結果のペイロードを取得できます。これは、フローの名前と入力ペイロードをパラメーターとして使用します。たとえば、​`lookup("anotherFlow", payload)`​ は、​`anotherFlow`​ という名前のフローを実行します。

この関数は、現在の属性、変数、エラーを使用して、指定されたフローを実行しますが、属性または変数を含まないペイロードを渡すのみです。同様に、コールされたフローはそのペイロードを返すのみです。

`lookup`​ 関数では、サブフローのコールはサポートされません。

<table>
<tbody><tr>
<td class="icon">
<i class="fa icon-warning" title="Warning"></i>
</td>
<td class="content">
<div class="paragraph">
<p>DataWeave のような関数型言語では、​<code>lookup</code>​ 関数の呼び出しに副作用が​<em>ない</em>​ことが期待されることを常に覚えておくことが重要です。このため、DataWeave エンジン内部の動作により、​<code>lookup</code>​ 関数が他の ​<code>lookup</code>​ 関数と並行して呼び出されたり、一切呼び出されなかったりすることがあります。</p>
</div>
<div class="paragraph">
<p>Flow Ref (​<code>flow-ref</code>​) コンポーネントを使用してフローを呼び出して、​<code>target</code>​ 属性を使用してフローの結果を ​<code>var</code>​ に配置し、その ​<code>var</code>​ を DataWeave スクリプト内から参照することをお勧めします。</p>
</div>
</td>
</tr>
</tbody></table>

### [](#パラメーター)パラメーター

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<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"><p class="tableblock">​<code>flowName</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">対象フローを識別する文字列。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">​<code>payload</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">対象フローに送信するペイロード。任意 (​<code>Any</code>​) 型を使用できます。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">​<code>timeoutMillis</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">省略可能。対象フローの実行のタイムアウト (ミリ秒)。実行しているスレッドが ​CPU_LIGHT​ または ​CPU_INTENSIVE​ の場合、デフォルトの ​<code>2000</code>​ ミリ秒 (2 秒) に設定され、他のスレッドから実行している場合は 1 分に設定されます。lookup の実行に、指定された ​<code>timeoutMillis</code>​ 値よりも長い時間がかかっている場合、エラーが発生します。</p></td>
</tr>
</tbody>
</table>

### [](#例)例

次の例は、2 つのフローの XML を示しています。​`flow1`​ の ​`lookup`​ 関数は ​`flow2`​ を実行し、オブジェクト ​`{test:'hello '}`​ をそのペイロードとして ​`flow2`​ に渡します。次に、​`flow2`​ の Set Payload コンポーネント (​`<set-payload/>`​) は ​`{test:'hello '}`​ の値を文字列 ​`world`​ と連結し、​`hello world`​ を出力して記録します。

#### [](#ソース)ソース

```XML
<flow name="flow1">
  <http:listener doc:name="Listener" config-ref="HTTP_Listener_config"
    path="/source"/>
  <ee:transform doc:name="Transform Message" >
    <ee:message >
      <ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
Mule::lookup('flow2', {test:'hello '})]]></ee:set-payload>
    </ee:message>
  </ee:transform>
</flow>
<flow name="flow2" >
  <set-payload value='#[payload.test ++ "world"]' doc:name="Set Payload" />
  <logger level="INFO" doc:name="Logger" message='#[payload]'/>
</flow>
```