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