Flex Gateway新着情報
Governance新着情報
Monitoring API Manager次の例は、NetSuite 用 Anypoint Connector C (NetSuite Connector) で検索を実行する方法を示しています。
Integer (整数) 項目によるアカウントの基本検索の絞り込み
内部 ID が internalId クエリパラメーターの値未満のアカウントレコードを取得します。
Boolean (ブール値) 項目および String (文字列) 項目による従業員の基本検索の絞り込み
姓の先頭が指定した文字である非アクティブな従業員レコードを取得します。
Date (日付) 項目および Array (配列) 項目による顧客の詳細検索の絞り込み
2015 年以降に作成されて LEAD フェーズにある顧客レコードを取得します。
この例では、NetSuite Connector Search 操作を使用して、内部 ID が指定された値未満のアカウントレコードを取得する方法を示します。
この例では、少なくとも 1 件の基本アカウントが NetSuite インスタンスの検索条件を満たしている必要があります。
次のスクリーンショットは、この例の Studio アプリケーションフローを示しています。
この例を作成するには、新規 Mule プロジェクトを作成し、HTTP リスナー、NetSuite Connector Search 操作、1 つの For Each コンポーネント、2 つの Transform Message コンポーネントを設定する必要があります。
ローカルホストポート 8081 で /account パスへのコールが行われたときに Mule フローを開始するように HTTP リスナーを設定します。
Studio で新しい Mule プロジェクトを作成します。
Studio で [HTTP] をクリックし、[Listener] 操作をキャンバスにドラッグします。
Listener 操作の表示名を /account に変更します。
[Listener] プロパティウィンドウで、[Connector configuration (コネクタ設定)] 項目の横にある [+] をクリックしてグローバル要素を追加します。
デフォルトを受け入れます。
[Listener] プロパティウィンドウで、[Path (パス)] 項目値を /account に設定します。
この [Transform Message] コンポーネントには、フローの検索条件が含まれています。
[Mule Palette (Mule パレット)] ビューから、[Transform Message] コンポーネントを [Listener] の右側にドラッグします。
[Transform Message] コンポーネントの名前を Search Criteria に変更します。
[Transform Message] コンポーネントをクリックします。
[Output (出力)] 列には AccountSearchBasic オブジェクトのメタデータが表示されます。そこから条件をビルドアップしたり、以下に表示される条件をコピーしたりできます。
[searchValue] 項目値を attributes.queryParams["internalId"] に設定すると、コネクタはクエリパラメーターでこの値を使用するようになります。
DataWeave コードは次のようになります。
%dw 2.0
output application/xml
ns ns0 urn:messages_2020_2.platform.webservices.netsuite.com
ns ns01 urn:common_2020_2.platform.webservices.netsuite.com
ns ns02 urn:core_2020_2.platform.webservices.netsuite.com
ns xsi http://www.w3.org/2001/XMLSchema-instance
---
{
ns0#search: {
ns0#searchRecord @("xmlns:ns01": ns01, xsi#"type": "ns01:AccountSearchBasic"): {
ns01#internalIdNumber @(operator: "lessThan"): {
ns02#searchValue: attributes.queryParams["internalId"]
}
}
}
}
[Mule Palette (Mule パレット)] ビューから、[NetSuite] を選択して [Search] 操作を [Search Criteria] の右側にドラッグします。
Search 操作の表示名を Search Account に変更します。
既存のグローバル要素を選択するか、Search 操作用に新しい要素を作成します。
[Search] プロパティウィンドウで以下を行います。
[Key (キー)] 項目で AccountSearchBasic を選択します。
[Page Size (ページサイズ)] 項目値を 10 ~ 1000 の整数値に設定します。
[Mule Palette (Mule パレット)] ビューから [Core (コア)] を選択して [For Each] コンポーネントを [Search Account] の右側にドラッグします。
この [Transform Message] コンポーネントは、応答を JSON 形式に変換します。
[Mule Palette (Mule パレット)] ビューから、[Transform Message] コンポーネントを [For Each] 内にドラッグします。
[Transform Message (メッセージの変換)] コンポーネントの名前を Response to JSON に変更します。
新しい [Transform Message] コンポーネントをクリックして、出力を application/json に設定します。
%dw 2.0
output application/json
ns ns0 urn:core_2020_2.platform.webservices.netsuite.com
---
payload.ns0#record
[Mule Palette (Mule パレット)] ビューの [Logger] コンポーネントをドラッグして [Response to JSON] の右側にドロップします。メッセージは #[payload] のままにします。
アプリケーションを実行する手順は、次のとおりです。
Mule アプリケーションを起動します。
http://localhost:8081/account?internalId=5 をコールして、内部 ID が 5 未満の Account レコードを取得します。
出力は、Mule アプリケーションコンソールからのみ確認できます。
Studio で次のコードを新しい Mule アプリケーションい貼り付ければ、アカウントの基本検索の例のフローをすばやく読み込むことができます。必要に応じて、環境に合わせて値を変更します。
<?xml version="1.0" encoding="UTF-8"?>
<mule
xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns:netsuite="http://www.mulesoft.org/schema/mule/netsuite" 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/netsuite http://www.mulesoft.org/schema/mule/netsuite/current/mule-netsuite.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/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="tokenConfig" doc:name="NetSuite SOAP Config">
<netsuite:token-based-authentication-connection consumerKey="${netsuite.consumerKey}" consumerSecret="${netsuite.consumerSecret}" tokenId="${netsuite.tokenId}" tokenSecret="${netsuite.tokenSecret}" account="${netsuite.account}"/>
</netsuite:config>
<flow name="account-basic-search-flow">
<http:listener doc:name="Listener" config-ref="HTTP_Listener_config" path="account">
<http:response statusCode="200" />
</http:listener>
<ee:transform doc:name="Search Criteria">
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/xml
ns ns0 urn:messages_2020_2.platform.webservices.netsuite.com
ns ns01 urn:common_2020_2.platform.webservices.netsuite.com
ns ns02 urn:core_2020_2.platform.webservices.netsuite.com
ns xsi http://www.w3.org/2001/XMLSchema-instance
---
{
ns0#search: {
ns0#searchRecord @("xmlns:ns01": ns01, xsi#"type": "ns01:AccountSearchBasic"): {
ns01#internalIdNumber @(operator: "lessThan"): {
ns02#searchValue: attributes.queryParams["internalId"]
}
}
}
}]]></ee:set-payload>
</ee:message>
</ee:transform>
<netsuite:search doc:name="Search Account" config-ref="tokenConfig" key="AccountSearchBasic">
</netsuite:search>
<foreach doc:name="For Each">
<ee:transform doc:name="Transform to JSON">
<ee:message>
<ee:set-payload><![CDATA[%dw 2.0
output application/json
ns ns0 urn:core_2020_2.platform.webservices.netsuite.com
---
payload.ns0#record
]]></ee:set-payload>
</ee:message>
</ee:transform>
<logger level="INFO" doc:name="Logger" message="#[payload]"/>
</foreach>
</flow>
</mule>
この例では、Search 操作を使用して、姓の先頭が指定した文字である非アクティブな Employee レコードを取得する方法を示します。
この例では、NetSuite インスタンスの少なくとも 1 件の従業員レコードが検索条件を満たしている必要があります。
次のスクリーンショットは、従業員の基本検索の例の Studio アプリケーションフローを示しています。
この例を作成するには、新規 Mule プロジェクトを作成し、HTTP リスナー、NetSuite Connector Search 操作、1 つの For Each コンポーネント、2 つの Transform Message コンポーネントを設定する必要があります。
ローカルホストポート 8081 で /employee パスへのコールが行われたときに Mule フローを開始するように HTTP リスナーを設定します。
Studio で [HTTP] をクリックし、[Listener] 操作をキャンバスにドラッグします。
Listener 操作の表示名を /employee に変更します。
既存のグローバル要素を選択するか、HTTP Listener 用に新しい要素を作成してデフォルトを保持します。
[Listener] プロパティウィンドウで、[Path (パス)] 項目値を /employee に設定します。
この [Transform Message] コンポーネントには、フローの検索条件が含まれています。
[Mule Palette (Mule パレット)] ビューから、[Transform Message] コンポーネントを [Listener] の右側にドラッグします。
[Transform Message (メッセージの変換)] コンポーネントの名前を Search Criteria に変更します。
[Transform Message] コンポーネントをクリックします。
[Output (出力)] 列には AccountSearchBasic オブジェクトのメタデータが表示されます。そこから条件をビルドアップしたり、以下の条件をコピーしたりできます。
値を attributes.queryParams["isInactive"] に設定すると、コネクタは非アクティブな従業員アカウントを検索するようになり、値を attributes.queryParams["lastName"] に設定すると、コネクタは姓の先頭が指定された値である従業員を検索するようになります。
DataWeave コードは次のようになります。
%dw 2.0
output application/xml
ns ns0 urn:messages_2020_2.platform.webservices.netsuite.com
ns ns01 urn:common_2020_2.platform.webservices.netsuite.com
ns ns02 urn:core_2020_2.platform.webservices.netsuite.com
ns xsi http://www.w3.org/2001/XMLSchema-instance
---
{
ns0#search: {
ns0#searchRecord @("xmlns:ns01": ns01, xsi#"type": "ns01:EmployeeSearchBasic"): {
ns01#lastName @(operator: "startsWith"): {
ns02#searchValue: attributes.queryParams["lastName"]
},
ns01#isInactive: {
ns02#searchValue: attributes.queryParams["isInactive"]
}
}
}
}
[Mule Palette (Mule パレット)] ビューから、[NetSuite] を選択して [Search] 操作を [Search Criteria] の右側にドラッグします。
Search 操作の表示名を Search Employee に変更します。
既存のグローバル要素を選択するか、Search 操作用に新しい要素を作成します。
[Search] プロパティウィンドウで以下を行います。
[Key (キー)] 項目で EmployeeSearchBasic を選択します。
[Page Size (ページサイズ)] 項目値を 10 ~ 1000 の整数値に設定します。
[Mule Palette (Mule パレット)] ビューから [Core (コア)] を選択して [For Each] コンポーネントを [Search Employee] の右側にドラッグします。
この [Transform Message] コンポーネントは、応答を JSON 形式に変換します。
[Mule Palette (Mule パレット)] ビューから、[Transform Message] コンポーネントを [For Each] 内にドラッグします。
[Transform Message (メッセージの変換)] コンポーネントの名前を Response to JSON に変更します。
新しい [Transform Message] コンポーネントをクリックして、出力を application/json に設定します。
%dw 2.0
output application/json
ns ns0 urn:core_2020_2.platform.webservices.netsuite.com
---
payload.ns0#record
[Mule Palette (Mule パレット)] ビューの [Logger] コンポーネントをドラッグして [Response to JSON] の右側にドロップします。 メッセージは #[payload] になります。
Mule アプリケーションを起動します。
http://localhost:8081/employee?isInactive=true&lastName=C をコールして、姓の先頭が C である非アクティブな Employee レコードを取得します。
出力は、Mule アプリケーションコンソールからのみ確認できます。
Studio で次のコードを新しい Mule アプリケーションい貼り付ければ、従業員の基本検索の例のフローをすばやく読み込むことができます。必要に応じて、環境に合わせて値を変更します。
<?xml version="1.0" encoding="UTF-8"?>
<mule
xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns:netsuite="http://www.mulesoft.org/schema/mule/netsuite" 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/netsuite http://www.mulesoft.org/schema/mule/netsuite/current/mule-netsuite.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/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="tokenConfig" doc:name="NetSuite SOAP Config">
<netsuite:token-based-authentication-connection consumerKey="${netsuite.consumerKey}" consumerSecret="${netsuite.consumerSecret}" tokenId="${netsuite.tokenId}" tokenSecret="${netsuite.tokenSecret}" account="${netsuite.account}"/>
</netsuite:config>
<flow name="employee-basic-search-flow">
<http:listener doc:name="Listener" config-ref="HTTP_Listener_config" path="employee"/>
<ee:transform doc:name="Search Criteria">
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/xml
ns ns0 urn:messages_2020_2.platform.webservices.netsuite.com
ns ns01 urn:common_2020_2.platform.webservices.netsuite.com
ns ns02 urn:core_2020_2.platform.webservices.netsuite.com
ns xsi http://www.w3.org/2001/XMLSchema-instance
---
{
ns0#search: {
ns0#searchRecord @("xmlns:ns01": ns01, xsi#"type": "ns01:EmployeeSearchBasic"): {
ns01#lastName @(operator: "startsWith"): {
ns02#searchValue: attributes.queryParams["lastName"]
},
ns01#isInactive: {
ns02#searchValue: attributes.queryParams["isInactive"]
}
}
}
}
]]></ee:set-payload>
</ee:message>
</ee:transform>
<netsuite:search doc:name="Search Employee" config-ref="tokenConfig" key="EmployeeSearchBasic"/>
<foreach doc:name="For Each">
<ee:transform doc:name="Transform to JSON">
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/json
ns ns0 urn:core_2020_2.platform.webservices.netsuite.com
---
payload.ns0#record
]]></ee:set-payload>
</ee:message>
</ee:transform>
<logger level="INFO" doc:name="Logger" message="#[payload]" />
</foreach>
</flow>
</mule>
この例では、Search 操作を使用して、2015 年以降に作成されて LEAD フェーズにある顧客レコードを取得する方法を示します。
この例では、少なくとも 1 件の顧客レコードが NetSuite インスタンスの検索条件を満たしている必要があります。
次のスクリーンショットは、この例の Studio アプリケーションフローを示しています。
この例を作成するには、新規 Mule プロジェクトを作成し、HTTP リスナー、NetSuite Search 操作、2 つの Transform Message コンポーネント、および For-Each コンポーネントを設定する必要があります。
ローカルホストポート 8081 で /customer パスへのコールが行われたときに Mule フローを開始するように HTTP リスナーを設定します。
Studio で [HTTP] をクリックし、[Listener] 操作をキャンバスにドラッグします。
Listener 操作の表示名を /customer に変更します。
既存のグローバル要素を選択するか、Listener 操作用に新しい要素を作成します。
[Listener] プロパティウィンドウで、[path (パス)] 項目値を /customer に設定します。
この [Transform Message] コンポーネントでは、フローの検索条件を指定します。
[Mule Palette (Mule パレット)] ビューから、[Transform Message] コンポーネントを [Listener] の右側にドラッグします。
[Transform Message (メッセージの変換)] コンポーネントの名前を Search Criteria に変更します。
[Transform Message] コンポーネントをクリックします。
[Output (出力)] 列には CustomerSearchAdvanced オブジェクトのメタデータが表示されます。そこから条件をビルドアップしたり、以下の条件をコピーしたりできます。
stage の searchValue を attributes.queryParams["stage"] に設定すると、コネクタは stage クエリパラメーターの値を使用するようになります。
DataWeave コードは次のようになります。
%dw 2.0
output application/xml
ns ns0 urn:messages_2020_2.platform.webservices.netsuite.com
ns ns01 urn:common_2020_2.platform.webservices.netsuite.com
ns ns02 urn:core_2020_2.platform.webservices.netsuite.com
ns ns03 urn:relationships_2020_2.lists.webservices.netsuite.com
ns xsi http://www.w3.org/2001/XMLSchema-instance
---
{
ns0#search: {
ns0#searchRecord @("xmlns:ns03": ns03, xsi#"type": "ns03:CustomerSearchAdvanced"): {
ns03#criteria: {
ns03#basic: {
ns01#stage @(operator: "anyOf"): {
ns02#searchValue: [attributes.queryParams["stage"]]
},
ns01#dateCreated @(operator: "after"): {
ns02#searchValue: "2015-01-01T00:00:00.000-08:00"
}
}
}
}
}
}
[Mule Palette (Mule パレット)] ビューから、[NetSuite] を選択して [Search] 操作を [Search Criteria] の右側にドラッグします。
Search 操作の表示名を Search Customer Advanced に変更します。
既存のグローバル要素を選択するか、Search 操作用に新しい要素を作成します。
[Search] プロパティウィンドウで以下を行います。
[Key (キー)] 項目で CustomerSearchAdvanced を選択します。
[Page Size (ページサイズ)] 項目値を 10 ~ 1000 の整数値に設定します。
[Search Preferences (検索設定)] をクリックして、[Return search columns (検索列を返す)] で false を選択します。
For-Each コンポーネントは、レコードをコンソールに表示できるように、Search 操作によって個別に返されるリストの各レコードを処理します。
[Mule Palette (Mule パレット)] ビューから、For-Each コンポーネントを [Search] の右側にドラッグします。
[Transform Message] コンポーネントを [For Each] ボックス内にドラッグして、コンポーネントの名前を Response to JSON に変更し、DataWeave コードを次のコードに置き換えます。
%dw 2.0
output application/json
ns ns0 urn:core_2020_2.platform.webservices.netsuite.com
---
payload.ns0#record
[Logger] コンポーネントを [Mule Palette (Mule パレット)] ビューから [For Each] ボックス内の [Transform] の右側にドラッグします。
[Logger] プロパティウィンドウで、[Message (メッセージ)] 項目値を #[payload] に設定します。
Mule アプリケーションを起動します。
http://localhost:8081/customer?stage=LEAD をコールします。
出力は、Mule アプリケーションコンソールからのみ確認できます。
Studio で次のコードを新しい Mule アプリケーションい貼り付ければ、顧客の詳細検索の例のフローをすばやく読み込むことができます。必要に応じて、環境に合わせて値を変更します。
<?xml version="1.0" encoding="UTF-8"?>
<mule
xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns:netsuite="http://www.mulesoft.org/schema/mule/netsuite" 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/netsuite http://www.mulesoft.org/schema/mule/netsuite/current/mule-netsuite.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/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="tokenConfig" doc:name="NetSuite SOAP Config">
<netsuite:token-based-authentication-connection consumerKey="${netsuite.consumerKey}" consumerSecret="${netsuite.consumerSecret}" tokenId="${netsuite.tokenId}" tokenSecret="${netsuite.tokenSecret}" account="${netsuite.account}"/>
</netsuite:config>
<flow name="customer-advanced-search-flow">
<http:listener doc:name="Listener" config-ref="HTTP_Listener_config" path="customer" />
<ee:transform doc:name="Search Criteria">
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/xml
ns ns0 urn:messages_2020_2.platform.webservices.netsuite.com
ns ns01 urn:common_2020_2.platform.webservices.netsuite.com
ns ns02 urn:core_2020_2.platform.webservices.netsuite.com
ns ns03 urn:relationships_2020_2.lists.webservices.netsuite.com
ns xsi http://www.w3.org/2001/XMLSchema-instance
---
{
ns0#search: {
ns0#searchRecord @("xmlns:ns03": ns03, xsi#"type": "ns03:CustomerSearchAdvanced"): {
ns03#criteria: {
ns03#basic: {
ns01#stage @(operator: "anyOf"): {
ns02#searchValue: [attributes.queryParams["stage"]]
},
ns01#dateCreated @(operator: "after"): {
ns02#searchValue: "2015-01-01T00:00:00.000-08:00"
}
}
}
}
}
}]]></ee:set-payload>
</ee:message>
</ee:transform>
<netsuite:search doc:name="Search Customer Advanced" config-ref="tokenConfig" returnSearchColumns="false" key="CustomerSearchAdvanced"/>
<foreach doc:name="For Each">
<ee:transform doc:name="Transform to JSON">
<ee:message>
<ee:set-payload><![CDATA[%dw 2.0
output application/json
ns ns0 urn:core_2020_2.platform.webservices.netsuite.com
---
payload.ns0#record
]]></ee:set-payload>
</ee:message>
</ee:transform>
<logger level="INFO" doc:name="Logger" message="#[payload]" />
</foreach>
</flow>
</mule>