Oracle® Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド 11g リリース1 (11.1.1.7) B61409-09 |
|
![]() 前 |
![]() 次 |
この章では、タイマー・イベントを使用してBPMNプロセスに時間条件を追加する方法を説明します。様々なタイマー・イベントを使用して遅延および期限を追加し、追加アクティビティを実行する方法を説明します。
この章の内容は次のとおりです。
タイマー・イベントを使用すると、時間条件を使用してプロセスのフローを制御できます。
タイマー・イベントは次の場合に使用できます。
アクティビティ実行の前に遅延を作成する
アクティビティの期限を構成する
プロセスの期限を構成する
一定時間経過後に追加のアクティビティをトリガーする
プロセスを起動する
プロセスを定期的にトリガーする
タイマー・イベントはビジネス・カレンダ定義に基づきません。
Oracle BPMでは、次のものを使用するタイマーを構成できます。
特定の日付および時間
タイマー・イベントが特定の日付に起動するように構成できます。特定の日付を指定するか、または関数を使用して日付を計算できます。
相対的な時間
タイマー・イベントが一定時間の経過後に起動するように構成できます。経過時間を指定するか、関数を使用して時間を計算できます。タイマー・イベントが開始イベントまたは連続する境界イベントの場合、複数回起動されます。
タイマー・イベントを境界イベントとして定義した場合、連続しないイベントか連続するイベントのどちらとして構成するかを選択できます。
連続しないタイマー・イベントが発生した場合、トークンはメイン・プロセス・フローを離れて、タイマーによって定義されたフローを進みます。連続しないタイマー・イベントによって定義されたフローは、メイン・プロセス・フローを再開できます。
連続するイベントが起動した場合は、メイン・プロセス・フローで実行されているトークンのコピーがBPMNサービス・エンジンによって作成され、タイマー・イベントによって定義されたフローにコピーがルーティングされます。連続するイベントによって定義されたフローはメイン・プロセス・フローを再開できません。
中間タイマー・キャッチ・イベントを追加することにより、プロセス・フローに遅延を追加できます。トークンがタイマー・イベントに到達すると、タイマー・イベントで指定された期間待機した後、プロセス内の次のアクティビティに移行します。
たとえば、複数のデータベースを更新するプロセスの場合、プロセスを数分間遅延するタイマー・アクティビティを追加し、プロセスが続行する際にすべてのデータベースが更新されるようにします。
特定の日付まで待機するか、特定の期間待機するように中間タイマー・キャッチ・イベントを構成できます。いずれの場合も、固定値を選択するか、対応する日付または間隔を指定する式を使用できます。
タイマー中間イベントをサイクルとして構成すると、タイマー・イベントは1回だけ実行されます。指定された期間が経過するのを待ち、その後、トークンが残りのプロセス・フローを実行します。
フロー・オブジェクトに遅延を追加できます。
プロセス・フローに特定の日付までの遅延を作成するには:
プロセス中の遅延を追加する場所を決定します。
コンポーネント・パレットの「イベントの捕捉」セクションで「タイマー」を選択します。
遅延を追加する場所にタイマー・イベントをドロップします。
プロセスを特定の日付まで遅延する場合、タイマー・イベントを時間日付として構成する必要があります。プロセスを一定期間遅延する場合、タイマー開始イベントをサイクルとして構成する必要があります。
タイマー・イベントを時間日付として構成する方法については、17.7.1項「特定の日付および時間を使用するタイマー・イベントの構成方法」を参照してください。
タイマー・イベントをサイクルとして構成する方法については、17.7.3項「間隔を使用するタイマー・イベントの構成方法」を参照してください。
プロセスにタイマー開始イベントを追加し、時間条件に基づいてトリガーされるように構成できます。タイマー開始イベントで指定された時間条件がtrueと評価されると、BPMNサービス・エンジンがプロセスに新規インスタンスを作成します。
たとえば、労働時間を報告するプロセスの場合、プロセス内にインスタンスを1日1回作成するタイマー開始イベントを追加できます。
特定の日付に起動するか、定期的にインスタンスを作成するようにプロセスを構成できます。いずれの場合も、固定値を選択するか、対応する日付または間隔を指定する式を使用できます。
過去の日付を指定するタイマー開始イベントが含まれるプロセスをデプロイすると、BPMNサービス・エンジンは自動的にプロセスのインスタンスを作成します。
特定の日付に達した場合、または一定期間が経過した後に定期的に起動するようにプロセスを設計できます。
時間条件に基づいて起動するようプロセスを設計するには:
BPMNプロセスを開きます。
プロセスで1つの開始イベントを使用する場合、開始イベントを右クリックして「トリガー・タイプの変更」を選択し、「タイマー」を選択します。
プロセスで複数の開始イベントを使用する場合、コンポーネント・パレットの「開始イベント」セクションでタイマー開始イベントを選択する必要があります。タイマー開始イベントをプロセスにドロップします。タイマー開始イベントを右クリックし、「プロパティ」を選択します。
プロセスを特定の日付に起動する場合、タイマー開始イベントを時間日付として構成する必要があります。プロセスを一定期間の後に起動する場合、タイマー開始イベントをサイクルとして構成する必要があります。
タイマー・イベントを時間日付として構成する方法については、17.7.1項「特定の日付および時間を使用するタイマー・イベントの構成方法」を参照してください。
タイマー・イベントをサイクルとして構成する方法については、17.7.3項「間隔を使用するタイマー・イベントの構成方法」を参照してください。
アクティビティの期限を構成するには、プロセスの別の位置に移動する、連続しない境界イベントとして構成された連続しないタイマー・キャッチ・イベントを使用します。トークンが予定よりも長い期間、または特定の日付よりも後までアクティビティに残留している場合、タイマー・キャッチ・イベントがトリガーされてプロセス・フローを中断します。
期限が特定の日付に発生するように構成したり、トークンがアクティビティで一定の時間を費やした後に発生するように構成できます。いずれの場合も、固定された日付または間隔を指定するか、対応する日付または間隔を計算する式を使用できます。
たとえば、発注プロセスでは、クレジット・カードの承認を必要とするアクティビティは承認を1日待機するように構成できます。承認にそれ以上時間がかかる場合、メッセージを顧客に送信するアクティビティにトークンを移動します。
期限切れになった後にトークンが別のアクティビティに移動するようにアクティビティの期限を構成できます。期限切れの後、トークンがどのアクティビティに移動するかを指定できます。
アクティビティの期限を構成するには:
期限を構成するプロセス中のアクティビティを決定します。
コンポーネント・パレットの「イベントの捕捉」セクションで「タイマー」を選択します。
タイマー・イベントをアクティビティにドロップします。
タイマー・イベントが境界イベントになります。境界タイマー・キャッチ・イベントから派生するシーケンス・フローが表示されます。
カーソルを終了イベントの上に置き、クリックしてシーケンス・フローをその位置にドロップします。
期限を特定の日付に発生させる場合、境界タイマー・キャッチ・イベントを時間日付として構成する必要があります。期限を一定期間の後に発生させる場合、境界タイマー・キャッチ・イベントをサイクルとして構成する必要があります。
タイマー・イベントを時間日付として構成する方法については、17.7.1項「特定の日付および時間を使用するタイマー・イベントの構成方法」を参照してください。
タイマー・イベントをサイクルとして構成する方法については、17.7.3項「間隔を使用するタイマー・イベントの構成方法」を参照してください。
「実装」タブのタイマー・プロパティ・ダイアログで、「イベントの中断中」を選択します。
連続しないタイマー開始イベントで開始されるイベント・サブプロセスを使用して、プロセスのプロセス期限を構成できます。一定の期間が経過するか日付に到達すると、タイマー・イベントが起動します。トークンがまだプロセス中であれば、イベントのサブプロセスに移動します。
タイマー・イベントは、トークンがプロセス中にある場合のみアクティブです。
期限が特定の日付に発生するように構成したり、トークンがアクティビティで一定の時間を費やした後に発生するように構成できます。いずれの場合も、固定された日付または間隔を指定するか、対応する日付または間隔を計算する式を使用できます。
たとえば、発注プロセスで、トークンがプロセス中に3か月以上残留している場合、自動的にプロセスが終了されるように構成できます。
イベントのサブプロセスにエラー終了イベントを使用して、プロセスの実行が成功して完了しないようにできます。
BPMNプロセスの期限を構成できます。期限切れになった時点で、プロセス・フローを終了するか、フロー・オブジェクトのグループを実行するよう選択できます。
BPMNプロセスの期限を構成するには:
BPMNプロセスを開きます。
コンポーネント・パレットの「アクティビティ」セクションで「イベント・サブプロセス」を選択します。
イベント・サブプロセスをプロセスにドロップします。
イベント・サブプロセスの開始イベントをタイマー・イベントに構成します。
イベント・サブプロセスの開始イベントを右クリックします。
「プロパティ」を選択します。
「実装」タブをクリックします。
「実装タイプ」リストから「タイマー」を選択します。
「イベントの中断中」を選択します。
期限を特定の日付に発生させる場合、タイマー・イベントを時間日付として構成する必要があります。期限を一定期間の後に発生させる場合、タイマー・イベントをサイクルとして構成する必要があります。
タイマー・イベントを時間日付として構成する方法については、17.7.1項「特定の日付および時間を使用するタイマー・イベントの構成方法」を参照してください。
タイマー・イベントをサイクルとして構成する方法については、17.7.3項「間隔を使用するタイマー・イベントの構成方法」を参照してください。
アクティビティまたはプロセスの実行中に、時間条件に基づいた追加アクティビティを実行できます。追加アクティビティは、定期的にトリガーするか、特定の日付にトリガーするよう選択できます。
一般的には、現在実行中のアクティビティの完了までに長時間かかる場合に追加アクティビティを実行します。たとえば、データベースの更新に20時間かかるサービスを実行している場合、更新の進行状況を通知する電子メールを関係者に送信できます。
タイマー・イベントは、トークンがアクティビティ中にある場合のみアクティブです。
プロセスの実行中にも追加アクティビティを実行できます。これらのアクティビティは、メイン・プロセス・フローとパラレルに実行されます。
アクティビティの実行中に、パラレル・プロセス・フローを実行できます。一般的には、メイン・アクティビティの完了までに長時間かかるとわかっている場合に、一定期間の後にパラレル・プロセス・フローをトリガーするように設計します。
アクティビティ実行中に追加アクティビティを実行するには:
追加アクティビティとパラレルで実行するアクティビティを決定します。
メイン・プロセス・フローの外側に、シーケンス・フローで接続されたアクティビティを追加して、追加プロセス・フローを作成します。
アクティビティの境界としてタイマー・イベントを追加します。
アクティビティに接続するためのシーケンス・フローが表示されます。
作成した追加プロセス・フローにシーケンス・フローを接続します。
連続するイベントが起動した際にトークンがまだアクティビティ中に残留している場合、BPMNサービス・エンジンによってそのトークンのコピーが作成され、タイマー・イベントが定義するフロー内をルーティングされます。メイン・プロセス・フローのアクティビティが実行中に、タイマーが複数回起動することもあります。
メイン・プロセス・フローの実行中に、追加アクティビティを実行できます。一般的には、プロセスの完了までに長時間かかるとわかっている場合に、一定期間の後にパラレル・プロセス・フローをトリガーするように設計します。
プロセス実行中に追加アクティビティを実行するには:
プロセスにサブプロセス・イベントを追加します。
サブプロセス・イベントの開始イベントを右クリックします。
「プロパティ」を選択します。
「実装」タブをクリックします。
「実装タイプ」リストから「タイマー」を選択します。
「イベントの中断中」オプションが選択されていないことを確認します。
追加アクティビティを特定の日付に実行する場合、タイマー・イベントを時間日付として構成する必要があります。追加アクティビティを定期的に実行する場合、タイマー・イベントをサイクルとして構成する必要があります。
タイマー・イベントを時間日付として構成する方法については、17.7.1項「特定の日付および時間を使用するタイマー・イベントの構成方法」を参照してください。
タイマー・イベントをサイクルとして構成する方法については、17.7.3項「間隔を使用するタイマー・イベントの構成方法」を参照してください。
追加アクティビティをサブプロセス・イベントに追加します。
特定の日時に起動するか、一定の時間が経過した後に起動するようにタイマー・イベントを構成できます。いずれの場合も、固定した時間値を指定するか、時間値を計算する式を指定できます。
定期的に実行されるようにタイマー・イベントを構成することもできます。サポートされている粒度は、日次、週次および月次です。いずれの場合も、そのプロジェクトに定義されているカレンダ・ルールを使用して日付を計算し、休日と一致したイベントを再スケジュールするようにタイマー・イベントを構成できます。
タイマー・イベントが特定の日時を使用するよう構成できます。日付と時間を指定するか、計算式を使用できます。
特定の日時を使用するタイマー・イベントの構成方法は、次のとおりです。
タイマー・イベントを右クリックします。
「プロパティ」を選択します。
「実装」タブをクリックします。
「時間日付」を選択します。
日付を指定します。
日付の指定時に、次のオプションを選択できます。
「日付」フィールドの隣のカレンダ・ボタンをクリックします。日付を選択し、時間を入力してカレンダ・ダイアログを閉じます。
「日付」フィールドに日付を入力します。たとえば、Jan. 18, 2010 4:31:10 PMのように入力します。
「式の使用」を選択し、日付を返す式を指定します。
詳細は、第17章「プロセスへの遅延、期限および時間ベース・サイクルの追加」の第24.4項「タイマー・イベントの式の作成」を参照してください。
注意: 指定する日付および時間は、BPMNサービス・エンジンが使用するタイムゾーンに対応します。 |
「OK」をクリックします。
タイマー・イベントは指定された日時に起動します。日時の指定に式を使用している場合、エンジンはこの式を評価してタイマー・イベントの起動時間を決定します。
タイマー・イベントが間隔を使用するよう構成できます。間隔を指定するか、間隔を計算する式を使用できます。
間隔を使用するタイマー・イベントの構成方法は、次のとおりです。
タイマー・イベントを右クリックします。
「プロパティ」を選択します。
「実装」タブをクリックします。
「サイクル」を選択します。
時間間隔を指定するか、「式の使用」を選択し、間隔を返す式を作成します。
詳細は、24.4項「タイマー・イベントの式の作成」を参照してください。
「OK」をクリックします。
タイマー・イベントは、指定された間隔の時間を待機して、定期的に起動されます。タイマー・イベントが開始イベントまたは連続する境界イベントの場合、複数回起動されます。タイマー・イベントが中間タイマー・イベントまたは連続しない境界イベントの場合、起動まで指定された間隔待機しますが、1回だけ起動されます。
日次、週次または月次で、1つ以上の指定した時間に実行されるようにタイマー・イベントを構成することもできます。また、組織で定義されたカレンダ・ルールを使用してイベントをスケジュールし、イベントが休日や作業スケジュール外の日と重なった場合は指定したポリシーを使用してそのイベントを再スケジュールするようにタイマー・イベントを構成することもできます。
定期的に実行されるタイマー・イベントの構成方法は、次のとおりです。
タイマー・イベントを右クリックします。
「プロパティ」を選択します。
「実装」タブをクリックします。
「時間のスケジュール」を選択します。
定義する期間に対応するタブを選択します。
使用可能なオプションは、次のとおりです。
日次
週次
月次
「追加」ボタンをクリックして、イベントが発生する正確な時間を指定します。
イベントが1日、1週間または1か月の間に複数回実行されるように構成することもできます。
表17-1に、選択した期間に応じた時間の指定方法を示します。
さらに、次のオプション設定を構成できます。
実行元: イベントの実行が開始される日付と時刻を定義できます。
実行先: イベントの実行が停止される日付と時刻を定義できます。
反復: イベントが実行される回数を定義できます。定義した回数だけイベントが実行された後、イベントの実行が停止されます。
カレンダ・ルールの使用: 組織で定義されたカレンダ・ルールに基づいてイベントが実行されるよう指定します。
このオプションを選択した場合は、イベントが休日や作業スケジュール外の日に実行されるようにスケジュールされた場合のイベントの再スケジュール方法を定義する必要があります。使用可能な再スケジュール・オプションは次のとおりです。
再スケジュール・オプション | 説明 |
---|---|
再スケジュールなし |
イベントは実行されず、再スケジュールもされません。 |
できるだけ早く |
イベントは次に使用可能な作業時間に再スケジュールされます。 |
できるだけ早く、ただし同じ時間に |
イベントは次に使用可能な稼働日の同じ時間に再スケジュールされます。 |
「OK」をクリックします。