ライフサイクルイベントのアクティビティセットについて

TAKE01
Tera Contributor

コミュニティの皆様お世話になっております。

ServiceNowのHRSDのライフサイクルイベントについて質問させてください。

 

ライフサイクルイベントを作成するときは、アクティビティセットを作成すると思います。
基本的には、ライフサイクルイベントのフローを進行させるには、アクティビティセット内のすべてのアクティビティを処理する必要があります。


このセット内の個々のアクティビティを任意にしたり、スキップ可能にする方法はありますでしょうか?

1件の返信1

iwai
Giga Sage

次のアクティビティセットの実行条件をScriptによって詳細に判定できるので、必須のアクティビティが終了したことをScriptで判定するのはどうでしょう。その判定処理内でタスクを中断させても良いかもしれません。

以下のDocsでも少しScriptの書き方の例があるので参考になると思います。

ライフサイクルイベントアクティビティセットの設定 (servicenow.com)

/*例: 高度トリガースクリプト
トリガータイプ = 高度。
新規雇用者 (対象者) には、アサインされたマネージャーがいる。
新規雇用の開始日に達した (空白にはできません)。
特定のアクティビティセットが 2 つ完了した。*/
(function shouldActivitySetTrigger(parentCase /* GlideRecord for parent case */,
							  hrTriggerUtil /* hr_TriggerUtil script include instance */) {

	//Check that employee has a manager
	var employeelocationType = parentCase.subject_person.manager;
	if (gs.nil(employeeLocationType))
		return false;

	//Check that the employees start date is populated and on or before today
	var employeeStartDate = parentCase.subject_person_hr_profile.employment_start_date;
	if (gs.nil(employeeStartDate) || !hrTriggerUtil.checkForElapsedDate(employeeStartDate.getDisplayValue()))
		return false;

	//Check Previous Sets have finished
	var prerequisiteActivitySetIds = ['20f71984ecb61300964fb378c827556f', '58123661dbf2930085ea54c0cf9619ba'];
	if (!hrTriggerUtil.checkActivitySetsCompleted(prerequisiteActivitySetIds))
		return false;

	return true;   

})(parentCase, hrTriggerUtil);
/*例にある sys_id を自分のアクティビティセットの sys_id で置き換えます。アクティビティセットから、[フォームのコンテキストメニュー] アイコンをクリックし、[sys_id のコピー] を選択します。*/