Show Table of Contents
6.3.4. ノードタイプ - 決定
決定をモデリングするする方法は 2 つあり、 どちらの方法を選択するかはユーザーが判断します。 2 つの方法は次の通りです。
- 決定はプロセスにより行われ、プロセス定義に指定されます。
- 外部のエンティティが決定します。
プロセスが決定を行う場合、
decision node が使用されます。2 つの方法の 1 つを決定基準として指定します。最も簡単な指定方法は、遷移へ condition 要素を追加することです (条件は EL 表現またはブール型変数を返す beanshell スクリプトです)。
ランタイム時に決定ノードは条件を指定した
leaving transitions 上で最初にループします。これにより、xml で指定された順序でこれらの遷移が評価されます。条件が true に解決された最初の 遷移が取得されます。条件を持つすべての遷移が false に解決されると、デフォルトの遷移 (XML で最初の遷移) が取得されます。
他の方法は取得する遷移の名前を返す表現を使用することです。 expression 属性を使用して決定上で表現を指定します。 これは、 決定ノードの
leaving transitions の 1 つへ解決する必要があります。
handler 要素を使用して、 決定ノードで指定できる
DecisionHandler インターフェースの実装を指定できるため、 決定で handler 要素を使用することができます。 この場合、決定は Java クラスで計算され、 選択されたleaving transition が DecisionHandler 実装の decide メソッドによって返されます。
決定が外部パーティによって実行される場合、
state や wait state を退場する複数の遷移を常に使用します。 退場遷移は、 wait state の終了後、 実行処理を再開させる外部トリガーに用意できます (例えば、Token.signal(String transitionName) や TaskInstance.end(String transitionName) など)。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.