|
Switch ノードは、条件ノードで指定された式の評価に基づいて実行パスを選択する場合に使用されます。Switch ノードは、1 つの条件ノード、1 つまたは複数のケース パス、および 1 つのデフォルト パスで構成されます。実行時に、条件ノードの式が実行されて、その結果の値が各ケース パスと関連付けられている値と比較されます。実行は、値が一致する最初のケース パスのアクティビティで継続されます (Switch ノードでは、ケース パスは左から右に評価されます)。どの条件も満たされない場合、デフォルト パスで定義されているアクティビティが実行されます。
この節では、Switch ノードにおいて、ビジネス プロセスに Switch ノードを追加する方法、条件を定義する方法、および代替実行パスのアクティビティを定義する方法について説明します。内容は以下のとおりです。
Decision ノードは Switch ノードと何が異なるのでしょうか。
Decision ノードには、実行時に評価する条件を複数含めることができます。Decision ノードが定義される場合、ビジネス プロセスは (パスごとに 1 つの) 条件を順次形式で評価し、一番目の評価値が true であるパスを実行します (条件は Decision ノードの左から右へ評価されます)。言い換えると、最初の条件が false に評価された場合は、2 番目の条件が評価されます。2 番目の条件が false に評価された場合は、またその次の条件が評価されます。どの条件も満たされない場合、デフォルト パスで定義されているアクティビティが実行されます。
Switch ノードに含まれる条件は 1 つのみです。Switch ノードが定義される場合、ビジネス プロセスは単一の条件ノードで指定された式を評価し、その式の評価に基づいて実行パスを選択します。Switch ノードで実行可能なパスには、複数のケース パスと 1 つのデフォルト パスがあります。実行は、値が一致する最初のケース パスのアクティビティで継続されます (Switch ノードでは、ケース パスは左から右に評価されます)。条件式の評価値がどのケース パスにも一致しない場合、デフォルト パスで定義されたアクティビティが実行されます。
図 9-1 に示すように、デザイン ビューが更新され、Switch ノードが表示されます。
実行時に、ノードで受信したデータと一致するケース ブランチが実行されます。一致するケースが見つからない場合、デフォルト パスが実行されます。
Switch ノードのロジックを作成するには、次の手順を実行する必要があります。
次の手順では、XML または MFL スキーマに関連付けられたビジネス プロセス変数の選択方法について説明します。Switch ノードまたはケース ノードを定義するスキーマで 1 つまたは複数のノードを選択します。
プロジェクトにビジネス プロセス変数のドロップダウン リストが表示されます。
たとえば、XML スキーマ (QuoteRequest.xsd
) をプロジェクトにインポートし、(QuoteRequest.xsd
スキーマに基づく) quoteRequest
型のビジネス プロセス変数 (requestXML
) を作成する場合、図 9-2 に示すように、requestXML
変数がビジネス プロセス変数のドロップダウン リストに表示されます。
注意 : | ビジネス プロセス変数の作成とスキーマのプロジェクトへのインポートの詳細については、「ビジネス プロセス変数とデータ型」および「スキーマ ファイルのインポートと作成」を参照してください。 |
変数を選択すると、その変数に関連付けられた XML スキーマが [ノードの選択] ペインに表示されます。
requestXML
変数の例を構築する場合に、requestXML
変数が選択されているときに表示される XML スキーマを表しています。
前の図に示したように、この変数に割り当てられている XML ドキュメントの要素と属性は、ノードの階層として表現されます。この例 (QuoteRequest.xsd
) のスキーマは、ルート要素 (quoteRequest
) と子要素 (customerName
、shipAddress
、および widgetQuoteRequests
) を指定します。一方、widgetQuoteRequest
要素は、反復要素 (widgetQuoteRequest
) を指定します。(反復 XML 要素は、スキーマの GUI 表示に で表されます。)
street
を選択した場合、$requestXML/ns0:shipAddress/@street)
が [要素の選択] フィールドに表示されます。
デザイン ビューでは、Decision ノードの条件は次のアイコンを表示します。
注意 : | 既存のメソッドを選択するには、[Java メソッド名] フィールドの左側にある をクリックします。 |
ソース ビューが、Java メソッドが書き込まれた Process.java ファイルのコード行に表示されます。
デザイン ビューでは、Switch ノードの [条件] に次のようなアイコン が表示されることに注意してください。これは、Java メソッドを指定するためにソースコードで定義した条件を表しており、分岐はそれに従います。このノードに表示される条件をさらに変更するには、ソース ビューでソース コードを編集する必要があります。
[スキーマ] オプションを使用するときのケース ビルダの完成方法の詳細については、前の節の「変数 (スキーマ)」を参照してください。
[メソッド] オプションを使用するときのケース ビルダの完成方法の詳細については、前の節の「メソッド」を参照してください。
条件の定義が完了したら、次はフローの実行パスを表すパスにアクションを定義できます。
これは、ビジネス プロセス ロジックに適切なアクティビティを実行するノードであれば任意に実行可能です。たとえば、コントロールを使用して、データベース、JMS キュー、または EJB などの外部リソースと対話することができます。
Switch ノードのパスでのアクティビティの追加が完了すると、分岐ロジックがビジネス プロセスに一連の条件およびアクションとして表示されます。