チュートリアル : 初めてのビジネス プロセス設計

     前  次    新しいウィンドウで目次を開く     
ここから内容

手順 8 : 実行の並行パスの設計

前の手順では、RFQ ドキュメント内の繰り返し要素のセットを反復処理する For Each ループを作成しました。この手順では、For Each ループの反復処理ごとに実行されるアクティビティを設計します。

このシナリオの価格や在庫情報の処理で行ったように、ビジネス プロセスが複数のシステムと対話するときには、パラレル ノードを使用して実行のパラレル ブランチを複数作成します。

注意 : ビジネス プロセス内の実行のパラレル ブランチは、論理的に並行です。物理的には、各ブランチは順に実行されます。ビジネス プロセスは、外部システムとの通信で応答があるまで待機する場合に、この論理上の並行性から利益を得ます。実行の 1 つのブランチで応答を待っている間に、パラレル フローの別の実行ブランチが処理を進めることができます。
注意 : 詳細については、『ビジネス プロセス構築ガイド』の「パラレル実行パスの作成」を参照してください。

このチュートリアルの例では、ビジネス プロセスが価格情報と在庫情報の両方を判断して、見積りを作成し、クライアントに返せるようにする必要があります。このビジネス プロセスは、価格の計算と在庫の計算を行う 2 つの外部システムと通信するため、並行実行を設定することによってスループットが向上します。ビジネス プロセスは、2 つの外部システムそれぞれから応答を受け取ります。

外部システムとは、ビジネス プロセスが必要とする情報を返すあらゆるリソース (他のビジネス プロセス、Web サービス、EJB、データベース、ファイル システムなど) を指します。ビジネス プロセスは、コントロールを介してこうしたリソースと対話します。

このチュートリアルでは 2 つの Web サービスを使用します。1 つは、クライアントから受け取った RFQ ドキュメントで指定された widgetID ごとに価格を返す Web サービスで、もう 1 つは、要求ドキュメントで指定された widgetID および quantity に基づいて在庫情報を返す Web サービスです。

ビジネス プロセスが対話するコントロールは、\Tutorial_Process_ApplicationWeb\requestquote.services フォルダに用意されています。用意されているコントロールは PriceProcessor.java および AvailProcessor.java です。

 


パラレル ノードの作成

  1. ビジネス プロセス (RequestQuote.java) が [デザイン] ビューに表示されていることを確認します。
  2. [Parallel] ノード (メソッドのバインド後のノードの変化) を [ノード パレット] から [デザイン] ビューにドラッグし、[For Each] ループ内にドロップします。
  3. Enter〕を押して、デフォルト名 Parallel を受け入れます。
  4. 次の図に示すように [デザイン] ビューが更新されます。

    図 9-1 更新後の [デザイン] ビュー


    更新後の [デザイン] ビュー

  5. Parallel ノード内のブランチの名前を、ビジネス プロセスで並行実行するアクティビティを識別する以下の名前に変更します。
    • 左側の [Branch] の名前 : Get Price
    • 右側の [Branch] の名前 : Get Availability
    • デフォルトのパラレル ノードでは結合条件 AND が指定されています。この結合条件はパラレル ブランチ ラインの交差点に 更新後の [デザイン] ビュー として表示されます。このアイコンは、すべてのブランチのアクティビティが完了してからでないと、実行フローはパラレル ノードの次のノードに進まないことを示しています。

      このビジネス プロセスでは、次のノードに進む前に価格の計算と在庫のチェックを完了する必要があるため、AND 結合条件をそのまま使用します。

      注意 : 結合条件 OR が指定された場合は、1 つのブランチのアクティビティがすべて完了すると、他のすべてのブランチのアクティビティの実行が終了され、実行フローはパラレル ノードの次のノードに進みます。結合条件 OR は [デザイン] ビューでは 更新後の [デザイン] ビュー で表現されます。
      注意 : [デザイン] ビューの結合条件は、[JPD コンフィグレーション] ビューの [join condition] プロパティに表示され、編集することができます。

 


価格データと在庫データを作成するためのロジックの作成

この節では、以下について学習します。

価格と在庫の情報を返す 2 つの Web サービスと対話するパラレル ノードを設計するには、以下の作業を完了します。

PriceProcessor コントロールと AvailProcessor コントロールのインスタンスの作成

PriceProcessor.java コントロールと AvailProcessor.java コントロールは、[パッケージ・エクスプローラー] ビューの Tutorial_Process_Application_Web\src\requestquote.services フォルダにあります。

この節では、アプリケーション内に適切なコントロールを作成し、ビジネス プロセスとそれらのコントロールとの間の通信を設計します。

  1. [データ パレット] 内の 更新後の [デザイン] ビュー をクリックします。
  2. ビジネス プロセスが対話できるリソースを表すコントロールのリストが表示されます。

  3. [ローカル コントロール Arrow symbol priceProcessorControl - requestquote.Services] を選択します。
  4. [コントロールの挿入] ダイアログ ボックスが表示されます。

  5. [フィールド名] フィールドに priceProcessor と入力し、[終了] をクリックします。
  6. 同様に、availProcessor のインスタンスを作成します。
  7. Web サービス コントロール インスタンス [priceProcessor] および [availProcessor] [データ パレット] に追加されます。

ビジネス プロセスへのコントロール ノードの追加

ここまでのチュートリアルでは、[データ パレット] の適切なコントロールのメソッドを [デザイン] ビューのビジネス プロセスまでドラッグすることによって、ビジネス プロセスにコントロール ノードを作成できることを学びました。

また、[ノード パレット] から、[Control Send]、[Control Receive]、または [Control Send with Return] をビジネス プロセスまでドラッグしてもコントロール ノードを作成できます。その後で、作成したコントロール ノードに適切なメソッドをバインドします。この節ではこの方法を使用します。

[ノード パレット] の以下のノードを、パラレル ノードの各ブランチに追加します。

[ノード パレット] にリストされている各ノードを [デザイン] ビューまでドラッグし、パラレル ブランチ上にドロップします。

これらのノードは、次の図に示すようにビジネス プロセスに配置します。

図 9-2 各ブランチにコントロールを持つパラレル ノード

各ブランチにコントロールを持つパラレル ノード

このようにして、各ブランチに以下の実行フローが設計されます。

  1. コントロール送信ノードから、コントロールを介してリソースを呼び出す。
  2. コントロール受信ノードで、コントロールからの応答を待機する。
  3. 戻り値のあるコントロール送信ノードで、コントロールへの同期呼び出しを行う。このノードでは、XML ドキュメントを構成するトランスフォーメーションを呼び出します。For Each ループのそれぞれの反復処理について、コントロールから返される応答データがこの XML ドキュメントに追加されます。

Get Price ブランチのアクティビティの設計

  1. Get Price ブランチの 3 つのコントロール ノードの名前を、実行順に Request PriceReceive PriceCreate PriceList にそれぞれ変更します。
  2. 以下の作業を完了します。

Request Price ノードの設計

  1. [RequestPrice] ノードをダブルクリックします。
  2. ノード ビルダの [一般的な設定] タブが表示されます。

  3. [コントロール] フィールドで [priceProcessor] を選択します。
  4. [メソッド] パネルに、priceProcessor で呼び出すことのできる非同期送信メソッドのリストが表示されます。

  5. [void getPrice(int itemID_arg)] メソッドを選択します。
  6. [データの送信] タブを選択します。
  7. デフォルトでは、[データの送信] タブを開くと [変数の割り当て] ペインが表示されます。[コントロールが予期する値] フィールドには、priceProcessor Web サービスがエクスポーズする getPrice() メソッドが予期するデータ型 (int itemID) が表示されます。

    注意 : priceProcessor Web サービスは、要求された項目の ID を入力として受け取り、その項目の価格を返します。
  8. [データの送信] タブで [トランスフォーメーション] モードに切り替えます。
  9. 図 9-3 トランスフォーメーション モード


    トランスフォーメーション モード

    注意 : トランスフォーメーション モードに切り替えるのは、priceProcessor の入力として求められるデータ型が int であるのに対して、For Each ループ内の widgetId の値を保持する iter_forEach1 変数は XML 型 (WidgetRequestDocument は XML スキーマに対して有効) であるためです。
  10. [変数の選択] をクリックして [iter_forEach1 (widgetRequest)] を選択します。
  11. [トランスフォーメーションの作成] をクリックします
  12. トランスフォーメーション ツールが開き、[iter_forEach1 (widgetRequest)] 変数が [ソース] ペインに、[int] が [対象] ペインに表示されます。

  13. [ソース] ペインの [widgetID] をクリックし、そのまま [対象] ペインの [int] までドラッグします。
  14. [widgetID] 要素と [int] 要素の間に接続線が引かれます。この線は 2 つのデータ型間のトランスフォーメーションを表します。

    図 9-4 データ トランスフォーメーション


    データ トランスフォーメーション

    マッピングの線を描画すると、次の警告が表示されます。

    ソース ノード [widgetId] と対象ノード [int] のデータ型が一致しません。型変換が行われます。
    注意 : このトランスフォーメーションによって、チュートリアル アプリケーション用にプロジェクトにすでに作成され、ビルドされている RequestQuoteTransformation.java の下に、新しいメソッドが作成されます。これは、Tutorial_Process_Application_Web\requestquote フォルダ下にあります。このトランスフォーメーション メソッド用のクエリが含まれている、RequestQuotepriceProcessorGetPrice.xq という名前の新しい XQ ファイルも作成されます。
  15. ナビゲーション ペインで [RequestQuote.java] をクリックして、プロセスに戻ります。
  16. [閉じる] をクリックして Request Price ノード ビルダを閉じます。
  17. この手順で、Request Price ノードの設計が完了します。

Receive Price ノードの設計

  1. [Receive Price] ノードをダブルクリックし、そのノード ビルダを開きます。ノード ビルダを開くと、[一般的な設定] タブが表示されます。
  2. [コントロール] フィールドで [priceProcessor] を選択します。
  3. [メソッド] パネルに、priceProcessor の非同期受信メソッドのリストが表示されます。
  4. [void returnPrice(int itemID_arg, float price_arg)] を選択します。

  5. [データの受信] をクリックします。
  6. [コントロールが返す値] フィールドには、priceProcessor Web サービスに対する returnPrice(int itemID, float price) メソッドで返されるデータ型が表示されます。


    データ トランスフォーメーション

    priceProcessor Web サービスは itemID (int 値) を入力として受け取り、項目 ID を int 値で、価格を float 値で返します。

    次に、[変数の割り当て] モードから [トランスフォーメーション] モードに切り替える必要があります。これは、priceProcessor Web サービスで返されるデータを型付き XML 変数に割り当てる必要があるためです。これを実行するには、プロセスで、priceProcessor Web サービスから返された Java データ型を型付き XML に変換する必要があります。

  7. [トランスフォーメーション] を選択します。
  8. 以下の図のように [データの受信] タブが表示されます。


    データ トランスフォーメーション

  9. [変数の選択] をクリックし、[変数の新規作成...] をクリックします。
  10. [変数を作成] ダイアログ ボックスが表示されます。

  11. [変数名] フィールドに price と入力します。
  12. [XML] タブを選択します。
  13. [型付き] ノードを [schemas] まで展開 (ノードの横にある [+] をクリック) します。
  14. [schemas] ノード下の [PriceQuote.xsd] を展開し、[priceRequest] を選択します。
  15. [型名] フィールドに [org.example.price.PriceRequestDocument] と表示されます。

  16. [OK] をクリックします。
  17. [変数を作成] ダイアログ ボックスが閉じ、新しい変数が [データの受信] タブに表示されます。この変数は、XML 型変数として [データ パレット] にも表示されます。
  18. [データの受信] タブで、[トランスフォーメーションの作成] をクリックします。トランスフォーメーション ツールが開き、itemID 変数と price 変数が [ソース] ペインに、[price] 変数が [対象] ペインに表示されます。
  19. 次の図に示すように、[itemID_arg] を [widgetId] に、[price_arg] を [price] にマップします。

  20. データ トランスフォーメーション

    注意 : このトランスフォーメーションによって、Tutorial_Process_Application_Web\requestquote フォルダの RequestQuoteTransformation.java 下に新しいメソッドが作成されます。このトランスフォーメーション メソッド用のクエリが含まれている、新しい XQ ファイルも作成されます。
  21. [パッケージ・エクスプローラー] 内の [RequestQuote.java] をダブルクリックしてビジネス プロセスに戻ります。
  22. Receive Price ノード ビルダ内の [閉じる] をクリックします。
  23. この手順で、Receive Price ノードの設計が完了します。

Create PriceList ノードの設計

この手順では、プロジェクトに用意されているトランスフォーメーション コントロール (PriceAvailTransformations) を使用して、priceProcessor コントロールから (For Each ループでの反復処理ごとに) 返される価格データを単一の変数に追加します。

前にビジネス プロセスのノードを設計したときに、必要に応じて、1 つのトランスフォーメーションに対するトランスフォーメーション メソッドを作成しました。そのトランスフォーメーション メソッドは、ビジネス プロセスがクライアントやコントロールとやり取りしたデータをマップするためのものでした。ここでは、別の方法でトランスフォーメーションを使用します。Create PriceList ノードの場合は、クライアントやコントロールにデータが送信されません。その代わりに、トランスフォーメーションが、ビジネス プロセスからの入力として型付き XML データを受け取り、型なし XML (XmlObject) データを返します。ビジネス プロセスは、For Each ループの反復処理ごとに返されるデータを単一の変数に追加して、XML データの繰り返しシーケンスを作成する必要があります。For Each ループ内のこのような XML データの繰り返しシーケンスを保持できる変数は、XmlObjectList 型の変数です。型付き変数と XmlObject 変数の両方とも、XmlObjectList 型の変数に追加できます。

詳細については、「XmlObjectList データ型」を参照してください。

注意 : このトランスフォーメーションは、チュートリアル アプリケーションであらかじめ構築されています。これは、Tutorial_Process_Application_Web\requestquote フォルダ下にあります。PriceAvailTransform.java ファイルの作成方法については、このチュートリアルでは説明していません。
PriceAvailTransformations コントロールのインスタンスの作成
  1. BEA Workshop 内に [データ パレット] ペインが表示されていない場合は、メニュー バーから [ウィンドウArrow symbolビューの表示Arrow symbolデータ パレット] を選択します。
  2. [パッケージ・エクスプローラー] ビューで、[PriceAvailTransformations.java] ファイルを選択し、そのまま [データ パレット] の [コントロール] 領域までドラッグします。コントロールのインスタンス (priceAvailTransformations) が生成され、[データ パレット] に表示されます。
Create PriceList ノードとトランスフォーメーションとの対話の設計
  1. [データ パレット] で、[priceAvailTransformations] コントロール インスタンスを展開します。
  2. 以下のメソッドを選択します。
  3. XmlObject convertPriceXMLtoXMLObj
    (org.example.price.PriceRequestDocument _priceRequestDoc)
  4. [データ パレット] からメソッドをドラッグし、[デザイン] ビューの [Create PriceList] ノードにドロップします。以下の図に示すように、[Create Price List] ノードがメソッドのバインドを反映して変更されます。
  5. 図 9-5 メソッドのバインド後のノードの変化


    メソッドのバインド後のノードの変化

  6. [Create PriceList] ノードをダブルクリックします。
  7. ノード ビルダの [一般的な設定] タブが表示されます。

  8. ノードにバインドしたメソッドが選択されていることを確認します。
  9. ノード ビルダで [データの送信] をクリックします。
  10. [コントロールが予期する値] フィールドには、priceAvailTransformations コントロールに対する convertPriceXMLtoXMLObj() メソッドが予期するパラメータのデータ型と名前 PriceRequestDocument _priceRequestDoc が表示されます。

  11. [割り当てる変数を選択します] フィールドで [price (PriceRequestDocument)] を選択します。
  12. この場合、price 変数のデータ型 (PriceRequestDocument) は、priceAvailTransformations が予期するデータのデータ型と一致します。

  13. [データの受信] をクリックして、ノード ビルダに 3 番目のタブを開きます。
  14. [コントロールが返す値] フィールドには、priceAvailTransformations コントロールに対する convertPriceXMLtoXMLObj() メソッドが返すパラメータのデータ型 XmlObject が表示されます。

    注意 : XmlObject は、型なし XML 形式のデータ (XML スキーマに対して有効でないデータ) を指定する Java データ型です。
  15. [割り当てる変数を選択します] フィールドで、[変数の新規作成...] を選択します。
  16. [変数を作成] ダイアログ ボックスが表示されます。

  17. [変数名] フィールドに priceList と入力します。
  18. [XML] タブを選択し、アプリケーション内の XML データ型の表現を表示します。
  19. デフォルトでは [XmlObject] が選択されています。次の手順でこの選択を変更する必要があります。

  20. [XmlObjectList] を選択し、[OK] をクリックします。
  21. [データの受信] タブで、[割り当てる変数を選択します] ドロップダウン リストから [priceList(XmlObjectList)] を選択します。
  22. priceList 変数が作成され、priceProcessor サービスから返される XmlObject データを受け取るように割り当てられます。

  23. [閉じる] をクリックして Create PriceList ノード ビルダを閉じます。
  24. この手順により、ビジネス プロセスのパラレル ノードの Get Price ブランチの設計が終了します。

    実行時にこのブランチが実行されると、For Each ループでの現在の反復処理で priceProcessor コントロールから返されるデータを含む XmlObject が、priceList 変数に追加されます。

  25. WorkSpace Studio のメニューから、[ファイルArrow symbolすべて保管] を選択します。

Get Availability ブランチのアクティビティの設計

  1. Get Availability ブランチの 3 つのノードの名前を、実行順に Request AvailabilityReceive AvailabilityCreate AvailList にそれぞれ変更します。
  2. 以下のタスクを実行します。

Request Availability ノードの設計

  1. [Request Availability] ノードをダブルクリックします。ノード ビルダを開くと、[一般的な設定] タブが表示されます。
  2. [コントロール] フィールドで、[availProcessor] を選択します。
  3. [メソッド] パネルに、availProcessor コントロールで呼び出すことのできる非同期送信メソッドのリストが表示されます。
  4. [void getAvail(int itemID_arg, int quantity_arg)] を選択します。

  5. ノード ビルダで [データの送信] をクリックします。
  6. デフォルトでは、[データの送信] タブを開くと [変数の割り当て] ペインが表示されます。[コントロールが予期する値] フィールドには、availProcessor Web サービスがエクスポーズする getAvail() メソッドが予期するパラメータのデータ型と名前、int itemID および int quantity が表示されます。

    注意 : availProcessor Web サービスは、項目の ID (int) と数量 (int) を入力として受け取ります。このサービスは、項目の ID (int)、提供可能な数量 (int)、項目が在庫にあるかどうかを示すブール値、および出荷日 (String) を返します。
  7. [トランスフォーメーション] を選択して、[データの送信] タブのモードを切り替えます。
  8. 注意 : ここでモードを切り替えるのは、availProcessor への入力として指定するデータを変換する必要があるためです。availProcessor コントロールが int データ型の入力を必要とする一方、For Each ループの widgetId および quantity の値を保持する iter_forEach1 変数は型付き XML 変数です (WidgetRequestDocument は XML スキーマに対して有効)。
  9. [変数の選択] をクリックして [iter_forEach1 (WidgetRequest)] を選択します。
  10. [トランスフォーメーションの作成] をクリックします
  11. トランスフォーメーション ツールが開き、[iter_forEach1] 変数が [ソース] ペインに、トランスフォーメーション メソッド availProcessor に渡す整数の引数が [対象] ペインに表示されます。

  12. 以下のように、[ソース] ペインの要素を [対象] ペインの要素にマップします。
    • [widgetID] を [itemID_arg] へ
    • [quantity] を [quantity_arg] へ
    • 注意 : このトランスフォーメーションによって、RequestQuoteTransformation.java 下に新しいメソッドが作成されます。これは、Tutorial_Process_Application_Web/requestquote フォルダ内にあります。このトランスフォーメーション メソッド用のクエリが含まれている、新しい XQ ファイルも作成されます。
  13. [パッケージ・エクスプローラー] 内の [RequestQuote.java] を選択してプロセスに戻ります。
  14. [閉じる] をクリックして Request Availability ノード ビルダを閉じます。
  15. この手順で、Request Availability ノードの設計が完了します。

Receive Availability ノードの設計

  1. [Receive Availability] ノードをダブルクリックします。ノード ビルダを開くと、[一般的な設定] タブが表示されます。
  2. [コントロール] フィールドで、[availProcessor] を選択します。
  3. [メソッド] ペインに、availProcessor の非同期受信メソッドのリストが表示されます。
  4. 以下のメソッドを選択します。
  5. void avail(int itemID_arg, int qty_arg, boolean avail_arg, String date_arg)
  6. [データの受信] をクリックして、ノード ビルダに 2 番目のタブを開きます。
  7. [コントロールが返す値] フィールドには、availProcessor Web サービスに対する avail() メソッドが返すパラメータのデータ型と名前が表示されます。

    注意 : ここでは、[データの受信] タブの [変数の割り当て] モードを [トランスフォーメーション] モードに切り替える必要があります。これは、availProcessor Web サービスが返すデータを型付き XML 変数に割り当てる必要があるためです。そのためにはプロセスで、返された Java データ型を型付き XML データに変換する必要があります。
  8. [トランスフォーメーション] をクリックします。
  9. [変数の選択] をクリックし、[変数の新規作成] をクリックします。
  10. [変数を作成] ダイアログ ボックスが表示されます。

  11. [変数名] フィールドに avail と入力します。
  12. [XML] タブを選択します。
  13. [型付き] ノードを [schemas] ノードまで展開 (ノードの横にある [+] をクリック) します。
  14. [schemas] ノード下の [AvailQuote.xsd] を展開し、[availRequest] を選択します。
  15. [型名] フィールドに [org.example.avail.AvailRequestDocument] と表示されます。

  16. [OK] をクリックします。
  17. [変数を作成] ダイアログ ボックスが閉じ、新しい変数が作成され、[XML] 型の変数として [データ パレット] に表示されます。

  18. ノード ビルダの [データの受信] で、[トランスフォーメーションの作成] をクリックしてトランスフォーメーション ツールを開くと、availProcessor から返されるデータ型が [ソース] ペインに、avail 変数が [対象] ペインに表示されます。
  19. 以下のように、[ソース] の値を [対象] の各要素にマップします。
    • [itemID_arg] を [widgetId] へ
    • [qty_arg] を [requestedQuantity] へ
    • [avail_arg] を [quantityAvail] へ
    • [date_arg] を [shipDate] へ
    • 注意 : このトランスフォーメーションによって、requestquote\Tutorial_Process_Application_Web フォルダの RequestQuoteTransformation.java 下に新しいメソッドが作成されます。このトランスフォーメーション メソッド用のクエリが含まれている、新しい XQ ファイルも作成されます。
  20. [ファイルArrow symbolすべて保管] を選択します。
  21. [パッケージ・エクスプローラー] 内の [RequestQuote.java] をクリックしてビジネス プロセスに戻ります。
  22. Receive Availability ノード ビルダを閉じるには、[閉じる] をクリックします。
  23. この手順で、Receive Availability ノードの設計が完了します。

Create AvailList ノードの設計

この手順では、priceAvailTransformations コントロールでメソッドを呼び出して、在庫データを XmlObjectList 型の単一の変数に追加します。

注意 : XmlObjectList データ型の詳細については、「XmlObjectList データ型」を参照してください。
  1. [データ パレット] の [priceAvailTransformations] コントロール インスタンスを展開し、[XmlObject convertAvailXMLtoXMLObj()] メソッドを選択します。
  2. [データ パレット] からメソッドをドラッグし、[デザイン] ビューの [Create AvailList] ノード上にドロップします。[Create AvailList] ノードがメソッドのバインドを反映して変更されます。
  3. 図 9-6 メソッドのバインド後のノードの変化


    メソッドのバインド後のノードの変化

  4. [Create AvailList] ノードをダブルクリックします。ノード ビルダが表示されます。
  5. [コントロール] フィールドで [priceAvailTransformations] コントロールが選択され、ノードまでドラッグしたメソッドが [メソッド] フィールドで選択されていることを確認します。
  6. [データの送信] タブをクリックして、ノード ビルダに 2 番目のタブを開きます。
  7. [コントロールが予期する値] フィールドには、priceAvailTransformations コントロールに対する convertAvailXMLtoXMLObj() メソッドが予期するデータ型 AvailRequestDocument が表示されます。

  8. [割り当てる変数を選択します] フィールドで、[avail (AvailRequestDocument)] を選択します。
  9. この場合、avail 変数のデータ型 (AvailRequest) は、priceAvailTransformations コントロールが予期するデータのデータ型と一致します。

  10. ノード ビルダで [データの受信] をクリックします。
  11. [コントロールが返す値] には、priceAvailTransformations コントロールに対する convertAvailXMLtoXMLObj() メソッドから返されるデータ型 XmlObject が表示されます。

    注意 : XmlObject は、型なし XML 形式のデータ (どの XML スキーマに対しても無効なデータ) を指定する Java データ型です。
  12. [割り当てる変数を選択します] フィールドで、[変数の新規作成...] を選択します。
  13. [変数を作成] ダイアログ ボックスが表示されます。

  14. [変数名] フィールドに availList と入力します。
  15. [XML] タブを選択し、アプリケーション内の XML データ型の表現を表示します。
  16. [型なし] の [XmlObjectList] を選択し、[OK] をクリックします。
  17. availList 変数が作成され、availProcessor Web サービスから返される XmlObject データを受け取るように割り当てられます。

  18. Create AvailList ノード ビルダを閉じるには、[閉じる] をクリックします。
  19. 実行時に、For Each ループでの現在の反復処理で availProcessor コントロールから返されるデータを含む XmlObject が、availList 変数に追加されます。

  20. WorkSpace Studio のメニューから、[ファイルArrow symbolすべて保管] を選択します。
XmlObjectList データ型

For Each ループでの反復処理ごとに以下の処理が行われます。

ビジネス プロセスでは、反復処理ごとに返される価格データを収集し、ループでの反復処理ごとに 1 つの項目をリストに割り当てて、価格データのリストを作成する必要があります。同様に、ループでの反復処理ごとに、パラレル ノードの Get Availability ブランチに在庫データのリストが作成されます。

XmlObjectList は、型なし XML 形式データのシーケンスを指定する Java データ型です。このデータ型は、XML 要素のシーケンス (繰り返し要素のセット) を表します。ビジネス プロセスでは、パラレル ノードの Get Price ブランチでの各反復処理の最後の段階として、price 変数から受け取ったデータを priceList 変数 (XmlObjectList 型) に割り当てます。このようにして、For Each ループで反復処理する各項目の価格データを、単一の変数が保持します。同様に、各項目の在庫データも単一の変数が保持します。

XmlObjectList 変数の使用方法については、「Create PriceList ノードの設計」および「Create AvailList ノードの設計」を参照してください。

関連トピック

データ トランスフォーメーション ガイド


  ページの先頭       前  次