ライフサイクルイベント トリガーとワークフロー参照
ライフサイクルイベント トリガーとワークフローに関する情報。
人事アクティビティランチャー (HR Activity Launcher) フロー
ライフサイクルイベントケースが [準備完了] ステータスに変更されると、すべてのアクティビティセットが [人事アクティビティランチャー (HR Activity Launcher)] フローを介して実行されます。各アクティビティセットのアクティビティはトリガーされません。アクティビティをトリガーする他のアクティビティセットに依存していないアクティビティセットでは、トリガー条件が分析されます。
トリガー条件が満たされていない場合は、[トリガースクリプトの再評価を待機 (Wait to reevaluate Trigger Script)] タイマーが実行されるまで待機します (デフォルトは 4 時間ごと)。
トリガー条件が満たされていても、評価間隔が経過した後、アクティビティセットが再評価されるまでさらに 4 時間待機する必要があります。再評価の待機のため、トリガーするアクティビティセットが遅延する可能性があります。
[トリガースクリプトの再評価を待機 (Wait to reevaluate Trigger Script)] タイマーは、 [sn_hr_le_activity_set] テーブルの [evaluation_interval] を使用します。デフォルト値は 4 時間です。アクティビティセットをより早く起動するために、 [evaluation_interval] フィールドの値を減らすことができます。「評価間隔のデフォルト待機時間を変更する」を参照してください。
注:
デフォルト値を変更する場合は注意が必要です。頻繁に更新するとより多くのイベントがトリガーされ、ライフサイクルイベントアクティビティセットが完了する前にキャンセルされる可能性があります。詳細については、「ライフサイクルイベントのプロパティ」を参照してください。
[イベント BR 付き条件 (デモ) (Condition with Event BR (Demo))] アクティビティセット
アクティビティセットをトリガーするには、[評価間隔] フィールドを使用する代わりに、デモデータに含まれている [イベント BR 付き条件 (デモ) (Condition with Event BR (Demo))] アクティビティセットを使用することもできます。[イベント BR 付き条件 (デモ) (Condition with Event BR (Demo))] の使用はオプションのソリューションですが、[HR アクティビティセットトリガーチェック (HR Activity Set Trigger Check)] ワークフローで check_activity_set_trigger イベントをトリガーするサーバー側コード (ビジネスルール、イベントスクリプト、スケジュール済みジョブなど) を作成して使用できます。サーバー側から check_activity_set_trigger イベントを使用して任意のアクティビティセットをトリガーできますが、即時トリガーされるアクティビティセットまたは他のアクティビティセットによってのみトリガーされるアクティビティセットは例外です。
注:
[イベント BR 付き条件 (デモ) (Condition with Event BR (Demo))] アクティビティセットにアクセスするには、ヒューマンリソース (HR) スコープ対象のアプリ:Lifecycle Events for Enterprise (com.sn_hr_lifecycle_ent) プラグインを有効にします。この方法は [評価間隔] フィールドの値の代わりに使用できるオプションです。
- アクティビティセットのトリガータイプを [条件] に設定する必要があります。
- [イベント BR 付き条件 (デモ) (Condition with Event BR (Demo))] アクティビティセットは、プライマリライフサイクルイベントケースのステータスが [対応中] に移行するとトリガーされます。
- [メール:イベント BR 付き条件 (デモ) (Email - Condition with Event BR (Demo))] アクティビティは [イベント BR 付き条件 (デモ) (Condition with Event BR (Demo))] アクティビティセットに含まれています。
- [イベント BR 付き条件 (デモ) (Condition with Event BR (Demo))] アクティビティセットには、[HR アクティビティランチャー (HR Activity Launcher)] ワークフローが含まれています。また、[イベント BR 付き条件 (デモ) (Condition with Event BR (Demo))] ビジネスルールも含まれています。
- [イベント BR 付き条件 (デモ) (Condition with Event BR (Demo))] ビジネスルールは、LE ケースのステータスが [対応中] に変更された後に実行されます。
- 次に、[人事アクティビティセットトリガーチェック (HR Activity Set Trigger Check)] ワークフローが見つかるまで、LE ケースに対して実行されているワークフローを検索し、check_activity_set_trigger イベントをそのワークフローにブロードキャストします。
- [イベント BR 付き条件 (デモ) (Condition with Event BR (Demo))] アクティビティセット、[メール:イベント BR 付き条件 (デモ) (Email - Condition with Event BR (Demo))] アクティビティ、および [イベント BR 付き条件 (デモ) (Condition with Event BR (Demo))] ビジネスルールは、要件に合わせて変更できます。注:詳細については、ライフサイクルイベント のワークフロー および「ビジネスルール」を参照してください。
[人事アクティビティセットトリガーチェック (HR Activity Set Trigger Check)] ワークフロー
[HR アクティビティセットトリガーチェック (HR Activity Set Trigger Check)] ワークフローが [HR アクティビティランチャー (HR Activity Launcher)] ワークフローに追加され、アクティビティセットをトリガーする準備ができているかどうかを確認するために任意のサーバー側スクリプトでワークフローに通知できるようになります。[HR アクティビティセットトリガーチェック (HR Activity Set Trigger Check)] ワークフローは条件を評価します。ワークフローは直接トリガーされません。
- [HR アクティビティセットトリガーチェック (HR Activity Set Trigger Check)] ワークフローは、アクティビティセットが他のアクティビティセットに依存していない場合に呼び出されます。
- アクティビティセットのトリガー条件が満たされているかどうかは定期的に確認されます。
- トリガー条件が満たされていない場合には、評価間隔が経過するまで待機します。
- check_activity_set_trigger イベントが発生すると、アクティビティセットのトリガー条件がすぐに確認されます。
アクティビティセットトリガーワークフローイベントの確認
サーバー側スクリプト (ビジネスルール、イベントスクリプト、スケジュール済みジョブなど) で check_activity_set_trigger ワークフローイベントを使用して、 [トリガースクリプトの再評価を待機 (Wait to reevaluate the Trigger Script)] タイマーを短縮し、アクティビティセットのトリガーをジャストインタイムで評価することができます。長時間のタイマーの待機を避けるために、より頻繁な評価間隔の使用を検討している場合は、代わりにこのオプションを使用してください。
注:
check_activity_set_trigger イベントは、即時トリガーされるアクティビティセットまたは他のアクティビティセットによってのみトリガーされるアクティビティセットでは機能しません。
check_activity_set_trigger ワークフローイベントを使用する準備をするときは、アクティビティセットのトリガー基準をいつ確認するかを最初に決定してください。たとえば、「条件」トリガータイプを使用している場合、条件が true かどうかを確認するには、同じ条件を持つビジネスルールが適しています。「詳細」トリガーを使用する場合は、詳細スクリプトが true を返すサーバー側のビジネスロジックを特定します。例:
- スクリプトインクルード
- スケジュール済みジョブ
- インポートスクリプト
トリガー基準を確認するサーバー側の場所を決定したら、次のスクリプトを追加します。
(function executeRule(current, previous /*null when async*/) {
var wf = new global.Workflow().getRunningFlows(current);
while (wf.next()) {
if (wf.getValue('name') !== 'HR Activity Set Trigger Check')
continue;
new global.Workflow().broadcastEvent(wf.sys_id, 'check_activity_set_trigger');
}
})(current, previous);