NetSuite OpenAir 2.0 の例

この例は、同じ要求を使用して 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
    			}
    		}
    	}
    }

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
    }

別の [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
    				}
    			}
    		}
    
    	}
    }

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
    }

別の [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 コードで上書きします。

    %dw 2.0
    output application/xml
    ns ns0 http://namespaces.soaplite.com/perl
    ---
    {
    	ns0#ArrayOfReadRequest: {
    		readRequest: {
    			method: "equal to",
    			fields: "id,name,company",
    			"type": "Customer",
    			objects :{
    				oaBase: {
    					oaCustomer: {
    						id: payload.readCustomerID_1
    					}
    				}
    			}
    		},
    
    		readRequest: {
    			method: "equal to",
    			fields: "id,name,company",
    			"type": "Customer",
    			objects :{
    				oaBase: {
    					oaCustomer: {
    						id: payload.readCustomerID_2
    					}
    				}
    			}
    		}
    
    	}
    }

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
    }

別の [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
    			}
    		}
    	}
    }

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
    }

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

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

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

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

例の XML

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

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

<mule xmlns:tracking="http://www.mulesoft.org/schema/mule/ee/tracking" xmlns:openair="http://www.mulesoft.org/schema/mule/openair"
	xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
	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/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/openair http://www.mulesoft.org/schema/mule/openair/current/mule-openair.xsd
http://www.mulesoft.org/schema/mule/ee/tracking http://www.mulesoft.org/schema/mule/ee/tracking/current/mule-tracking-ee.xsd">
	<configuration-properties file="mule-app.properties"/>
	<http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config" doc:id="73024093-eb8a-4f84-ad72-64fef89717c7" >
		<http:listener-connection host="0.0.0.0" port="8081" />
	</http:listener-config>
	<openair:config name="Open_Air_Config" doc:name="Open Air Config" doc:id="25f013ac-3701-466f-8481-ac050e080cb2" >
		<openair:login-authentication-connection company="${config.company}" username="${config.username}" password="${config.password}" apiNamespace="${config.apiNamespace}" apiKey="${config.apiKey}" />
	</openair:config>
	<flow name="openair-connector-add-modify-read-deleteFlow" doc:id="6323ab9b-99e7-4e25-bc1d-e1153f158299" >
		<http:listener doc:name="Listener" doc:id="02cc2682-4ee7-4aa1-94f3-592d4360f807" config-ref="HTTP_Listener_config" path="/"/>
		<parse-template doc:name="Parse Template" doc:id="608f90f9-ae3f-483f-ad59-d7036cb2b5ed" location="form.html"/>
	</flow>
	<flow name="openair-connector-add-modify-read-deleteFlow-Add" doc:id="1b5f6a8d-01a0-438a-9849-613c0f33fbda" >
		<http:listener doc:name="Listener" doc:id="ea825843-a617-435e-86de-15c757765b76" config-ref="HTTP_Listener_config" path="/add"/>
		<logger level="INFO" doc:name="Logger" doc:id="49efe1ad-9c8f-460f-9a34-a25aaa15c286" message="#[payload]"/>
		<ee:transform doc:name="Transform Message" doc:id="00bfea96-207d-45af-b1b9-b455f048471b" >
			<ee:message >
				<ee:set-payload ><![CDATA[%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
			}
		}
	}
}]]></ee:set-payload>
			</ee:message>
			<ee:variables >
			</ee:variables>
		</ee:transform>
		<openair:add doc:name="Add" doc:id="177d9d3f-d82a-4411-b34a-a810345dbf25" config-ref="Open_Air_Config" oaObject="oaCustomer">
		</openair:add>
		<ee:transform doc:name="Transform Message" doc:id="80578431-28e8-41cf-ac92-caf611aba0db" >
			<ee:message >
				<ee:set-payload ><![CDATA[%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
}]]></ee:set-payload>
			</ee:message>
		</ee:transform>
		<logger level="INFO" doc:name="Logger" doc:id="b2e56a60-e751-416b-8d12-c84fe02101e1" message="#[payload]"/>
	</flow>
	<flow name="openair-connector-add-modify-read-deleteFlow-modify" doc:id="cdfcc099-8807-40eb-ba65-3ec654636351" >
		<http:listener doc:name="Listener" doc:id="bcffd8e9-6b12-4aec-8eb5-95e21f41c9ab" config-ref="HTTP_Listener_config" path="/modify"/>
		<logger level="INFO" doc:name="Logger" doc:id="be280d6d-dc66-44c4-9e7c-b74bc14da16e" message="#[payload]"/>
		<ee:transform doc:name="Transform Message" doc:id="08721573-0739-42cd-b635-f0de1f6831de" >
			<ee:message >
				<ee:set-payload ><![CDATA[%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
				}
			}
		}

	}
}]]></ee:set-payload>
			</ee:message>
		</ee:transform>
		<openair:modify doc:name="Modify" doc:id="6ad0f4b2-f1bd-4475-a600-207258145461" config-ref="Open_Air_Config" oaObject="oaCustomer"/>
		<ee:transform doc:name="Transform Message" doc:id="eeec400a-41ec-43e4-949b-ac9b1ae3fb5f" >
			<ee:message >
				<ee:set-payload ><![CDATA[%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
}]]></ee:set-payload>
			</ee:message>
		</ee:transform>
		<logger level="INFO" doc:name="Logger" doc:id="5dbcdc8d-ab38-4841-ad4a-0b6288891310" message="#[payload]"/>
	</flow>
	<flow name="openair-connector-add-modify-read-deleteFlow-read" doc:id="bfe3c8ab-f9de-4d85-8e0f-6414b09aafd7" >
		<http:listener doc:name="Listener" doc:id="2bf6d5ba-447d-49cf-bc9c-ea903dca07ea" config-ref="HTTP_Listener_config" path="/read" />
		<logger level="INFO" doc:name="Logger" doc:id="8a62904a-4d56-4924-a6c4-ec0a93d10377" message="#[payload]" />
		<ee:transform doc:name="Transform Message" doc:id="2f2377c3-d284-46a4-aaf4-7271e968c6bb" >
			<ee:message >
				<ee:set-payload ><![CDATA[%dw 2.0
output application/xml
ns ns0 http://namespaces.soaplite.com/perl
---
{
	ns0#ArrayOfReadRequest: {
		readRequest: {
			method: "equal to",
			fields: "id,name,company",
			"type": "Customer",
			objects :{
				oaBase: {
					oaCustomer: {
						id: payload.readCustomerID_1
					}
				}
			}
		},

		readRequest: {
			method: "equal to",
			fields: "id,name,company",
			"type": "Customer",
			objects :{
				oaBase: {
					oaCustomer: {
						id: payload.readCustomerID_2
					}
				}
			}
		}

	}
}]]></ee:set-payload>
			</ee:message>
		</ee:transform>
		<openair:read doc:name="Read" doc:id="4f262aba-ad1a-4f14-9c07-55b46b5c52d9" config-ref="Open_Air_Config" oaObject="oaCustomer"/>
		<ee:transform doc:name="Transform Message" doc:id="1cd3247b-a63a-431b-938c-e882d943dd81" >
			<ee:message >
				<ee:set-payload ><![CDATA[%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
}]]></ee:set-payload>
			</ee:message>
		</ee:transform>
		<logger level="INFO" doc:name="Logger" doc:id="21d10cfa-9071-4dad-a5a3-d3c85dca261d" message="#[payload]" />
	</flow>
	<flow name="openair-connector-add-modify-read-deleteFlow-delete" doc:id="43c7995b-27fd-4062-a393-df7afdd90905" >
		<http:listener doc:name="Listener" doc:id="af239902-3b8a-40b1-8edf-3756a5857e55" config-ref="HTTP_Listener_config" path="/delete"/>
		<logger level="INFO" doc:name="Logger" doc:id="fb07ebc0-10db-4ac8-8803-fdcfc6cf1913" message="#[payload]"/>
		<ee:transform doc:name="Transform Message" doc:id="743eddce-966c-4fad-b5ec-b753aa5894e9" >
			<ee:message >
				<ee:set-payload ><![CDATA[%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
			}
		}
	}
}]]></ee:set-payload>
			</ee:message>
		</ee:transform>
		<openair:delete doc:name="Delete" doc:id="1621fcd1-536e-4be7-b8d1-452cd35a2749" config-ref="Open_Air_Config" oaObject="oaCustomer"/>
		<ee:transform doc:name="Transform Message" doc:id="432b8eeb-18f3-4c9d-9be0-ae0fede825e5" >
			<ee:message >
				<ee:set-payload ><![CDATA[%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
}]]></ee:set-payload>
			</ee:message>
		</ee:transform>
		<logger level="INFO" doc:name="Logger" doc:id="edc70093-c05e-4c8c-ad92-0de46f990d06" message="#[payload]"/>
	</flow>
</mule>