タイマーの期限が切れると、特定のアクションがトリガされます。タイマーは、1回だけ機能させることも、繰返し機能させることもできます。タイマーは以下のエレメントに使用できます。
プロセス定義
タイマーを含むプロセス定義から新しいプロセスインスタンスが作成されるたびに、タイマーが実行されます。
Activityノード、Voting Activityノード、およびCompound Activityノード
ノードが活性状態になるとタイマーが実行されます。
Delayノード
プロセスの実行を一定の時間停止させる場合に、Delayノードとタイマーを組み合わせます。 Delayノードが活性状態になるとタイマーが実行されます。
注意
ご利用の環境によっては、タイマーで設定した時間と実際にタイマーが解除される時間に、1時間当たり1分程度の誤差がでる場合があります。
注意
サーバのプロジェクトのプロセス定義にタイマーを設定している場合は、以下について注意してください。
サーバを停止するなどの理由により、定義している開始日を過ぎることがあります。タイマーのタイプで、定期的のチェックボックスをオンにしている場合は、プロセスは一度は実行されますが、その後はエラーとなります。
タイマーを定義するときには、以下のタイプから選択できます。
絶対:
通常のカレンダーに基づく絶対的な日付を設定します。
絶対時間を日時で設定するかJavaScriptで設定します。例えば、日付とJavaScriptの両方を設定し、JavaScriptで4時間の値を返却する場合、その設定した日付から4時間後に期限が設定されます。例えば、JavaScriptを定義しないか、JavaScriptの返却値が無効な場合は、設定した日付で期限が設定されます。
カレンダー:
通常のカレンダーに基づいて、タイマーの期限が切れるまでの期間を設定します。
タイマーは、割り当てられているノードまたはプロセスインスタンスが活性状態になると開始します。時間の計算には、1週間のすべての曜日(7日間)、1日のすべての時間(24時間)を使用します。このため、通常の営業時間外にタイマーが設定されることもあります。カレンダーの日付は、JavaScriptで定義された時間を起点に設定することもできます。例えば、日付とJavaScriptの両方を設定した場合、JavaScriptで返却された日時を起点に入力された日付が計算され、それがタイマーの期限となります。JavaScriptが設定されていない場合は、入力された日付がタイマーの期限となります。
ビジネス:
ビジネスカレンダーに基づいて、タイマーの期限が切れるまでの期間を設定します。
タイマーは、割り当てられているノードまたはプロセスインスタンスが活性状態になると開始します。時間の計算には、営業日と営業時間だけを使用します。このため、タイマーの期限は必ず通常の営業時間内に設定されます。
注意
Systemwalker Runbook Automation Studioでは、ビジネスカレンダーを使用して営業日と営業時間を判断します。ビジネスカレンダーの詳細については、“6.22.4 ビジネスカレンダーの作成”を参照してください。
詳細:
指定した式に従ってタイマーを設定します。この式では、絶対時刻タイマーまたは相対時刻タイマーを定義します。時間の計算には、通常のカレンダーまたはビジネスカレンダーを使用します。
タイマーを定義する方法について説明します。
以下のどちらかの操作を行います。
プロセス定義の[プロパティ]ビューを表示するために、プロセス定義エディタ内の空のスペースをクリックします。
ノードの[プロパティ]ビューを表示するために、ノードを選択します。
ポイント
Delayノードをパレットから選択してドラッグアンドドロップし、ActivityノードやVoting Activityノードに関連付けることもできます。タイマーの名前を入力した後、ノードの[プロパティ]ビューでプロパティを定義します。
[タイマー]タブを選択します。
[すべてのタイマー]領域で、[追加]ボタンをクリックします。
[タイマーの詳細]領域に、追加されたタイマーの情報が表示されます。
デフォルトで、新しいタイマー名は、“Timer1”となります。[名前]フィールドで名前を変更できます。
タイマーを変更するために、[すべてのタイマー]領域で、タイマーを選択します。
オプション: [説明]フィールドにタイマーの説明を入力することもできます。
タイマーを設定するために、以下のいずれかを設定します。
通常のカレンダーに基づく絶対的な時刻でタイマーを設定する方法について説明します。
[タイマーの詳細]領域の[タイプ]ドロップダウンリストで[絶対]を選択します。
[年]、[月]、[日]、[時間]フィールドに、年月日、時間を入力します。
JavaScriptを[スクリプト]フィールドに入力します。[スクリプト]フィールドに直接入力することも、[A+B]ボタンをクリックして、[式の作成]ダイアログを表示し、そのダイアログでJavaScriptを入力することもできます。例えば、“DateAdd(Packages.java.util.Date(), 4, "hh").getTime()”は、ノードが活性化されてから4時間後にタイマーの期限が設定されます。以下の図は、 タイマー(タイプは[絶対])を示しています。
図6.31 タイマー(タイプは[絶対])
以下は、[式の計算]ダイアログを示しています。
図6.32 [式の計算]ダイアログ
注意
[時間]フィールドに、24:00:00より大きな値を設定した場合、24時間を1日と換算して、[日付]フィールドに加算されます。ノードまたはプロセスインスタンスが活性化されてからの相対時間でタイマーを設定する方法について説明します。
通常のカレンダーに基づく相対的な時刻でタイマーを設定する方法について説明します。
[タイマーの詳細]領域の[タイプ]ドロップダウンリストで、[カレンダー]を選択します。
タイマーの期限を何日、何時間後で設定します。例えば、ノードが活性化されてから2日と3時間後にタイマーの期限を設定する場合は、2日後03:00:00時間と入力します。
繰り返して実行する[カレンダー]のタイマーを設定する場合は、[定期的]チェックボックスを選択し、タイマーが期限を設定します。繰り返して実行する[カレンダー]のタイマーは通常のカレンダーに基づく周期的なタイマーです。 [定期的]チェックボックスを選択していない場合は、タイマーが一度だけ実行される[カレンダー]のタイマーです。
JavaScriptを使用すると、相対的な期限を計算する起点を設定することができます。カレンダータイマーは、起点の時間としてJavaScriptで返却された値を使用し、それを起点に相対的な時間を使用して期限を計算します。例えば、[日]フィールドに2日と入力し、[スクリプト]フィールドに“uda.get("RequestDate")”を入力した場合、スクリプトの返却した日時から2日後がタイマーの期限となります。 RequestDateの値は、Dateのクラスのlong値を設定します。
注意
カレンダーの最大値は、カレンダー(日付と時間)をミリ秒で変換し、その値がLong.MAX_VALUEを超えない値です。
ビジネスカレンダーを使用してタイマーを設定する方法について説明します。
[タイマーの詳細]領域の[タイプ]ドロップダウンリストで、[ビジネス]を選択します。
何営業日後にタイマーの期限を設定します。ビジネス時間に対して、以下のオプション(“現在時刻に対して”、“開始時刻に対して”、“終了時刻に対して”,“絶対時刻”)を選択することができます。
繰り返して実行する[ビジネス]のタイマーを設定する場合は、[定期的]チェックボックスを選択し、タイマーの期限を設定します。繰り返して実行する[ビジネス]のタイマーはビジネスカレンダーに基づく周期的なタイマーです。 [定期的]チェックボックスを選択していない場合は、タイマーが一度だけ実行される[ビジネス]のタイマーです。
タイマーの式を使用してタイマーを設定する方法について説明します。
[タイマーの詳細]領域の[タイプ]ドロップダウンリストで、[詳細]を選択します。タイマーの式については、“6.22.3 時刻コードと日付コード”を参照してください。
繰り返して実行する[詳細]のタイマーを設定する場合は、[定期的]チェックボックスを選択し、タイマーの期限を設定します。[定期的]チェックボックスを選択していない場合は、タイマーが一度だけ実行される[詳細]のタイマーです。
注意
[詳細]を選択して、日付を入力した場合、その入力した日付が、[ビジネス]で表現できる場合、その値は、[ビジネス]として表示されます。
注意
定期タイマーは常に指定されたイベントと相対的に設定されます。定期タイマーが最初に起動するのは、プロセスインスタンスまたはノードが活性化された時刻との相対時刻です。その次からは、最後にタイマーが起動した時刻からの相対時刻に起動します。
[追加]をクリックし、タイマーの期限が切れたときに実行するアクションを選択します。
[アクション]リストに、通常のアクション、エラーアクション、または補償アクションを追加できます。
アクションについては、“11.1 Java Action”を参照してください。
以下の図は、1 営業日後に期限が切れるタイマーを示しています。タイマーの期限が切れると、アクティビティはエスカレートされます。
図6.33 タイマーの定義
定義するタイマーごとに、1つまたは複数のUDAが作成されます。UDA名は、タイマーとタイマーアクションを識別します。
たとえば、一般的なUDA名が__atmr_publication_timeであるとします。この場合の__atmrはこれがタイマーであることを示し、publicationにはタイマーの名前が指定され、timeにはUDAの機能が指定されます。
これらのUDAは、フォーム、アクション、またはJavaScriptを使用して変更できます。
タイマーにMake Choiceアクションが定義済みで、そのアクションの選択アイテムとして矢印の名前も定義済みの場合、Activityノード、Voting ActivityノードまたはCompound Activityノードを他のノードと接続する矢印には、以下のようなシンボルが追加されます。
図6.34 タイマーのシンボル