---
schema_version: "1"
id: 9e80b1519ad422e5e6330219ae352c964eb6a18d91b9eec05bcd6c7738d3a67c
title: NetSuite Connector 9.3 の例 - Mule 4
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/netsuite-connector/9.3/netsuite-examples.md
canonical_url: https://docs.mulesoft.com/jp/netsuite-connector/9.3/netsuite-examples
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 7cdc55b884e09695ef783ab127f8bc7dc39b3f2f187802719c696bbc4398b41e
description: MuleSoft Documentation Site
release: "9.3"
latest: false
---
# NetSuite Connector 9.3 の例 - Mule 4

次の例は、NetSuite 用 Anypoint Connector C (NetSuite Connector) で検索を実行する方法を示しています。

- [​Integer (整数) 項目によるアカウントの基本検索の絞り込み](#account-basic-search)​
- [​Boolean (ブール値) 項目および String (文字列) 項目による従業員の基本検索の絞り込み](#employee-basic-search)​
- [​Date (日付) 項目および Array (配列) 項目による顧客の詳細検索の絞り込み](#customer-advanced-search)

## [](#account-basic-search)Integer (整数) 項目によるアカウントの基本検索の絞り込み

この例では、NetSuite Connector `Search`​ 操作を使用して、内部 ID が `query`​ パラメーターの値未満のアカウントレコードを取得する方法を示します。

この例では、少なくとも 1 件の基本アカウントが NetSuite インスタンスの検索条件を満たしている必要があります。

次のスクリーンショットは、この例の Studio アプリケーションフローを示しています。

![アカウントの基本検索の例のアプリケーションフロー](/mulesoft/current/ja-jp/netsuite-connector/9.3/_images/netsuite-examples-search-account.png)

Figure 1. Studio でのアカウントの基本検索アプリケーションフロー

この例を作成するには、新規 Mule プロジェクトを作成し、`HTTP Listener`​、NetSuite Connector `Search`​ 操作、および 2 つの `Transform Message`​ コンポーネントを設定する必要があります。

### [](#http-リスナーを設定する)HTTP リスナーを設定する

ローカルホストポート 8081 で `/account`​ パスへのコールが行われたときに Mule フローを開始するように HTTP リスナーを設定します。

1. Studio で新しい Mule プロジェクトを作成します。
2. Studio で **\[HTTP\]**​ をクリックし、**\[Listener\]**​ 操作をキャンバスにドラッグします。
3. **Listener**​ 操作の表示名を `/account`​ に変更します。
4. \[Listener\] プロパティウィンドウで、**\[Connector configuration (コネクタ設定)\]**​ 項目の横にある **\[+\]**​ をクリックしてグローバル要素を追加します。
5. デフォルトを受け入れます。
6. \[Listener\] プロパティウィンドウで、**\[Path (パス)\]**​ 項目値を `/account`​ に設定します。

### [](#netsuite-connector-の-search-操作を追加する)NetSuite Connector の Search 操作を追加する

1. **\[Mule Palette (Mule パレット)\]**​ ビューから、**\[NetSuite\]**​ を選択して **\[Search\]**​ 操作を **\[Listener\]**​ の右側にドラッグします。
2. **Search**​ 操作の表示名を `Search Account`​ に変更します。
3. \[Search\] プロパティウィンドウで、**\[Connector configuration (コネクタ設定)\]**​ 項目の横にある \[+\] をクリックしてグローバル要素を追加します。
4. デフォルトを受け入れます。
5. \[Search\] プロパティウィンドウで以下を行います。
    
    - **\[Key (キー)\]**​ 項目で `ACCOUNT_BASIC`​ を選択します。
    - **\[Page Size (ページサイズ)\]**​ 項目値を `10`​ ～ `1000`​ の整数値に設定します。

### [](#最初の-transform-message-コンポーネントを追加する)最初の \[Transform Message\] コンポーネントを追加する

この **\[Transform Message\]**​ コンポーネントには、フローの検索条件が含まれています。

1. **\[Mule Palette (Mule パレット)\]**​ ビューから、**\[Transform Message\]**​ コンポーネントを **\[Search\]**​ の左側にドラッグします。
2. **\[Transform Message\]**​ コンポーネントの名前を `Search Criteria`​ に変更します。
3. **\[Transform Message\]**​ コンポーネントをクリックします。
    
    **\[Output (出力)\]**​ 列には **AccountSearchBasic**​ オブジェクトのメタデータが表示されます。
4. メタデータの **internalid**​ オブジェクトで以下を行います。
    
    - **\[operator (演算子)\]**​ 項目をダブルクリックして、その値を `"LESS_THAN"`​ に設定します。
    - **\[searchValue\]**​ 項目をダブルクリックして、その値を `attributes.queryParams["internalId"]`​ に設定します。
        
        **\[searchValue\]**​ 項目値を `attributes.queryParams["internalId"]`​ に設定すると、検索条件として `internalId`​ クエリパラメーターの値を使用するようコネクタに指示されます。
    
    DataWeave コードは次のようになります。
    
    ```dataweave
    %dw 2.0
    output application/java
    ---
    {
    	internalIdNumber: {
    		operator: "LESS_THAN",
    		searchValue: attributes.queryParams["internalId"]
    	}
    } as Object {
    	class : "org.mule.module.netsuite.extension.api.AccountSearchBasic"
    }
    ```

### [](#2-つ目の-transform-message-コンポーネントを追加する)2 つ目の \[Transform Message\] コンポーネントを追加する

この **\[Transform Message\]**​ コンポーネントは、応答を JSON 形式に変換します。

1. **\[Mule Palette (Mule パレット)\]**​ ビューから、**\[Transform Message\]**​ コンポーネントを **\[Search\]**​ の右側にドラッグします。
2. **\[Transform Message\]**​ コンポーネントの名前を `Response to JSON`​ に変更します。
3. 新しい **\[Transform Message\]**​ コンポーネントをクリックして、出力を `application/json`​ に設定します。
    
    ```dataweave
    %dw 2.0
    output application/json
    ---
    payload
    ```

### [](#アプリケーションを実行する)アプリケーションを実行する

アプリケーションを実行する手順は、次のとおりです。

1. Mule アプリケーションを起動します。
2. `http://localhost:8081/account?internalId=5`​ をコールして、内部 ID が 5 未満の `Account`​ レコードを取得します。

### [](#アカウントの基本検索フローの-xml)アカウントの基本検索フローの XML

Studio で次のコードを新しい Mule アプリケーションい貼り付ければ、アカウントの基本検索の例のフローをすばやく読み込むことができます。必要に応じて、環境に合わせて値を変更します。

```none
<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
	xmlns:netsuite="http://www.mulesoft.org/schema/mule/netsuite"
	xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core"
	xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/netsuite http://www.mulesoft.org/schema/mule/netsuite/current/mule-netsuite.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd">

    <http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config">
        <http:listener-connection host="0.0.0.0" port="8081"/>
    </http:listener-config>

    <netsuite:config name="NetSuite_Config" doc:name="NetSuite Config">
        <netsuite:login-authentication-connection
    		email="${email}" password="${password}" account="${account}"
    		roleId="${roleId}" applicationId="${applicationId}" />
    </netsuite:config>

    <flow name="netsuite-search-account">
	    <http:listener doc:name="/account" config-ref="HTTP_Listener_config" path="/account"/>
	    <ee:transform doc:name="Search Criteria">
		    <ee:message >
			    <ee:set-payload ><![CDATA[%dw 2.0
output application/java
---
{
	internalIdNumber: {
		operator: "LESS_THAN",
		searchValue: attributes.queryParams["internalId"]
	}
} as Object {
	class : "org.mule.module.netsuite.extension.api.AccountSearchBasic"
}]]></ee:set-payload>
			</ee:message>
		</ee:transform>
		<netsuite:search key="ACCOUNT_BASIC" doc:name="Search Account" config-ref="NetSuite_Config" pageSize="10"/>
		<ee:transform doc:name="Response to Json">
			<ee:message >
				<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
			</ee:message>
		</ee:transform>
	</flow>
</mule>
```

## [](#employee-basic-search)Boolean (ブール値) 項目および String (文字列) 項目による従業員の基本検索の絞り込み

この例では、`Search`​ 操作を使用して、姓の先頭が指定した文字である非アクティブな `Employee`​ レコードを取得する方法を示します。

この例では、NetSuite インスタンスの少なくとも 1 件の従業員レコードが検索条件を満たしている必要があります。

次のスクリーンショットは、従業員の基本検索の例の Studio アプリケーションフローを示しています。

![従業員の基本検索の例のアプリケーションフロー](/mulesoft/current/ja-jp/netsuite-connector/9.3/_images/netsuite-examples-search-employee.png)

Figure 2. Studio での従業員の基本検索アプリケーションフロー

この例を作成するには、新規 Mule プロジェクトを作成し、`HTTP Listener`​、NetSuite Connector `Search`​ 操作、および 2 つの `Transform Message`​ コンポーネントを設定する必要があります。

### [](#http-リスナーを設定する-2)HTTP リスナーを設定する

ローカルホストポート 8081 で `/employee`​ パスへのコールが行われたときに Mule フローを開始するように HTTP リスナーを設定します。

1. Studio で **\[HTTP\]**​ をクリックし、**\[Listener\]**​ 操作をキャンバスにドラッグします。
2. **Listener**​ 操作の表示名を `/employee`​ に変更します。
3. 既存のグローバル要素を選択するか、**HTTP Listener**​ 用に新しい要素を作成してデフォルトを保持します。
4. \[Listener\] プロパティウィンドウで、**\[Path (パス)\]**​ 項目値を `/employee`​ に設定します。

### [](#netsuite-connector-の-search-操作を追加する-2)NetSuite Connector の Search 操作を追加する

1. **\[Mule Palette (Mule パレット)\]**​ ビューから、**\[NetSuite\]**​ を選択して **\[Search\]**​ 操作を **\[HTTP Listener\]**​ の右側にドラッグします。
2. **Search**​ 操作の表示名を `Search Employee`​ に変更します。
3. 既存のグローバル要素を選択するか、**Search**​ 操作用に新しい要素を作成します。
4. \[Search\] プロパティウィンドウで以下を行います。
    
    - **\[Key (キー)\]**​ 項目で `Employee_BASIC`​ を選択します。
    - **\[Page Size (ページサイズ)\]**​ 項目値を `10`​ ～ `1000`​ の整数値に設定します。

### [](#最初の-transform-message-コンポーネントを追加する-2)最初の \[Transform Message\] コンポーネントを追加する

この **\[Transform Message\]**​ コンポーネントには、フローの検索条件が含まれています。

1. **\[Mule Palette (Mule パレット)\]**​ ビューから、**\[Transform Message\]**​ コンポーネントを **\[Search\]**​ の左側にドラッグします。
2. **\[Transform Message\]**​ コンポーネントの名前を `Search Criteria`​ に変更します。
3. **\[Transform Message\]**​ コンポーネントをクリックします。
    
    **\[Output (出力)\]**​ 列には **EmployeeSearchBasic**​ オブジェクトのメタデータが表示されます。
4. メタデータの **isInactive**​ オブジェクトで、**\[searchValue\]**​ 項目をダブルクリックして、その値を `attributes.queryParams["isInactive"]`​ に設定します。
    
    この値により、非アクティブな従業員アカウントを検索するようコネクタに指示されます。
5. **lastName**​ オブジェクトで以下を行います。
    
    - **\[operator (演算子)\]**​ 項目をダブルクリックして、その値を `STARTS_WITH`​ に設定します。
    - **\[searchValue\]**​ 項目をダブルクリックして、その値を `attributes.queryParams["lastName"]`​ に設定します。
        
        この値により、従業員の姓を検索するようコネクタに指示されます。

DataWeave コードは次のようになります。

```dataweave
%dw 2.0
output application/java
---
{
	isInactive: {
		searchValue: attributes.queryParams["isInactive"]
	},
	lastName: {
		operator: "STARTS_WITH",
		searchValue: attributes.queryParams["lastName"]
	}
} as Object {
	class : "org.mule.module.netsuite.extension.api.EmployeeSearchBasic"
}
```

### [](#2-つ目の-transform-message-コンポーネントを追加する-2)2 つ目の \[Transform Message\] コンポーネントを追加する

この **\[Transform Message\]**​ コンポーネントは、応答を JSON 形式に変換します。

1. **\[Mule Palette (Mule パレット)\]**​ ビューから、**\[Transform Message\]**​ コンポーネントを **\[Search\]**​ の右側にドラッグします。
2. 新しい **\[Transform Message\]**​ をクリックして、出力を `application/json`​ に設定します。
    
    ```dataweave
    %dw 2.0
    output application/json
    ---
    payload
    ```

### [](#アプリケーションを実行する-2)アプリケーションを実行する

1. Mule アプリケーションを起動します。
2. `http://localhost:8081/employee?isInactive=false&lastName=A`​ をコールして、姓の先頭が `A`​ である非アクティブな `Employee`​ レコードを取得します。

### [](#従業員の基本検索フローの-xml)従業員の基本検索フローの XML

Studio で次のコードを新しい Mule アプリケーションい貼り付ければ、従業員の基本検索の例のフローをすばやく読み込むことができます。必要に応じて、環境に合わせて値を変更します。

```none
<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
	xmlns:netsuite="http://www.mulesoft.org/schema/mule/netsuite"
	xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core"
	xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/netsuite http://www.mulesoft.org/schema/mule/netsuite/current/mule-netsuite.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd">

    <http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config">
        <http:listener-connection host="0.0.0.0" port="8081"/>
    </http:listener-config>

    <netsuite:config name="NetSuite_Config" doc:name="NetSuite Config">
        <netsuite:login-authentication-connection
    		email="${email}" password="${password}" account="${account}"
    		roleId="${roleId}" applicationId="${applicationId}" />
    </netsuite:config>

    <flow name="netsuite-search-employee">
    		<http:listener doc:name="/employee" config-ref="HTTP_Listener_config"
    			path="/employee" />
    		<ee:transform doc:name="Search Criteria">
    			<ee:message >
    				<ee:set-payload ><![CDATA[%dw 2.0
    output application/java
    ---
    {
    	isInactive: {
    		searchValue: attributes.queryParams["isInactive"]
    	},
    	lastName: {
    		operator: "STARTS_WITH",
    		searchValue: attributes.queryParams["lastName"]
    	}
    } as Object {
    	class : "org.mule.module.netsuite.extension.api.EmployeeSearchBasic"
    }]]></ee:set-payload>
    			</ee:message>
    		</ee:transform>
    		<netsuite:search doc:name="Search Employee"config-ref="NetSuite_Config" key="EMPLOYEE_BASIC" pageSize="10" />
    		<ee:transform doc:name="Response to Json">
    			<ee:message >
    				<ee:set-payload ><![CDATA[%dw 2.0
    output application/json
    ---
    payload]]></ee:set-payload>
    			</ee:message>
    		</ee:transform>
    	</flow>
</mule>
```

## [](#customer-advanced-search)Date (日付) 項目および Array (配列) 項目による顧客の詳細検索の絞り込み

この例では、`Search`​ 操作を使用して、2015 年以降に作成されて `LEAD`​ フェーズにある顧客レコードを取得する方法を示します。

この例では、少なくとも 1 件の顧客レコードが NetSuite インスタンスの検索条件を満たしている必要があります。

次のスクリーンショットは、この例の Studio アプリケーションフローを示しています。

![顧客の詳細検索の例のアプリケーションフロー](/mulesoft/current/ja-jp/netsuite-connector/9.3/_images/netsuite-examples-search-customer.png)

Figure 3. Studio での顧客の詳細検索アプリケーションフロー

この例を作成するには、新規 Mule プロジェクトを作成し、`HTTP Listener`​、NetSuite `Search`​ 操作、3 つの `Transform Message`​ コンポーネント、および `For-Each`​ スコープを設定する必要があります。

### [](#http-リスナーを設定する-3)HTTP リスナーを設定する

ローカルホストポート 8081 で `/customer`​ パスへのコールが行われたときに Mule フローを開始するように HTTP リスナーを設定します。

1. Studio で **\[HTTP\]**​ をクリックし、**\[Listener\]**​ 操作をキャンバスにドラッグします。
2. **Listener**​ 操作の表示名を `/customer`​ に変更します。
3. 既存のグローバル要素を選択するか、**Listener**​ 操作用に新しい要素を作成します。
4. \[Listener\] プロパティウィンドウで、**\[path (パス)\]**​ 項目値を `/customer`​ に設定します。

### [](#netsuite-connector-の-search-操作を追加する-3)NetSuite Connector の Search 操作を追加する

1. **\[Mule Palette (Mule パレット)\]**​ ビューから、**\[NetSuite\]**​ を選択して **\[Search\]**​ 操作を **\[Listener\]**​ の右側にドラッグします。
2. **Search**​ 操作の表示名を `Search Customer Advanced`​ に変更します。
3. 既存のグローバル要素を選択するか、**Search**​ 操作用に新しい要素を作成します。
4. \[Search\] プロパティウィンドウで以下を行います。
    
    - **\[Key (キー)\]**​ 項目で `CUSTOMER_ADVANCED`​ を選択します。
    - **\[Page Size (ページサイズ)\]**​ 項目値を `10`​ ～ `1000`​ の整数値に設定します。

### [](#最初の-transform-message-コンポーネントを追加する-3)最初の \[Transform Message\] コンポーネントを追加する

この **\[Transform Message\]**​ コンポーネントでは、検索結果のカスタム表示ラベルを設定し、フローの検索条件を指定します。

1. **\[Mule Palette (Mule パレット)\]**​ ビューから、**\[Transform Message\]**​ コンポーネントを **\[Search\]**​ の左側にドラッグします。
2. **\[Transform Message\]**​ コンポーネントの名前を `Search Criteria`​ に変更します。
3. **\[Transform Message\]**​ コンポーネントをクリックします。
    
    **\[Output (出力)\]**​ 列には **CustomerSearchAdvanced**​ オブジェクトのメタデータが表示されます。
4. 検索結果の項目を設定する手順は、次のとおりです。
    
    1. **\[CustomerSearchAdvanced\]**​ で、**basic**​ オブジェクトを展開します。
    2. **\[dateCreated\]**​ を展開します。
    3. **\[customLabel\]**​ 項目をダブルクリックして、その値を `"Created"`​ に設定します。
    4. **entityId**​ オブジェクトで、**\[customLabel\]**​ 項目をダブルクリックして、その値を `"Entity ID"`​ に設定します。
    5. **stage**​ オブジェクトで、**\[customLabel\]**​ 項目をダブルクリックして、その値を `Stage`​ に設定します。
5. フローの検索条件を設定する手順は、次のとおりです。
    
    1. **\[CustomerSearchAdvanced\]**​ で、**Criteria**​ オブジェクトを展開します。
    2. **basic**​ オブジェクトを展開します。
    3. **dateCreated**​ オブジェクトで、**\[operator (演算子)\]**​ 項目をダブルクリックして、その値を `"AFTER"`​ に設定します。
    4. **\[searchValue\]**​ 項目をダブルクリックして、その値を `attributes.queryParams["dateCreated"] as LocalDateTime {format: "yyyy-MM-dd HH:mm:ss.SSS"}`​ に設定します。
        
        この設定では、`dateCreated`​ クエリパラメーターの値を `LocalDateTime`​ 形式に変換します。
    5. **stage**​ オブジェクトを展開します。
    6. **\[operator (演算子)\]**​ 項目をダブルクリックして、その値を `"ANY_OF"`​ に設定します。
    7. **\[searchValue\]**​ 項目をダブルクリックして、その値を `[attributes.queryParams["stage"]]`​ に設定します。
        
        この設定では、`stage`​ クエリパラメーターの値を配列項目に変換します。

DataWeave コードは次のようになります。

```dataweave
%dw 2.0
output application/java
---
{
	columns: {
		basic: {
			dateCreated: [{
				customLabel: "Created"
			}],
			entityId: [{
				customLabel: "Entity Id"
			}],
			stage: [{
				customLabel: "Stage"
			}]
		}
	},
	criteria: {
		basic: {
			dateCreated: {
				operator: "AFTER",
				searchValue: attributes.queryParams["dateCreated"] as LocalDateTime {format: "yyyy-MM-dd HH:mm:ss.SSS"}
			},
			stage: {
				operator: "ANY_OF",
				searchValue: [attributes.queryParams["stage"]]
			}
		}
	}
} as Object {
	class : "org.mule.module.netsuite.extension.api.CustomerSearchAdvanced"
}
```

### [](#for-each-スコープを追加する)For Each スコープを追加する

`For-Each`​ スコープは、レコードをコンソールに表示できるように、`Search`​ 操作によって個別に返されるリストの各レコードを処理します。

1. **\[Mule Palette (Mule パレット)\]**​ ビューから、**For-Each**​ スコープを **\[Search\]**​ の右側にドラッグします。
2. **\[Transform Message\]**​ コンポーネントを **\[For Each\]**​ ボックス内にドラッグして、\[Transform Message\] の **\[Output (出力)\]**​ 列の DataWeave コードを次のコードに置き換えます。
    
    ```dataweave
    %dw 2.0
    output application/json
    ---
    {
    	entityId: payload.entityId,
    	dateCreated: payload.dateCreated,
    	stage: payload.stage
    }
    ```
3. **\[Logger\]**​ コンポーネントを **\[Mule Palette (Mule パレット)\]**​ ビューから **\[For Each\]**​ ボックス内の **\[Transform\]**​ の右側にドラッグします。
4. **Logger**​ 操作の表示名を `Log Customer`​ に変更します。
5. \[Logger\] プロパティウィンドウで、**\[Message (メッセージ)\]**​ 項目値を `#[payload]`​ に設定します。

### [](#3-つ目の-transform-message-コンポーネントを追加する)3 つ目の \[Transform Message\] コンポーネントを追加する

この **\[Transform Message\]**​ コンポーネントは、応答を JSON 形式に変換します。

1. **\[Mule Palette (Mule パレット)\]**​ ビューから、別の **\[Transform Message\]**​ コンポーネントを **\[For Each\]**​ の外側のフローの最後にドラッグします。
2. **\[Transform Message\]**​ コンポーネントの名前を `Response to JSON`​ に変更します。
3. 新しい **\[Transform Message\]**​ をクリックして、出力を `application/json`​ に設定します。
    
    ```dataweave
    %dw 2.0
    output application/json
    ---
    payload
    ```
4. Mule アプリケーションを起動します。
5. `http://localhost:8081/customer?dateCreated=2015-02-02%2000:00:00.000&stage=LEAD`​ をコールします。

### [](#顧客の詳細検索フローの-xml)顧客の詳細検索フローの XML

Studio で次のコードを新しい Mule アプリケーションい貼り付ければ、顧客の詳細検索の例のフローをすばやく読み込むことができます。必要に応じて、環境に合わせて値を変更します。

```none
<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
	xmlns:netsuite="http://www.mulesoft.org/schema/mule/netsuite"
	xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core"
	xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/netsuite http://www.mulesoft.org/schema/mule/netsuite/current/mule-netsuite.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd">

    <http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config">
        <http:listener-connection host="0.0.0.0" port="8081"/>
    </http:listener-config>

    <netsuite:config name="NetSuite_Config" doc:name="NetSuite Config">
        <netsuite:login-authentication-connection
    		email="${email}" password="${password}" account="${account}"
    		roleId="${roleId}" applicationId="${applicationId}" />
    </netsuite:config>

    <flow name="netsuite-search-customer-advanced">
    		<http:listener doc:name="/customer" config-ref="HTTP_Listener_config" path="/customer"/>
    		<ee:transform doc:name="Search Criteria">
    			<ee:message>
    				<ee:set-payload><![CDATA[%dw 2.0
    output application/java
    ---
    {
    	columns: {
    		basic: {
    			dateCreated: [{
    				customLabel: "Created"
    			}],
    			entityId: [{
    				customLabel: "Entity Id"
    			}],
    			stage: [{
    				customLabel: "Stage"
    			}]
    		}
    	},
    	criteria: {
    		basic: {
    			dateCreated: {
    				operator: "AFTER",
    				searchValue: attributes.queryParams["dateCreated"] as LocalDateTime {format: "yyyy-MM-dd HH:mm:ss.SSS"}
    			},
    			stage: {
    				operator: "ANY_OF",
    				searchValue: [attributes.queryParams["stage"]]
    			}
    		}
    	}
    } as Object {
    	class : "org.mule.module.netsuite.extension.api.CustomerSearchAdvanced"
    }]]></ee:set-payload>
    			</ee:message>
    		</ee:transform>
    		<netsuite:search key="CUSTOMER_ADVANCED" doc:name="Search Customer Advanced" config-ref="NetSuite_Config" pageSize="10"/>
    		<foreach doc:name="For Each">
    			<ee:transform doc:name="Transform Customer">
    				<ee:message >
    					<ee:set-payload ><![CDATA[%dw 2.0
    output application/json
    ---
    {
    	entityId: payload.entityId,
    	dateCreated: payload.dateCreated,
    	stage: payload.stage
    }]]></ee:set-payload>
    				</ee:message>
    			</ee:transform>
    			<logger level="INFO" doc:name="Logger Customer" message="#[payload]"/>
    		</foreach>
    		<ee:transform doc:name="Response to Json">
    			<ee:message >
    				<ee:set-payload ><![CDATA[%dw 2.0
    output application/json
    ---
    payload]]></ee:set-payload>
    			</ee:message>
    		</ee:transform>
    	</flow>
</mule>
```

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

- [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors)
- [MuleSoft ヘルプセンター](https://help.mulesoft.com)