選択トリガは、外部システムから送られてくるデータに応じて、アクティビティ上の矢印を1つ選択します。
選択トリガを定義する方法について説明します。
トリガに必要なUDAをプロセス定義に追加します。
[プロパティ]ビューを表示するためにActivityノードを選択します。
[トリガ]タブを選択します。
[追加]をクリックします。
デフォルト名で新しいトリガが追加されます。
[トリガの詳細]領域の[一般]サブタブで、トリガ名を変更します。
オプション: トリガの目的を[一般]サブタブに入力することもできます。
[イベント]サブタブを選択します。
受信するデータの形式を記述したXMLスキーマURLを[XMLスキーマ]フィールドに入力します。
[取得]をクリックしてXMLスキーマを読み込みます。
[XMLスキーマ]フィールドに、XMLスキーマが読み込まれたことを示すアイコンが表示されます。
.
特定のデータを受信したときだけトリガを実行する場合は、それらの条件を定義するJavaScript式を[イベントフィルタ]フィールドに指定します。
その例については、“11.9.2 プロセス起案トリガの定義”を参照してください。JavaScript式については、“11.14 JavaScript式の定義”を参照してください。
[データマッピング]サブタブを選択します。受信するXMLファイルのエレメントをUDAにマッピングします。次の方法で、エレメントをマッピングします。
[追加]をクリックします。
[イベントエレメント]リストからXMLエレメントを1つ選択します。
XMLエレメントをマッピングするUDAを[変数]リストから選択します。
注意
トリガには柔軟性があるため、外部データが数値だけで構成される場合には、外部データの文字列をINTEGER型のUDAにマッピングできます。
[変数のXPath]リストで、選択したUDAのXPathを選択します。
図11.41 データマッピングの定義
オプション: XPathを編集する場合は、カラムの左端のボタンをクリックします。[XPath エディタ]ダイアログが表示され、XPathを編集できます。
注意
[XPath]コンボボックスに、編集されたXPathが表示されます。
注意
[XPath]ドロップダウンリストには、選択されたXMLタイプのユーザ定義属性に関連するXPathのリストが表示されます。 選択されたユーザ定義属性でXMLスキーマが定義されている時、このXMLスキーマで使用できるXPathのリストを表示します。 選択されたユーザ定義属性でXML(初期)値が定義されている場合は、このXML(初期)値で使用できるXPathのリストを表示します。 両方定義されている場合は、XMLスキーマで使用できるXPathのリストを表示します。
注意
XPath エディタはXPathの構文のチェックを行うのみです。編集されたXPathが存在するかどうかチェックしません。
マッピングを削除する場合は、削除するマッピングを選択し、[削除]をクリックします。
特定のプロセスインスタンスに対してだけトリガを実行する場合は、以下の手順に従います。
[プロセスインスタンスの選択]サブタブを選択します。
[追加]をクリックして新しい条件を追加します。
[変数]リストから、評価するUDAを選択します。比較するXML内のXPath式を指定します。UDAとXMLの要素の値が同一のプロセスインスタンスが選択された場合だけ、トリガが実行されます。複数のUDAが指定されている場合は、すべての条件が一致する必要があります。
注意
[ユーザ定義属性]タブで、UDAがワークリストUDAとしてチェックされていることを確認してください。チェックしていない場合は、トリガは機能しません。XML型UDAはワークリストUDAにはならないため、[変数]リストには表示されません。
条件を削除する場合は、削除する条件を選択し、[削除]をクリックします。
例として、パートナーからの注文のプロセスインスタンスをトリガするとします。UDA Partnerは、受信する注文がパートナーからのものであるかどうかを示します。このUDAはBOOLEAN型で、ワークリストUDAとしてチェックされています。以下の図は、この場合に指定する条件を示しています。
図11.42 プロセスインスタンスのフィルタリング
この例では、受信するXMLファイルが以下のデータを含んでいた場合、トリガを実行します。
<order> ... <fromPartners>true</fromPartners> ... </order>
以下のデータを受信した場合は、トリガを実行しません。
<order> ... <fromPartners>false</fromPartners> ... </order>
一定の条件に合致する場合にだけ特定の矢印の選択を行う場合は、以下の手順に従います。
[矢印の選択]サブタブを選択します。
[矢印]リストから、条件を定義する矢印を選択します。条件を定義するJavaScript式を指定します。
条件の評価順序を変更するには、条件を選択し、[上へ]ボタンまたは[下へ]ボタンをクリックします。
すべての条件は、このダイアログに表示される順序で確認されます。最初に一致した条件が使用され、プロセスフローはこの矢印に沿って進みます。
該当する条件が見つからなかった場合の動作を指定します。[trueとなる式がない場合]リストで、矢印を選択することや、トリガが別のイベントを待機するように指定することができます。
矢印を選択した場合は、次のノードへの矢印に沿ってプロセスフローが進みます。トリガが別のイベントを待機するように指定した場合、Activityノードは活性中のままになります。
たとえば、1,000,000円を超える注文の場合は部長の承認を得るように設定する場合は、以下のようなJavaScript式を作成します。
図11.43 矢印の条件の定義
[一般]サブタブを選択します。[有効化する]チェックボックスをオンにして、トリガを有効にします。
タイマーに選択Java Actionが定義済みで、そのJava Actionの選択アイテムとして矢印の名前も定義済みの場合、Activityノード、Voting Activityノード、およびCompound Activityノードを他のノードと接続する矢印には、以下のようなシンボルが追加されます。
図11.44 タイマーのシンボル