Flex Gateway新着情報
Governance新着情報
Monitoring API Manager次の例は、NetSuite 用 Anypoint Connector C (NetSuite Connector) で検索を実行する方法を示しています。
この例では、NetSuite Connector Search 操作を使用して、内部 ID が query パラメーターの値未満のアカウントレコードを取得する方法を示します。
この例では、少なくとも 1 件の基本アカウントが NetSuite インスタンスの検索条件を満たしている必要があります。
次のスクリーンショットは、この例の Studio アプリケーションフローを示しています。
この例を作成するには、新規 Mule プロジェクトを作成し、HTTP Listener、NetSuite Connector Search 操作、および 2 つの Transform Message コンポーネントを設定する必要があります。
ローカルホストポート 8081 で /account パスへのコールが行われたときに Mule フローを開始するように HTTP リスナーを設定します。
Studio で新しい Mule プロジェクトを作成します。
Studio で [HTTP] をクリックし、[Listener] 操作をキャンバスにドラッグします。
Listener 操作の表示名を /account に変更します。
[Listener] プロパティウィンドウで、[Connector configuration (コネクタ設定)] 項目の横にある [+] をクリックしてグローバル要素を追加します。
デフォルトを受け入れます。
[Listener] プロパティウィンドウで、[Path (パス)] 項目値を /account に設定します。
[Mule Palette (Mule パレット)] ビューから、[NetSuite] を選択して [Search] 操作を [Listener] の右側にドラッグします。
Search 操作の表示名を Search Account に変更します。
[Search] プロパティウィンドウで、[Connector configuration (コネクタ設定)] 項目の横にある [+] をクリックしてグローバル要素を追加します。
デフォルトを受け入れます。
[Search] プロパティウィンドウで以下を行います。
[Key (キー)] 項目で ACCOUNT_BASIC を選択します。
[Page Size (ページサイズ)] 項目値を 10 ~ 1000 の整数値に設定します。
この [Transform Message] コンポーネントには、フローの検索条件が含まれています。
[Mule Palette (Mule パレット)] ビューから、[Transform Message] コンポーネントを [Search] の左側にドラッグします。
[Transform Message] コンポーネントの名前を Search Criteria に変更します。
[Transform Message] コンポーネントをクリックします。
[Output (出力)] 列には AccountSearchBasic オブジェクトのメタデータが表示されます。
メタデータの internalid オブジェクトで以下を行います。
[operator (演算子)] 項目をダブルクリックして、その値を "LESS_THAN" に設定します。
[searchValue] 項目をダブルクリックして、その値を attributes.queryParams["internalId"] に設定します。
[searchValue] 項目値を attributes.queryParams["internalId"] に設定すると、検索条件として internalId クエリパラメーターの値を使用するようコネクタに指示されます。
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"
}
この [Transform Message] コンポーネントは、応答を JSON 形式に変換します。
[Mule Palette (Mule パレット)] ビューから、[Transform Message] コンポーネントを [Search] の右側にドラッグします。
[Transform Message] コンポーネントの名前を Response to JSON に変更します。
新しい [Transform Message] コンポーネントをクリックして、出力を application/json に設定します。
%dw 2.0
output application/json
---
payload
アプリケーションを実行する手順は、次のとおりです。
Mule アプリケーションを起動します。
http://localhost:8081/account?internalId=5 をコールして、内部 ID が 5 未満の Account レコードを取得します。
Studio で次のコードを新しい Mule アプリケーションい貼り付ければ、アカウントの基本検索の例のフローをすばやく読み込むことができます。必要に応じて、環境に合わせて値を変更します。
<?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:request-based-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>
この例では、Search 操作を使用して、姓の先頭が指定した文字である非アクティブな Employee レコードを取得する方法を示します。
この例では、NetSuite インスタンスの少なくとも 1 件の従業員レコードが検索条件を満たしている必要があります。
次のスクリーンショットは、従業員の基本検索の例の Studio アプリケーションフローを示しています。
この例を作成するには、新規 Mule プロジェクトを作成し、HTTP Listener、NetSuite Connector Search 操作、および 2 つの Transform Message コンポーネントを設定する必要があります。
ローカルホストポート 8081 で /employee パスへのコールが行われたときに Mule フローを開始するように HTTP リスナーを設定します。
Studio で [HTTP] をクリックし、[Listener] 操作をキャンバスにドラッグします。
Listener 操作の表示名を /employee に変更します。
既存のグローバル要素を選択するか、HTTP Listener 用に新しい要素を作成してデフォルトを保持します。
[Listener] プロパティウィンドウで、[Path (パス)] 項目値を /employee に設定します。
[Mule Palette (Mule パレット)] ビューから、[NetSuite] を選択して [Search] 操作を [HTTP Listener] の右側にドラッグします。
Search 操作の表示名を Search Employee に変更します。
既存のグローバル要素を選択するか、Search 操作用に新しい要素を作成します。
[Search] プロパティウィンドウで以下を行います。
[Key (キー)] 項目で Employee_BASIC を選択します。
[Page Size (ページサイズ)] 項目値を 10 ~ 1000 の整数値に設定します。
この [Transform Message] コンポーネントには、フローの検索条件が含まれています。
[Mule Palette (Mule パレット)] ビューから、[Transform Message] コンポーネントを [Search] の左側にドラッグします。
[Transform Message] コンポーネントの名前を Search Criteria に変更します。
[Transform Message] コンポーネントをクリックします。
[Output (出力)] 列には EmployeeSearchBasic オブジェクトのメタデータが表示されます。
メタデータの isInactive オブジェクトで、[searchValue] 項目をダブルクリックして、その値を attributes.queryParams["isInactive"] に設定します。
この値により、非アクティブな従業員アカウントを検索するようコネクタに指示されます。
lastName オブジェクトで以下を行います。
[operator (演算子)] 項目をダブルクリックして、その値を STARTS_WITH に設定します。
[searchValue] 項目をダブルクリックして、その値を attributes.queryParams["lastName"] に設定します。
この値により、従業員の姓を検索するようコネクタに指示されます。
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"
}
この [Transform Message] コンポーネントは、応答を JSON 形式に変換します。
[Mule Palette (Mule パレット)] ビューから、[Transform Message] コンポーネントを [Search] の右側にドラッグします。
新しい [Transform Message] をクリックして、出力を application/json に設定します。
%dw 2.0
output application/json
---
payload
Mule アプリケーションを起動します。
http://localhost:8081/employee?isInactive=false&lastName=A をコールして、姓の先頭が A である非アクティブな Employee レコードを取得します。
Studio で次のコードを新しい Mule アプリケーションい貼り付ければ、従業員の基本検索の例のフローをすばやく読み込むことができます。必要に応じて、環境に合わせて値を変更します。
<?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:request-based-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>
この例では、Search 操作を使用して、2015 年以降に作成されて LEAD フェーズにある顧客レコードを取得する方法を示します。
この例では、少なくとも 1 件の顧客レコードが NetSuite インスタンスの検索条件を満たしている必要があります。
次のスクリーンショットは、この例の Studio アプリケーションフローを示しています。
この例を作成するには、新規 Mule プロジェクトを作成し、HTTP Listener、NetSuite Search 操作、3 つの Transform Message コンポーネント、および For-Each スコープを設定する必要があります。
ローカルホストポート 8081 で /customer パスへのコールが行われたときに Mule フローを開始するように HTTP リスナーを設定します。
Studio で [HTTP] をクリックし、[Listener] 操作をキャンバスにドラッグします。
Listener 操作の表示名を /customer に変更します。
既存のグローバル要素を選択するか、Listener 操作用に新しい要素を作成します。
[Listener] プロパティウィンドウで、[path (パス)] 項目値を /customer に設定します。
[Mule Palette (Mule パレット)] ビューから、[NetSuite] を選択して [Search] 操作を [Listener] の右側にドラッグします。
Search 操作の表示名を Search Customer Advanced に変更します。
既存のグローバル要素を選択するか、Search 操作用に新しい要素を作成します。
[Search] プロパティウィンドウで以下を行います。
[Key (キー)] 項目で CUSTOMER_ADVANCED を選択します。
[Page Size (ページサイズ)] 項目値を 10 ~ 1000 の整数値に設定します。
この [Transform Message] コンポーネントでは、検索結果のカスタム表示ラベルを設定し、フローの検索条件を指定します。
[Mule Palette (Mule パレット)] ビューから、[Transform Message] コンポーネントを [Search] の左側にドラッグします。
[Transform Message] コンポーネントの名前を Search Criteria に変更します。
[Transform Message] コンポーネントをクリックします。
[Output (出力)] 列には CustomerSearchAdvanced オブジェクトのメタデータが表示されます。
検索結果の項目を設定する手順は、次のとおりです。
[CustomerSearchAdvanced] で、basic オブジェクトを展開します。
[dateCreated] を展開します。
[customLabel] 項目をダブルクリックして、その値を "Created" に設定します。
entityId オブジェクトで、[customLabel] 項目をダブルクリックして、その値を "Entity ID" に設定します。
stage オブジェクトで、[customLabel] 項目をダブルクリックして、その値を Stage に設定します。
フローの検索条件を設定する手順は、次のとおりです。
[CustomerSearchAdvanced] で、Criteria オブジェクトを展開します。
basic オブジェクトを展開します。
dateCreated オブジェクトで、[operator (演算子)] 項目をダブルクリックして、その値を "AFTER" に設定します。
[searchValue] 項目をダブルクリックして、その値を attributes.queryParams["dateCreated"] as LocalDateTime {format: "yyyy-MM-dd HH:mm:ss.SSS"} に設定します。
この設定では、dateCreated クエリパラメーターの値を LocalDateTime 形式に変換します。
stage オブジェクトを展開します。
[operator (演算子)] 項目をダブルクリックして、その値を "ANY_OF" に設定します。
[searchValue] 項目をダブルクリックして、その値を [attributes.queryParams["stage"]] に設定します。
この設定では、stage クエリパラメーターの値を配列項目に変換します。
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 スコープは、レコードをコンソールに表示できるように、Search 操作によって個別に返されるリストの各レコードを処理します。
[Mule Palette (Mule パレット)] ビューから、For-Each スコープを [Search] の右側にドラッグします。
[Transform Message] コンポーネントを [For Each] ボックス内にドラッグして、[Transform Message] の [Output (出力)] 列の DataWeave コードを次のコードに置き換えます。
%dw 2.0
output application/json
---
{
entityId: payload.entityId,
dateCreated: payload.dateCreated,
stage: payload.stage
}
[Logger] コンポーネントを [Mule Palette (Mule パレット)] ビューから [For Each] ボックス内の [Transform] の右側にドラッグします。
Logger 操作の表示名を Log Customer に変更します。
[Logger] プロパティウィンドウで、[Message (メッセージ)] 項目値を #[payload] に設定します。
この [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
---
payload
Mule アプリケーションを起動します。
http://localhost:8081/customer?dateCreated=2015-02-02%2000:00:00.000&stage=LEAD をコールします。
Studio で次のコードを新しい Mule アプリケーションい貼り付ければ、顧客の詳細検索の例のフローをすばやく読み込むことができます。必要に応じて、環境に合わせて値を変更します。
<?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:request-based-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>