NetSuite OpenAir 2.0 の例 - Mule 4

この例は、同じ要求を使用して NetSuite OpenAir インスタンスで 2 人の顧客の追加、変更、参照、削除を行う方法を示しています。この例には次の 5 つのフローが含まれます。

  1. 最初のフローでは、入力のテンプレートを設定します。

  2. 2 番目のフローでは、入力から 2 人の顧客を追加します。

  3. 3 番目のフローでは、2 人の顧客の顧客情報を変更します。

  4. 4 番目のフローでは、2 人の顧客の変更済みの顧客情報を取得します。

  5. 5 番目のフローでは、2 人の顧客を削除します。

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

Anypoint Studio の 5 つのフロー

最初のフローの作成

最初のフローでは、後で 2 人の顧客の追加、変更、参照、削除を行う際に使用する入力の HTML テンプレートを設定します。このフローを設定するには、新しい Mule プロジェクトの作成、HTTP ​Listener​ ソースの設定、​[Parse Template]​ コンポーネントの追加を行う必要があります。

HTTP Listener ソースの設定

デフォルトパス (​/​) へのコールが行われたときに Mule フローを開始するように HTTP ​Listener​ ソースを設定します。

  1. Studio で新しい Mule プロジェクトを作成します。

  2. [Mule Palette (Mule パレット)]​ ビューから、​[HTTP]​ を選択して ​[Listener]​ ソースをキャンバスにドラッグします。

  3. プロパティウィンドウで、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[+]​ をクリックしてグローバル要素を追加します。

  4. [Display Name (表示名)]​ 項目に、「​Listener​」と入力し、デフォルト値を受け入れます。

Parse Template コンポーネントを追加する

[Parse Template]​ コンポーネントを追加して、メインリソースフォルダーにある HTML フォーム (​form.html​) のテンプレートを作成します。この例ではこのフォームを使用して後で 2 人の顧客の追加、変更、参照、削除を行います。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Core (コア)]​ を選択して ​[Parse Template]​ コンポーネントを ​[Listener]​ ソースの横にドラッグします。

  2. [Location (場所)]​ 項目に「​form.html​」と入力します。

2 番目のフローの作成

2 番目のフローでは、顧客名と会社の入力値から 2 人の顧客を追加します。このフローを設定するには、HTTP ​Listener​ ソースの設定、​[Logger]​ コンポーネントの追加、​[Transform Message]​ コンポーネントの追加、​Add​ 操作の追加、別の ​[Transform Message]​ コンポーネントの追加、別の ​[Logger]​ コンポーネントの追加を行う必要があります。

HTTP Listener ソースの設定

/add​ パスへのコールが行われたときに Mule フローを開始するように HTTP ​Listener​ ソースを設定します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[HTTP]​ を選択して ​[Listener]​ ソースをキャンバスにドラッグします。

  2. プロパティウィンドウで、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[+]​ をクリックしてグローバル要素を追加します。

  3. [Display Name (表示名)]​ 項目に、「​Listener​」と入力します。

  4. [Path (パス)]​ 項目に、「​/add​」と入力します。

Logger コンポーネントを追加する

ペイロードのログを記録するために ​[Logger]​ コンポーネントを追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Core (コア)]​ を選択して ​[Logger]​ コンポーネントを ​[Listener]​ ソースの横にドラッグします。

  2. [Message (メッセージ)]​ 項目に、「​payload​」と入力します。

[Transform Message] コンポーネントを追加する

2 人の顧客の顧客名と会社の入力値を XML に変換して後で追加できるようにするために ​[Transform Message]​ コンポーネントを追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Core (コア)]​ を選択して ​[Transform Message]​ コンポーネントを ​[Logger]​ コンポーネントの横にドラッグします。

  2. プロパティウィンドウで、​[Output (出力)]​ セクションの括弧を次の DataWeave コードで上書きします。

    %dw 2.0
    output application/xml
    ns ns0 http://namespaces.soaplite.com/perl
    ---
    {
    	ArrayOfoaBase: {
    		oaBase: {
    			ns0#oaCustomer: {
    				name: payload.customerName_1,
             		company: payload.customerCompany_1
    			},
    			ns0#oaCustomer: {
    				name: payload.customerName_2,
    				company: payload.customerCompany_2
    			}
    		}
    	}
    }
    dataweave

Add 操作を追加する

2 人の顧客を追加するために ​Add​ 操作を追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[NetSuite OpenAir]​ を選択して ​[Add]​ 操作を ​[Transform Message]​ コンポーネントの横にドラッグします。

  2. プロパティウィンドウで、次の項目を入力します。

    項目

    oaObject

    oaCustomer

    Request (要求)

    payload

別の [Transform Message] コンポーネントを追加する

2 人の顧客の顧客名と会社の入力値を JSON に変換するために別の ​[Transform Message]​ コンポーネントを追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Core (コア)]​ を選択して ​[Transform Message]​ コンポーネントを ​[Add]​ 操作の横にドラッグします。

  2. プロパティウィンドウで、​[Output (出力)]​ セクションの括弧を次の DataWeave コードで上書きします。

    %dw 2.0
    output application/json
    ns ns0 http://namespaces.soaplite.com/perl
    ---
    {
    	customerID_1: payload.ns0#ArrayOfUpdateResult.*updateResult[0].id,
    	customerID_2: payload.ns0#ArrayOfUpdateResult.*updateResult[1].id
    }
    dataweave

別の [Logger] コンポーネントを追加する

ペイロードのログを記録するために別の ​[Logger]​ コンポーネントを追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Core (コア)]​ を選択して ​[Logger]​ コンポーネントを ​[Transform Message]​ コンポーネントの横にドラッグします。

  2. [Message (メッセージ)]​ 項目に、「​payload​」と入力します。

3 つ目のフローを作成する

3 番目のフローでは、2 人の顧客の顧客情報を変更します。このフローを設定するには、HTTP ​Listener​ ソースの設定、​[Logger]​ コンポーネントの追加、​[Transform Message]​ コンポーネントの追加、​Modify​ 操作の追加、別の ​[Transform Message]​ コンポーネントの追加、別の ​[Logger]​ コンポーネントの追加を行う必要があります。

HTTP Listener ソースの設定

/modify​ パスへのコールが行われたときに Mule フローを開始するように HTTP ​Listener​ ソースを設定します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[HTTP]​ を選択して ​[Listener]​ ソースをキャンバスにドラッグします。

  2. プロパティウィンドウで、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[+]​ をクリックしてグローバル要素を追加します。

  3. [Display Name (表示名)]​ 項目に、「​Listener​」と入力します。

  4. [Path (パス)]​ 項目に、「​/modify​」と入力します。

Logger コンポーネントを追加する

ペイロードのログを記録するために ​[Logger]​ コンポーネントを追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Core (コア)]​ を選択して ​[Logger]​ コンポーネントを ​[Listener]​ ソースの横にドラッグします。

  2. [Message (メッセージ)]​ 項目に、「​payload​」と入力します。

[Transform Message] コンポーネントを追加する

2 人の顧客の顧客名と会社の入力値を XML に変換して後で変更できるようにするために ​[Transform Message]​ コンポーネントを追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Core (コア)]​ を選択して ​[Transform Message]​ コンポーネントを ​[Logger]​ コンポーネントの横にドラッグします。

  2. プロパティウィンドウで、​[Output (出力)]​ セクションの括弧を次の DataWeave コードで上書きします。

    %dw 2.0
    output application/xml
    ns ns0 http://namespaces.soaplite.com/perl
    ---
    //Some output fields where skipped as the structure is too deep (more than 2 levels).
    //To add missing fields click on the scaffold icon (second on the toolbar).
    {
    	modifyRequest: {
    		ArrayOfoaBase: {
    			oaBase : {
    				ns0#oaCustomer: {
    					id: payload.modifyCustomerID_1,
    					name: payload.modifyCustomerName_1,
    					company: payload.modifyCustomerCompany_1
    				},
    				ns0#oaCustomer: {
    					id: payload.modifyCustomerID_2,
    					name: payload.modifyCustomerName_2,
    					company: payload.modifyCustomerCompany_2
    				}
    			}
    		}
    
    	}
    }
    dataweave

Modify 操作を追加する

2 人の顧客の顧客情報を変更するために、​Modify​ 操作を追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[NetSuite OpenAir]​ を選択して ​[Modify]​ 操作を ​[Transform Message]​ コンポーネントの横にドラッグします。

  2. プロパティウィンドウで、次の項目を入力します。

    項目

    oaObject

    oaCustomer

    Request (要求)

    payload

別の [Transform Message] コンポーネントを追加する

2 人の顧客の変更済みの顧客名と会社の値を JSON に変換するために別の ​[Transform Message]​ コンポーネントを追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Core (コア)]​ を選択して ​[Transform Message]​ コンポーネントを ​[Modify]​ 操作の横にドラッグします。

  2. プロパティウィンドウで、​[Output (出力)]​ セクションの括弧を次の DataWeave コードで上書きします。

    %dw 2.0
    output application/json
    ns ns0 http://namespaces.soaplite.com/perl
    ---
    {
    	customerID_1: payload.ns0#ArrayOfUpdateResult.*updateResult[0].id,
    	customerStatus_1: payload.ns0#ArrayOfUpdateResult.*updateResult[0].status,
    	customerID_2: payload.ns0#ArrayOfUpdateResult.*updateResult[1].id,
    	customerStatus_2: payload.ns0#ArrayOfUpdateResult.*updateResult[1].status
    }
    dataweave

別の [Logger] コンポーネントを追加する

ペイロードのログを記録するために別の ​[Logger]​ コンポーネントを追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Core (コア)]​ を選択して ​[Logger]​ コンポーネントを ​[Transform Message]​ コンポーネントの横にドラッグします。

  2. [Message (メッセージ)]​ 項目に、「​payload​」と入力します。

4 番目のフローの作成

4 番目のフローでは、2 人の顧客の変更済みの顧客情報を取得します。このフローを設定するには、HTTP ​Listener​ ソースの設定、​[Logger]​ コンポーネントの追加、​[Transform Message]​ コンポーネントの追加、​Read​ 操作の追加、別の ​[Transform Message]​ コンポーネントの追加、別の ​[Logger]​ コンポーネントの追加を行う必要があります。

HTTP Listener ソースの設定

/read​ パスへのコールが行われたときに Mule フローを開始するように HTTP ​Listener​ ソースを設定します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[HTTP]​ を選択して ​[Listener]​ ソースをキャンバスにドラッグします。

  2. プロパティウィンドウで、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[+]​ をクリックしてグローバル要素を追加します。

  3. [Display Name (表示名)]​ 項目に、「​Listener​」と入力します。

  4. [Path (パス)]​ 項目に、「​/read​」と入力します。

Logger コンポーネントを追加する

ペイロードのログを記録するために ​[Logger]​ コンポーネントを追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Core (コア)]​ を選択して ​[Logger]​ コンポーネントを ​[Listener]​ ソースの横にドラッグします。

  2. [Message (メッセージ)]​ 項目に、「​payload​」と入力します。

[Transform Message] コンポーネントを追加する

2 人の顧客の顧客名と会社の入力値を XML に変換して後で参照できるようにするために ​[Transform Message]​ コンポーネントを追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Core (コア)]​ を選択して ​[Transform Message]​ コンポーネントを ​[Logger]​ コンポーネントの横にドラッグします。

  2. プロパティウィンドウで、​[Output (出力)]​ セクションの括弧を次の DataWeave コードで上書きします。

Read 操作を追加する

2 人の顧客の変更済みの顧客情報を取得するために、​Read​ 操作を追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[NetSuite OpenAir]​ を選択して ​[Read]​ 操作を ​[Transform Message]​ コンポーネントの横にドラッグします。

  2. プロパティウィンドウで、次の項目を入力します。

    項目

    oaObject

    oaCustomer

    Request (要求)

    payload

別の [Transform Message] コンポーネントを追加する

2 人の顧客の変更済みの顧客名と会社の値を JSON に変換するために別の ​[Transform Message]​ コンポーネントを追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Core (コア)]​ を選択して ​[Transform Message]​ コンポーネントを ​[Read]​ 操作の横にドラッグします。

  2. プロパティウィンドウで、​[Output (出力)]​ セクションの括弧を次の DataWeave コードで上書きします。

    %dw 2.0
    output application/json
    ns ns0 http://namespaces.soaplite.com/perl
    ---
    {
    	customerID_1: payload.ns0#ArrayOfReadResult.*readResult[0].objects.oaBase.oaCustomer.id,
    	customerName_1: payload.ns0#ArrayOfReadResult.*readResult[0].objects.oaBase.oaCustomer.name,
    	customerCompany_1: payload.ns0#ArrayOfReadResult.*readResult[0].objects.oaBase.oaCustomer.company,
    
    	customerID_2: payload.ns0#ArrayOfReadResult.*readResult[1].objects.oaBase.oaCustomer.id,
    	customerName_2: payload.ns0#ArrayOfReadResult.*readResult[1].objects.oaBase.oaCustomer.name,
    	customerCompany_2: payload.ns0#ArrayOfReadResult.*readResult[1].objects.oaBase.oaCustomer.company
    }
    dataweave

別の [Logger] コンポーネントを追加する

ペイロードのログを記録するために別の ​[Logger]​ コンポーネントを追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Core (コア)]​ を選択して ​[Logger]​ コンポーネントを ​[Transform Message]​ コンポーネントの横にドラッグします。

  2. [Message (メッセージ)]​ 項目に、「​payload​」と入力します。

5 番目のフローの作成

5 番目のフローでは、2 人の顧客の顧客情報を削除します。このフローを設定するには、HTTP ​Listener​ ソースの設定、​[Logger]​ コンポーネントの追加、​[Transform Message]​ コンポーネントの追加、​Delete​ 操作の追加、別の ​[Transform Message]​ コンポーネントの追加、別の ​[Logger]​ コンポーネントの追加を行う必要があります。

HTTP Listener ソースの設定

/delete​ パスへのコールが行われたときに Mule フローを開始するように HTTP ​Listener​ ソースを設定します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[HTTP]​ を選択して ​[Listener]​ ソースをキャンバスにドラッグします。

  2. プロパティウィンドウで、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[+]​ をクリックしてグローバル要素を追加します。

  3. [Display Name (表示名)]​ 項目に、「​Listener​」と入力します。

  4. [Path (パス)]​ 項目に、「​/delete​」と入力します。

Logger コンポーネントを追加する

ペイロードのログを記録するために ​[Logger]​ コンポーネントを追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Core (コア)]​ を選択して ​[Logger]​ コンポーネントを ​[Listener]​ ソースの横にドラッグします。

  2. [Message (メッセージ)]​ 項目に、「​payload​」と入力します。

[Transform Message] コンポーネントを追加する

2 人の顧客の顧客名と会社の入力値を XML に変換して後で削除できるようにするために ​[Transform Message]​ コンポーネントを追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Core (コア)]​ を選択して ​[Transform Message]​ コンポーネントを ​[Logger]​ コンポーネントの横にドラッグします。

  2. プロパティウィンドウで、​[Output (出力)]​ セクションの括弧を次の DataWeave コードで上書きします。

    %dw 2.0
    output application/xml
    ns ns0 http://namespaces.soaplite.com/perl
    ---
    {
    	ArrayOfoaBase: {
    		oaBase: {
    			ns0#oaCustomer: {
    				id: payload.deleteCustomerID_1
    			},
    			ns0#oaCustomer: {
    				id: payload.deleteCustomerID_2
    			}
    		}
    	}
    }
    dataweave

Delete 操作を追加する

2 人の顧客の顧客情報を削除するために、​Delete​ 操作を追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[NetSuite OpenAir]​ を選択して ​[Delete]​ 操作を ​[Transform Message]​ コンポーネントの横にドラッグします。

  2. プロパティウィンドウで、次の項目を入力します。

    項目

    oaObject

    oaCustomer

    Request (要求)

    payload

別の [Transform Message] コンポーネントを追加する

2 人の顧客の顧客名と会社の値を JSON に変換するために別の ​[Transform Message]​ コンポーネントを追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Core (コア)]​ を選択して ​[Transform Message]​ コンポーネントを ​[Delete]​ 操作の横にドラッグします。

  2. プロパティウィンドウで、​[Output (出力)]​ セクションの括弧を次の DataWeave コードで上書きします。

    %dw 2.0
    output application/json
    ns ns0 http://namespaces.soaplite.com/perl
    ---
    {
    	Status1: payload.ns0#ArrayOfUpdateResult.*updateResult[0].status,
    	Status2: payload.ns0#ArrayOfUpdateResult.*updateResult[1].status
    }
    dataweave

別の [Logger] コンポーネントを追加する

ペイロードのログを記録するために別の ​[Logger]​ コンポーネントを追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Core (コア)]​ を選択して ​[Logger]​ コンポーネントを ​[Transform Message]​ コンポーネントの横にドラッグします。

  2. [Message (メッセージ)]​ 項目に、「​payload​」と入力します。

例の XML

この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。