![]() ![]() ![]() ![]() |
この手順では、クライアントから受け取った見積り要求ドキュメントから項目のリストを抽出するロジックを作成し、クライアントから要求された項目の価格と在庫を判断するビジネス プロセスの設計作業を開始します。
For Each ノードは、リスト内の項目ごとに 1 回ずつ、一連のアクティビティを繰り返し実行する、ビジネス プロセス内のポイントを表します。For Each ノードには、イテレータ ノード (項目のリストを指定するノード) とループ (リスト内の項目ごとに実行するアクティビティを定義する) があります。ループの期間中、For Each ループで処理されている現在の要素は、反復変数が保持します。
このチュートリアルで構築するビジネス プロセスは、クライアントから見積り要求 XML ドキュメントを受け取ったときに開始するように設計されます。見積り要求ドキュメントには、有効な XML、つまり XML スキーマに対して有効な XML QuoteRequest.xsd
が含まれている必要があります。QuoteRequest.xsd
スキーマは、アプリケーション内の Tutorial_Process_Application_WEB\Schemas
にあります。
前の行の myapplications
は、チュートリアル アプリケーションの場所を表しています。
注意 : | プロジェクト内のスキーマをビジネス プロセスで使用できるようにするには、ユーティリティ プロジェクトの Schemas フォルダに置く必要があります。ユーティリティ プロジェクトは、現在は Tutorial_Process_Application_UTILITY になります。プロジェクトは、Workshop アプリケーションに含めることができるフォルダ プロジェクトの 1 つの種類です。BEA Workshop アプリケーションに追加したプロジェクトは、BEA Workshop ファイル階層内で、アプリケーション フォルダの子フォルダとして表されます。BEA Products アプリケーション内にプロジェクトを作成してデータを設定する方法については、「関連トピック」を参照してください。 |
アプリケーションの Schemas フォルダ内の XML スキーマがコンパイルされて、XML Bean が生成されます。このようにして、BEA Workshop により、XML スキーマのさまざまな側面を表現するインタフェースのセットが生成されます。XML Bean 型は、XML スキーマ自体の型に対応します。XML Beans により、組み込みのスキーマ型に対応する Java 型が与えられ、スキーマの任意の派生型について Java 型が生成されます。
「手順 2 : プロセスの開始方法の指定」では、クライアントからビジネス プロセスが受け取る見積り要求ドキュメントが割り当てられる変数 requestXML
を作成しました。デザイン ビューでこのような変数を使用するときには、変数に関連付けられた XML スキーマをグラフィカルに表現したものを使用します。以下の図は、クライアントから受け取った見積り要求ドキュメントが有効な QuoteRequest.xsd
スキーマ内の quoteRequest
要素をグラフィカルに表現したものです。
QuoteRequest.xsd
スキーマの以下の特徴に留意してください。
quoteRequest
はルート要素です。quoteRequest
要素は、子要素 customerName
、shipAddress
、および widgetRequest
を指定する。shipAddress
要素は、属性 street
、city
、state
、および zip
を指定する。widgetRequest
要素は、widgetRequest
要素が含まれていることがあります。一方、widgetRequest
要素には 2 つの要素として widgetId
と quantity
が含まれます。
このシナリオのビジネス プロセスでは、クライアントから受け取った見積り要求ドキュメント内の widgetId
要素と quantity
要素のペアが処理されます。処理は For Each ノードで開始され、For Each ループ内の反復処理で widgetRequest
項目の 1 セットずつが処理されます。
この節では、まず、項目のリスト (widgetRequest
項目) を requestXML
変数から抽出し、次に、リスト内の各項目で 1 回づつ、アクティビティまたはアクティビティのセットを繰り返し実行する For Each ノードを設計します。
ビジネス プロセスで見積り要求 XML ドキュメント内のノード シーケンスを反復処理するロジックを作成するには、以下の手順を実行します。
requestXML
変数の XML 表現が、[ノードの選択] ペインに表示されます。繰り返し要素は
[繰り返し要素] フィールドと [反復変数] フィールドに以下のデータが設定されます。
反復変数 iter_forEach1
が作成され、データ パレット内の変数リストに追加されます。この変数は XML 型の WidgetRequestDocument.WidgetRequest です。
For Each ループでの反復変数の使用方法については、「Create PriceList ノードを設計するには」を参照してください。
この手順で、For Each ノード用の反復処理ロジックの設計が完了します。デザイン ビューでは、条件を定義するために行った作業を反映して、ノードのグラフィカル表現が更新されます。
は、ノードのタスクの設計が完了したことを示します。
は設計が完了していないことを示し、
はノードに対して XML クエリが定義されたことを示します。
For Each ノードに反復処理ロジックを作成した後で、作成したリスト内の項目を対象とした反復処理ごとに実行されるアクティビティまたはアクティビティのセットを定義する必要があります。
For Each ループにアクティビティを追加するには、ループ内にビジネス ロジックに対応するノードを作成します。このチュートリアルの次の手順では、パラレル ノードを作成し、ビジネス プロセスでアクティビティの 2 セットが並行して実行されるように、そのノードを設計します。1 つは価格要求で、もう 1 つはクライアントから要求された項目の在庫の判断です。パラレル ノードの設計方法については、「手順 8 : 実行の並行パスの設計」を参照してください。
![]() ![]() ![]() |