OnCallRotation: グローバル
OnCallRotation スクリプトインクルードは、オンコールスケジュールを管理するメソッドを提供します。
詳細については、「 オンコールスケジューリング」を参照してください。
OnCallRotation:OnCallRotation()
OnCallRotation クラスのインスタンスを作成します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
var oncall = new OnCallRotation();
OnCallRotation:addCurrentToNotified()
現在のエスカレーションメンバーを通知されたユーザーのリストに追加して、API が誰に連絡したかを認識できるようにします。この API は、単一シフト、重複シフト、およびカスタムエスカレーションに適用されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| なし |
OnCallRotation - cancelEscalations(GlideRecord escalationGr)
startEscalations API で開始された GlideRecord のエスカレーションをすべてキャンセルします。この API は、単一シフト、重複シフト、およびカスタムエスカレーションに適用されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| escalationGr | GlideRecord | ローテーションエスカレーションの GlideRecord (cmn_rota_escalation |
| タイプ | 説明 |
|---|---|
| なし |
OnCallRotation - continueEscalations(GlideRecord escalationGr)
ドキュメント (インシデントnow_GR) およびグループのエスカレーションを続行します。この API は、単一シフト、重複シフト、およびカスタムエスカレーションに適用されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| escalationGr | GlideRecord | ローテーションエスカレーションの GlideRecord (cmn_rota_escalation |
| タイプ | 説明 |
|---|---|
| なし |
OnCallRotation - getCatchAll(文字列 rotaID)
予備連絡先ユーザーのsys_idを取得します。getCatchAllType() メソッドと一緒に使用して、返される ID のソースを判別します。この API は、単一シフト、重複シフト、およびカスタムエスカレーションに適用されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| rotaID | 文字列 | 勤務表のsys_id。 |
| タイプ | 説明 |
|---|---|
| 文字列 | sys_user、cmn_rota_roster、または null のsys_id。 |
var rotaSysId = '349f399173062300e7af6238edf6a75e';
var onCallRotation = new OnCallRotation();
var catchAll = onCallRotation.getCatchAll(rotaSysId);
gs.log(catchAll);
出力:
46d44a23a9fe19810012d100cca80666
OnCallRotation - getCatchAllType(文字列 rotaID)
エスカレーションチェーンの最後に存在する_catch all_のタイプを取得します。オンコール担当者がアサインされていない状態でエスカレーションチェーンが終了すると、設定されている場合、インシデントが_catch all_にアサインされます。この API は、単一シフト、重複シフト、およびカスタムエスカレーションに適用されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| rotaID | 文字列 | 勤務表のsys_id。 |
| タイプ | 説明 |
|---|---|
| 文字列 |
|
var rotaSysId = '349f399173062300e7af6238edf6a75e';
var onCallRotation = new OnCallRotation();
var catchAllType = onCallRotation.getCatchAllType(rotaSysId);
gs.log(catchAllType);
出力:
group_manager
OnCallRotation - getEscalateeAt(String groupID, GlideDateTime dateTime, Number position)
グループのシフトについて、指定された日時に、エスカレーションラインナップの特定の位置で、エスカレートするアイテム (ユーザー [sys_user])、グループ、または通知デバイス [cmn_notif_device] のいずれかを取得します。この API は 1 つのシフトに適用されます。
無効な位置またはグループが引数として渡された場合、このメソッドは null を返します。
getTableName() メソッドを使用して、返される GlideRecord が sys_user テーブルからのものかcmn_notif_deviceテーブルからのものかを確認できます。
| 名前 | タイプ | 説明 |
|---|---|---|
| groupID | 文字列 | エスカレートするアイテムを取得するグループのsys_id。 |
| 日時 | GlideDateTime | エスカレーションラインナップを開始する日時。 |
| position | 番号 | アイテムのエスカレート先を決定するラインナップ内の位置 (1 から開始する。つまり、カウントは 1 から始まる)。 |
| タイプ | 説明 |
|---|---|
| GlideRecord | エスカレート先のアイテム、つまり、特定の時間と位置でのエスカレーション先 (通知ルールに応じて、ユーザー、グループ、またはデバイスレコード)。何も見つからない場合は null を返します。 |
var groupSysId = '096fb59173062300e7af6238edf6a783';
var currentTime = new GlideDateTime();
var onCallRotation = new OnCallRotation();
var escalatee = onCallRotation.getEscalateeAt(groupSysId, currentTime, 1);
gs.log(escalatee.name);
出力:
Abel Tuter
OnCallRotation - getEscalatees(String groupSysIds, String rotaSysIds, String rosterSysIds, GlideDateTime gdt, GlideRecord taskGr)
指定された時間にオンコールのエスカレーション先のリストを取得します。時刻が指定されていない場合は、現在の時刻が使用されます。groupSysId が指定されていない場合は、空のリストが返されます。この API は、単一シフト、重複シフト、およびカスタムエスカレーションに適用されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| groupSysIds | 文字列 | レコードのフィルタリングに使用する、sys_user_groupのsys_idsのカンマ区切りリスト。 |
| rotaSysId | 文字列 | レコードのフィルタリングに使用するcmn_rota sys_idsのカンマ区切りリスト。 |
| rosterSysId | 文字列 | レコードのフィルタリングに使用するcmn_rota_roster sys_idsのカンマ区切りリスト。 |
| GDT | GlideDateTime | UTC タイムゾーンの日付 |
| taskGr | GlideRecord | オプション。現在のタスクレコード。taskGr が空の場合、このメソッドはデフォルトのエスカレーション計画を返します。taskGr が渡された場合、エスカレーションポリシーが順番に評価され、このメソッドは対応するエスカレーション計画を返します。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | userId、deviceId、escalationGroups などのエスカレーション先情報。 |
var groupSysId = '096fb59173062300e7af6238edf6a783';
var currentTime = new GlideDateTime();
var onCallRotation = new OnCallRotation();
var result = onCallRotation.getEscalatees(groupSysId, "", "", currentTime);
gs.log(JSON.stringify(result));
出力:
単一シフトの場合:
[
{
"memberId": "119f399173062300e7af6238edf6a7e7",
"memberIds": [],
"userId": "62826bf03710200044e0bfc8bcbe5df1",
"userIds": [],
"roster": "9d9f399173062300e7af6238edf6a7e5",
"rota": "349f399173062300e7af6238edf6a75e",
"group": "096fb59173062300e7af6238edf6a783",
"escalationGroups": [],
"deviceId": "",
"deviceIds": [],
"isDevice": false,
"order": 1,
"isOverride": false,
"rotationScheduleId": "119f399173062300e7af6238edf6a7df",
"memberScheduleId": "9d9f399173062300e7af6238edf6a7ec"
},
{
"memberId": "1d9f399173062300e7af6238edf6a7e8",
"memberIds": [],
"userId": "a8f98bb0eb32010045e1a5115206fe3a",
"userIds": [],
"roster": "9d9f399173062300e7af6238edf6a7e5",
"rota": "349f399173062300e7af6238edf6a75e",
"group": "096fb59173062300e7af6238edf6a783",
"escalationGroups": [],
"deviceId": "",
"deviceIds": [],
"isDevice": false,
"order": 2,
"isOverride": false,
"rotationScheduleId": "119f399173062300e7af6238edf6a7df",
"memberScheduleId": "d99f399173062300e7af6238edf6a7ef"
},
{
"memberId": "dd9f399173062300e7af6238edf6a7e9",
"memberIds": [],
"userId": "0a826bf03710200044e0bfc8bcbe5d7a",
"userIds": [],
"roster": "9d9f399173062300e7af6238edf6a7e5",
"rota": "349f399173062300e7af6238edf6a75e",
"group": "096fb59173062300e7af6238edf6a783",
"escalationGroups": [],
"deviceId": "",
"deviceIds": [],
"isDevice": false,
"order": 3,
"isOverride": false,
"rotationScheduleId": "119f399173062300e7af6238edf6a7df",
"memberScheduleId": "519f399173062300e7af6238edf6a7f2"
}
]
重複シフトの場合:
[
{
"memberId": "119f399173062300e7af6238edf6a7e7",
"memberIds": [],
"userId": "62826bf03710200044e0bfc8bcbe5df1",
"userIds": [],
"roster": "9d9f399173062300e7af6238edf6a7e5",
"rota": "349f399173062300e7af6238edf6a75e",
"group": "096fb59173062300e7af6238edf6a783",
"escalationGroups": [],
"deviceId": "",
"deviceIds": [],
"isDevice": false,
"order": 1,
"isOverride": false,
"rotationScheduleId": "119f399173062300e7af6238edf6a7df",
"memberScheduleId": "9d9f399173062300e7af6238edf6a7ec"
},
{
"memberId": "7daf799173062300e7af6238edf6a7a2",
"memberIds": [],
"userId": "d2826bf03710200044e0bfc8bcbe5dc9",
"userIds": [],
"roster": "b5af799173062300e7af6238edf6a7a2",
"rota": "35af799173062300e7af6238edf6a79e",
"group": "096fb59173062300e7af6238edf6a783",
"escalationGroups": [],
"deviceId": "",
"deviceIds": [],
"isDevice": false,
"order": 1,
"isOverride": false,
"rotationScheduleId": "3daf799173062300e7af6238edf6a79e",
"memberScheduleId": "06af799173062300e7af6238edf6a7cd"
},
{
"memberId": "1d9f399173062300e7af6238edf6a7e8",
"memberIds": [],
"userId": "a8f98bb0eb32010045e1a5115206fe3a",
"userIds": [],
"roster": "9d9f399173062300e7af6238edf6a7e5",
"rota": "349f399173062300e7af6238edf6a75e",
"group": "096fb59173062300e7af6238edf6a783",
"escalationGroups": [],
"deviceId": "",
"deviceIds": [],
"isDevice": false,
"order": 2,
"isOverride": false,
"rotationScheduleId": "119f399173062300e7af6238edf6a7df",
"memberScheduleId": "d99f399173062300e7af6238edf6a7ef"
},
{
"memberId": "f5af799173062300e7af6238edf6a7c9",
"memberIds": [],
"userId": "ee826bf03710200044e0bfc8bcbe5def",
"userIds": [],
"roster": "b5af799173062300e7af6238edf6a7a2",
"rota": "35af799173062300e7af6238edf6a79e",
"group": "096fb59173062300e7af6238edf6a783",
"escalationGroups": [],
"deviceId": "",
"deviceIds": [],
"isDevice": false,
"order": 2,
"isOverride": false,
"rotationScheduleId": "3daf799173062300e7af6238edf6a79e",
"memberScheduleId": "8aaf799173062300e7af6238edf6a7cf"
},
{
"memberId": "dd9f399173062300e7af6238edf6a7e9",
"memberIds": [],
"userId": "0a826bf03710200044e0bfc8bcbe5d7a",
"userIds": [],
"roster": "9d9f399173062300e7af6238edf6a7e5",
"rota": "349f399173062300e7af6238edf6a75e",
"group": "096fb59173062300e7af6238edf6a783",
"escalationGroups": [],
"deviceId": "",
"deviceIds": [],
"isDevice": false,
"order": 3,
"isOverride": false,
"rotationScheduleId": "119f399173062300e7af6238edf6a7df",
"memberScheduleId": "519f399173062300e7af6238edf6a7f2"
},
{
"memberId": "8aaf799173062300e7af6238edf6a7ca",
"memberIds": [],
"userId": "e2826bf03710200044e0bfc8bcbe5de0",
"userIds": [],
"roster": "b5af799173062300e7af6238edf6a7a2",
"rota": "35af799173062300e7af6238edf6a79e",
"group": "096fb59173062300e7af6238edf6a783",
"escalationGroups": [],
"deviceId": "",
"deviceIds": [],
"isDevice": false,
"order": 3,
"isOverride": false,
"rotationScheduleId": "3daf799173062300e7af6238edf6a79e",
"memberScheduleId": "02af799173062300e7af6238edf6a7d2"
}
]
カスタムエスカレーションの場合
[
{
"memberId": "",
"memberIds": [],
"userId": "",
"userIds": [
"62826bf03710200044e0bfc8bcbe5df1",
"46d44a23a9fe19810012d100cca80666"
],
"roster": "",
"rota": "349f399173062300e7af6238edf6a75e",
"group": "096fb59173062300e7af6238edf6a783",
"escalationGroups": [
"a715cd759f2002002920bde8132e7018"
],
"deviceId": "",
"deviceIds": [],
"isDevice": false,
"order": 1,
"isOverride": false,
"rotationScheduleId": "119f399173062300e7af6238edf6a7df",
"memberScheduleId": ""
},
{
"memberId": "",
"memberIds": [
"119f399173062300e7af6238edf6a7e7"
],
"userId": "",
"userIds": [
"62826bf03710200044e0bfc8bcbe5df1"
],
"roster": "9d9f399173062300e7af6238edf6a7e5",
"rota": "349f399173062300e7af6238edf6a75e",
"group": "096fb59173062300e7af6238edf6a783",
"escalationGroups": [],
"deviceId": "",
"deviceIds": [],
"isDevice": false,
"order": 2,
"isOverride": false,
"rotationScheduleId": "119f399173062300e7af6238edf6a7df",
"memberScheduleId": ""
}
]
/**
* create a custom escalation for service desk shift with condition as P1 for Incident
* taskGr is optional parameter
* if taskGr is empty then it returns list of escalatees in default escalation plan
* if taskGr is passed then escalation policies are executed evaluated in order and list of escalatees in corresponding escalation plan is returned
**/
var serviceDeskSysId = 'd625dccec0a8016700a222a0f7900d06';
var taskGr = new GlideRecord('incident');
taskGr.get('ed92e8d173d023002728660c4cf6a7bc');
var ocRotation = new OnCallRotation();
var escalatees = ocRotation.getEscalatees(serviceDeskSysId, null, null, null, null, taskGr);
gs.log(JSON.stringify(escalatees));
OnCallRotation - getEscalationPlan(文字列 groupSysId, GlideDateTime gdt, 文字列 rotaSysIds, GlideRecord taskGr)
指定された日時にグループのシフトについて、エスカレート先オブジェクトのリスト、ユーザー [sys_user] または通知デバイス [cmn_notif_device] のいずれかで構成されるエスカレーション計画を取得します。この API は、単一シフト、重複シフト、およびカスタムエスカレーションに適用されます。
- 番号順:ラインナップ内のエスカレーション順
- 文字列 userId:sys_userレコードの sys_id または null
- 文字列 deviceId:cmn_notif_deviceレコードの sys_id または null
- ブール値 isDevice:エスカレート先のアイテムがデバイスかユーザーかによって true または false
- GlideDuration timeBetweenReminders:リマインダーが送信される間隔
- 番号 reminderNum:エスカレート先アイテムごとに送信されるリマインダーの数
| 名前 | タイプ | 説明 |
|---|---|---|
| groupID | 文字列 | エスカレーション計画が必要なグループのsys_id。 |
| GDT | GlideDateTime | エスカレーションラインナップを開始する日時。デフォルトは [now] です。yyyy-MM-dd HH:mm:ss は UTC タイムゾーンの形式です。 |
| rotaSysId | 文字列 | レコードのフィルタリングに使用するcmn_rota sys_idsのカンマ区切りリスト。 |
| taskGr | GlideRecord | オプション。現在のタスクレコード。taskGr が空の場合、このメソッドはデフォルトのエスカレーション計画を返します。taskGr が渡された場合、エスカレーションポリシーが順番に評価され、このメソッドは対応するエスカレーション計画を返します。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | エスカレート先のエスカレーションオブジェクトのリスト。 |
var groupSysId = '096fb59173062300e7af6238edf6a783';
var currentTime = new GlideDateTime();
var onCallRotation = new OnCallRotation();
var result = onCallRotation.getEscalationPlan(groupSysId, currentTime);
gs.log(JSON.stringify(result));
出力:
単一シフトの場合:
[
{
"order": 1,
"userId": "62826bf03710200044e0bfc8bcbe5df1",
"userIds": [],
"deviceId": "",
"deviceIds": [],
"escalationGroups": [],
"isDevice": false,
"timeToNextStep": null,
"cmnRotaEscStepDefId": null,
"reminderNum": 1,
"rosterId": "9d9f399173062300e7af6238edf6a7e5",
"memberId": "119f399173062300e7af6238edf6a7e7",
"memberIds": [],
"isOverride": false,
"additionalEscalatees": [],
"forcedCommunicationChannel": "",
"rotaId": "349f399173062300e7af6238edf6a75e",
"groupId": "096fb59173062300e7af6238edf6a783",
"rotaScheduleId": "119f399173062300e7af6238edf6a7df",
"memberScheduleId": "9d9f399173062300e7af6238edf6a7ec"
},
{
"order": 2,
"userId": "a8f98bb0eb32010045e1a5115206fe3a",
"userIds": [],
"deviceId": "",
"deviceIds": [],
"escalationGroups": [],
"isDevice": false,
"timeToNextStep": null,
"cmnRotaEscStepDefId": null,
"reminderNum": 1,
"rosterId": "9d9f399173062300e7af6238edf6a7e5",
"memberId": "1d9f399173062300e7af6238edf6a7e8",
"memberIds": [],
"isOverride": false,
"additionalEscalatees": [],
"forcedCommunicationChannel": "",
"rotaId": "349f399173062300e7af6238edf6a75e",
"groupId": "096fb59173062300e7af6238edf6a783",
"rotaScheduleId": "119f399173062300e7af6238edf6a7df",
"memberScheduleId": "d99f399173062300e7af6238edf6a7ef"
},
{
"order": 3,
"userId": "0a826bf03710200044e0bfc8bcbe5d7a",
"userIds": [],
"deviceId": "",
"deviceIds": [],
"escalationGroups": [],
"isDevice": false,
"timeToNextStep": null,
"cmnRotaEscStepDefId": null,
"reminderNum": 1,
"rosterId": "9d9f399173062300e7af6238edf6a7e5",
"memberId": "dd9f399173062300e7af6238edf6a7e9",
"memberIds": [],
"isOverride": false,
"additionalEscalatees": [],
"forcedCommunicationChannel": "",
"rotaId": "349f399173062300e7af6238edf6a75e",
"groupId": "096fb59173062300e7af6238edf6a783",
"rotaScheduleId": "119f399173062300e7af6238edf6a7df",
"memberScheduleId": "519f399173062300e7af6238edf6a7f2"
}
]
重複シフトの場合:
[
{
"order": 1,
"userId": "62826bf03710200044e0bfc8bcbe5df1",
"userIds": [],
"deviceId": "",
"deviceIds": [],
"escalationGroups": [],
"isDevice": false,
"timeToNextStep": null,
"cmnRotaEscStepDefId": null,
"reminderNum": 1,
"rosterId": "9d9f399173062300e7af6238edf6a7e5",
"memberId": "119f399173062300e7af6238edf6a7e7",
"memberIds": [],
"isOverride": false,
"additionalEscalatees": [
{
"order": 1,
"userId": "d2826bf03710200044e0bfc8bcbe5dc9",
"userIds": [],
"deviceId": "",
"deviceIds": [],
"escalationGroups": [],
"isDevice": false,
"timeToNextStep": null,
"cmnRotaEscStepDefId": null,
"reminderNum": 1,
"rosterId": "b5af799173062300e7af6238edf6a7a2",
"memberId": "7daf799173062300e7af6238edf6a7a2",
"memberIds": [],
"isOverride": false,
"additionalEscalatees": [],
"forcedCommunicationChannel": "",
"rotaId": "35af799173062300e7af6238edf6a79e",
"groupId": "096fb59173062300e7af6238edf6a783",
"rotaScheduleId": "3daf799173062300e7af6238edf6a79e",
"memberScheduleId": "06af799173062300e7af6238edf6a7cd"
}
],
"forcedCommunicationChannel": "",
"rotaId": "349f399173062300e7af6238edf6a75e",
"groupId": "096fb59173062300e7af6238edf6a783",
"rotaScheduleId": "119f399173062300e7af6238edf6a7df",
"memberScheduleId": "9d9f399173062300e7af6238edf6a7ec"
},
{
"order": 2,
"userId": "a8f98bb0eb32010045e1a5115206fe3a",
"userIds": [],
"deviceId": "",
"deviceIds": [],
"escalationGroups": [],
"isDevice": false,
"timeToNextStep": null,
"cmnRotaEscStepDefId": null,
"reminderNum": 1,
"rosterId": "9d9f399173062300e7af6238edf6a7e5",
"memberId": "1d9f399173062300e7af6238edf6a7e8",
"memberIds": [],
"isOverride": false,
"additionalEscalatees": [
{
"order": 2,
"userId": "ee826bf03710200044e0bfc8bcbe5def",
"userIds": [],
"deviceId": "",
"deviceIds": [],
"escalationGroups": [],
"isDevice": false,
"timeToNextStep": null,
"cmnRotaEscStepDefId": null,
"reminderNum": 1,
"rosterId": "b5af799173062300e7af6238edf6a7a2",
"memberId": "f5af799173062300e7af6238edf6a7c9",
"memberIds": [],
"isOverride": false,
"additionalEscalatees": [],
"forcedCommunicationChannel": "",
"rotaId": "35af799173062300e7af6238edf6a79e",
"groupId": "096fb59173062300e7af6238edf6a783",
"rotaScheduleId": "3daf799173062300e7af6238edf6a79e",
"memberScheduleId": "8aaf799173062300e7af6238edf6a7cf"
}
],
"forcedCommunicationChannel": "",
"rotaId": "349f399173062300e7af6238edf6a75e",
"groupId": "096fb59173062300e7af6238edf6a783",
"rotaScheduleId": "119f399173062300e7af6238edf6a7df",
"memberScheduleId": "d99f399173062300e7af6238edf6a7ef"
},
{
"order": 3,
"userId": "0a826bf03710200044e0bfc8bcbe5d7a",
"userIds": [],
"deviceId": "",
"deviceIds": [],
"escalationGroups": [],
"isDevice": false,
"timeToNextStep": null,
"cmnRotaEscStepDefId": null,
"reminderNum": 1,
"rosterId": "9d9f399173062300e7af6238edf6a7e5",
"memberId": "dd9f399173062300e7af6238edf6a7e9",
"memberIds": [],
"isOverride": false,
"additionalEscalatees": [
{
"order": 3,
"userId": "e2826bf03710200044e0bfc8bcbe5de0",
"userIds": [],
"deviceId": "",
"deviceIds": [],
"escalationGroups": [],
"isDevice": false,
"timeToNextStep": null,
"cmnRotaEscStepDefId": null,
"reminderNum": 1,
"rosterId": "b5af799173062300e7af6238edf6a7a2",
"memberId": "8aaf799173062300e7af6238edf6a7ca",
"memberIds": [],
"isOverride": false,
"additionalEscalatees": [],
"forcedCommunicationChannel": "",
"rotaId": "35af799173062300e7af6238edf6a79e",
"groupId": "096fb59173062300e7af6238edf6a783",
"rotaScheduleId": "3daf799173062300e7af6238edf6a79e",
"memberScheduleId": "02af799173062300e7af6238edf6a7d2"
}
],
"forcedCommunicationChannel": "",
"rotaId": "349f399173062300e7af6238edf6a75e",
"groupId": "096fb59173062300e7af6238edf6a783",
"rotaScheduleId": "119f399173062300e7af6238edf6a7df",
"memberScheduleId": "519f399173062300e7af6238edf6a7f2"
}
]
カスタムエスカレーションの場合:
[
{
"order": 1,
"userId": "",
"userIds": [
"62826bf03710200044e0bfc8bcbe5df1",
"46d44a23a9fe19810012d100cca80666"
],
"deviceId": "",
"deviceIds": [],
"escalationGroups": [
"a715cd759f2002002920bde8132e7018"
],
"isDevice": false,
"timeBetweenReminders": {},
"timeToNextStep": {},
"cmnRotaEscStepDefId": "655042d173062300e7af6238edf6a738",
"reminderNum": 1,
"rosterId": "",
"memberId": "",
"memberIds": [],
"isOverride": false,
"additionalEscalatees": [],
"forcedCommunicationChannel": "",
"rotaId": "349f399173062300e7af6238edf6a75e",
"groupId": "096fb59173062300e7af6238edf6a783",
"rotaScheduleId": "119f399173062300e7af6238edf6a7df",
"memberScheduleId": ""
},
{
"order": 2,
"userId": "",
"userIds": [],
"deviceId": "",
"deviceIds": [],
"escalationGroups": [],
"isDevice": false,
"timeBetweenReminders": {},
"timeToNextStep": {},
"cmnRotaEscStepDefId": "8b6042d173062300e7af6238edf6a7f3",
"reminderNum": 1,
"rosterId": "",
"memberId": "",
"memberIds": [],
"isOverride": false,
"additionalEscalatees": [],
"forcedCommunicationChannel": "",
"rotaId": "349f399173062300e7af6238edf6a75e",
"groupId": "096fb59173062300e7af6238edf6a783",
"rotaScheduleId": "119f399173062300e7af6238edf6a7df",
"memberScheduleId": ""
}
]
/**
* create a custom escalation for service desk shift with condition as P1 for Incident
* taskGr is optional parameter
* if taskGr is empty then it returns default escalation plan
* if taskGr is passed then escalation policies are executed evaluated in order and corresponding escalation plan is returned
**/
var serviceDeskSysId = 'd625dccec0a8016700a222a0f7900d06';
var taskGr = new GlideRecord('incident');
taskGr.get('ed92e8d173d023002728660c4cf6a7bc');
var ocRotation = new OnCallRotation();
var escalationPlan = ocRotation.getEscalationPlan(serviceDeskSysId, null, null, taskGr);
gs.log(JSON.stringify(escalationPlan));
OnCallRotation - getEscalationType(文字列 rotaID)
簡単な計算に基づいてエスカレーションのタイプを取得します。勤務表にアクティブな勤務表が 1 つある場合は、メンバーをローテーションします。勤務表に複数のアクティブな勤務表がある場合は、勤務表をローテーションします。この API は、単一シフト、重複シフト、およびカスタムエスカレーションに適用されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| rotaID | 文字列 | 勤務表を確認する勤務表のsys_id。 |
| タイプ | 説明 |
|---|---|
| 文字列 |
|
var rotaSysId = '349f399173062300e7af6238edf6a75e';
var onCallRotation = new OnCallRotation();
var escalationType = onCallRotation.getEscalationType(rotaSysId);
gs.log(escalationType);
出力:
custom
OnCallRotation - getEscalateesAt(String groupSysId, GlideDateTime gdt, Number position, GlideRecord taskGr)
特定の時間と位置のエスカレーション先 (通知ルールに応じて、ユーザー、グループ、またはデバイスレコード) を取得します。この API は、単一シフト、重複シフト、およびカスタムエスカレーションに適用されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| groupSysId | 文字列 | グループのys_id。 |
| GDT | GlideDateTime | UTC タイムゾーンの yyyy-MM-dd HH:mm:ss 形式。デフォルトは [now] です。 |
| position | 番号 | エスカレーションステップの位置。 |
| taskGr | GlideRecord | オプション。現在のタスクレコード。taskGr が空の場合、このメソッドはデフォルトのエスカレーション計画を返します。taskGr が渡された場合、エスカレーションポリシーが順番に評価され、このメソッドは対応するエスカレーション計画を返します。 |
| タイプ | 説明 |
|---|---|
| GlideRecord | 特定の時間と位置でのエスカレーション先 (通知ルールに応じてユーザー、グループ、またはデバイスレコード) のアレイ。 |
var groupSysId = '096fb59173062300e7af6238edf6a783';
var currentTime = new GlideDateTime();
var onCallRotation = new OnCallRotation();
var escalatees = onCallRotation.getEscalateesAt(groupSysId, currentTime, 1);
for (var i = 0; i < escalatees.length; i++) {
gs.log(escalatees[i].name);
}
出力:
重複するシフトの場合:
Abel Tuter
Barbara Hindley
カスタムエスカレーションの場合:
Abel Tuter
Beth Anglin
Change Management
Barbara Hindley
// Create a custom escalation for service desk shift with condition as P1 for Incident
var serviceDeskSysId = 'd625dccec0a8016700a222a0f7900d06';
// optional parameter taskGR
var taskGr = new GlideRecord('incident');
taskGr.get('ed92e8d173d023002728660c4cf6a7bc');
var ocRotation = new OnCallRotation();
var position = 1;
var escalatees = ocRotation.getEscalateesAt(serviceDeskSysId, new GlideDateTime(), position, taskGr);
// if taskGr is empty then it returns escalatees at a position in default escalation plan
// if taskGr is passed then escalation policies are executed evaluated in order and escalatees at a position in corresponding escalation plan is returned
for (var i = 0; i < escalatees.length; i++) {
gs.log(escalatees[i].getDisplayValue());
}
OnCallRotation:getPrimaryUser()
シフトが 1 つある場合に、現在の主連絡先のsys_idを取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 現在の主要連絡先のsys_id。 |
例:
var groupSysId = '096fb59173062300e7af6238edf6a783';
var currentTime = new GlideDateTime();
var onCallRotation = new OnCallRotation();
var result = onCallRotation.who(groupSysId, currentTime);
var primaryUser = onCallRotation.getPrimaryUser();
出力:
62826bf03710200044e0bfc8bcbe5df1
OnCallRotation - getPrimaryUserByRota(文字列 rotaId)
指定されたシフトの現在のプライマリユーザーのsys_idを取得します。この API は、単一シフトおよび重複シフトに適用されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| rotaId | 文字列 | cmn_rotaのsys_id。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 指定されたシフトの現在のプライマリユーザーのsys_id。 |
var groupSysId = '096fb59173062300e7af6238edf6a783';
var rotaId = '349f399173062300e7af6238edf6a75e';
var currentTime = new GlideDateTime();
var onCallRotation = new OnCallRotation();
var result = onCallRotation.who(groupSysId, currentTime);
var primaryUser = onCallRotation.getPrimaryUserByRota(rotaId);
gs.log(primaryUser);
出力:
62826bf03710200044e0bfc8bcbe5df1
OnCallRotation:getPrimaryUserName()
現在の主要連絡先の名前を取得します。この API は 1 つのシフトに適用されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 現在の主要連絡先の名前。 |
var groupSysId = '096fb59173062300e7af6238edf6a783';
var currentTime = new GlideDateTime();
var onCallRotation = new OnCallRotation();
var result = onCallRotation.who(groupSysId, currentTime);
var primaryUser = onCallRotation.getPrimaryUserName();
gs.log(primaryUser);
出力:
Abel Tuter
OnCallRotation - getPrimaryUserNameByRota(文字列 rotaId)
指定されたシフトの現在のプライマリユーザーの名前を取得します。この API は、単一シフトおよび重複シフトに適用されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| rotaId | 文字列 | cmn_rotaのsys_id。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 指定されたシフトの現在のプライマリユーザーの名前。 |
var groupSysId = '096fb59173062300e7af6238edf6a783';
var rotaId = '349f399173062300e7af6238edf6a75e';
var currentTime = new GlideDateTime();
var onCallRotation = new OnCallRotation();
var result = onCallRotation.who(groupSysId, currentTime);
var primaryUser = onCallRotation.getPrimaryUserNameByRota(rotaId);
gs.log(primaryUser);
出力:
Abel Tuter
OnCallRotation:getPrimaryUsers()
シフトの主要連絡先のリストを取得します。この API は、単一シフト、重複シフト、およびカスタムエスカレーションに適用されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| オブジェクト | 主要連絡先のリスト。 |
var groupSysId = '096fb59173062300e7af6238edf6a783';
var currentTime = new GlideDateTime();
var onCallRotation = new OnCallRotation();
var result = onCallRotation.who(groupSysId, currentTime);
var primaryUser = onCallRotation.getPrimaryUser();
gs.log(JSON.stringify(primaryUser));
出力:
{
"349f399173062300e7af6238edf6a75e": {
"userSysId": "62826bf03710200044e0bfc8bcbe5df1",
"userName": "Abel Tuter"
},
"35af799173062300e7af6238edf6a79e": {
"userSysId": "d2826bf03710200044e0bfc8bcbe5dc9",
"userName": "Barbara Hindley"
}
}
OnCallRotation - spansOverlap(ArrayList parent, ArrayList child, String timeZone)
親スパンと子スパンが重複しているかどうかを確認します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 親 | ArrayList | 比較する親のスパン。 |
| child | ArrayList | 比較する子のスパン。 |
| タイムゾーン | 文字列 | タイムゾーンの名前。 |
| タイプ | 説明 |
|---|---|
| ブーリアン | 親と子のスパンが重複している場合は true を返します。 |
var onCall = new OnCallRotation();
// get a time range we are interested in
var timeZone = gs.getSession().getTimeZoneName();
var dateStart = new GlideDateTime();
var dateEnd = new GlideDateTime().addMonths(1);
// convert glidedatime to scheduledatetime because it is required
// by the function being called below
var scheduleStart = new GlideScheduleDateTime(dateStart);
var scheduleEnd = new GlideScheduleDateTime(dateEnd);
scheduleStart.setTimeZone(timeZone);
scheduleEnd.setTimeZone(timeZone);
// calculate rotation items based on the date and time given
// for all the groups the currently logged in user is a member of
gs.include("OnCallRotationPersonal");
var rotation = new OnCallRotationPersonal();
var myGroups = gs.getUser().getMyGroups();
var groupIter = myGroups.iterator();
while(groupIter.hasNext()){
var rotaItems = rotation.onCallDuringPeriod(groupIter.next(), scheduleStart, scheduleEnd);
// loop through rotation schedules
for (var i = 0; i < rotaItems.length - 1; i++) {
var parentItem = rotaItems[i];
var nextItem = rotaItems[i + 1];
// check if previous and next time spans overlap
var overlaps = onCall.spansOverlap(parentItem.getTimeSpans(), nextItem.getTimeSpans(),
gs.getSession().getTimeZoneName());
}
}
OnCallRotation - startEscalations(GlideRecord now_GR, 文字列 eventName, 文字列 escalationScriptName)
ドキュメント (インシデントnow_GR) とグループのエスカレーションを開始し、エスカレーション通知のイベント名を指定します。さらに、エスカレーションが発生したときに呼び出すビジネスルールの名前を指定します。このメソッドは、 who メソッドまたは whoAt メソッドの呼び出しに成功した後に使用する必要があります。この API は、単一シフト、重複シフト、およびカスタムエスカレーションに適用されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| now_GR | GlideRecord | ドキュメント Glide レコード。たとえば、インシデント now_GR などです。 |
| eventName | 文字列 | エスカレーション通知のイベント名。 |
| escalationScriptName | 文字列 | エスカレーション発生時に呼び出すビジネスルール |
| タイプ | 説明 |
|---|---|
| なし |
OnCallRotation - who(String groupSysId, GlideDateTime gdt, Boolean nullifyOverrideRoster, String rotaSysIds, Boolean overrideCustomEscalation, GlideRecord taskGR)
オンコールユーザー、グループ、またはデバイスがあるかどうかを指定します。この方法は、単一シフト、重複シフト、およびカスタムエスカレーションに適用されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| groupSysId | 文字列 | 確認するグループのSys_id。 |
| GDT | GlideDateTime | 日付と時刻。 形式:UTC タイムゾーンの yyyy-MM-dd HH:mm:ss デフォルト:現在の日時 |
| nullifyOverrideRoster | ブーリアン | グループの通知リストが特定のシフト表用であるかどうかを示すフラグ。 有効な値:
|
| rotaSysId | 文字列 | レコードのフィルタリングに使用するcmn_rota sys_idsのカンマ区切りリスト。 |
| overrideCustomEscalation | ブーリアン | デフォルトのエスカレーションポリシーをカスタムエスカレーションで上書きするかどうかを示すフラグ。 有効な値:
|
| taskGR | GlideRecord | オプション。現在のタスクレコード。合格すると、エスカレーション条件に基づいてエスカレーション先が入力されます。 |
| タイプ | 説明 |
|---|---|
| ブーリアン | 一致が見つかったかどうかを示すフラグ。 可能な値:
|
var groupSysId = '096fb59173062300e7af6238edf6a783';
var currentTime = new GlideDateTime();
var onCallRotation = new OnCallRotation();
var result = onCallRotation.who(groupSysId, currentTime);
gs.log(result);
出力:
true
次の例は、インシデントの条件 P1 を使用してサービスデスクシフトのカスタムエスカレーションを作成する方法を示しています。
/**
* When the who() method is invoked with the optional taskGr parameter,
* escalatees are populated based on the conditional escalations
**/
var serviceDeskSysId = 'd625dccec0a8016700a222a0f7900d06';
var taskGr = new GlideRecord('incident');
taskGr.get('ed92e8d173d023002728660c4cf6a7bc');
var ocRotation = new OnCallRotation();
ocRotation.who(serviceDeskSysId, null, null, null, null, taskGr);
while (ocRotation.next()) {
gs.log(ocRotation.getUserName());
}
出力:
Beth Anglin
OnCallRotation - whoAt(文字列 groupSysId, GlideDateTime gdt, 文字列 rotaSysIds)
オンコールユーザー、グループ、またはデバイスがあるかどうかを指定します。この API は、単一シフト、重複シフト、およびカスタムエスカレーションに適用されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| groupSysId | 文字列 | グループの Sys ID。 |
| GDT | GlideDateTime | UTC タイムゾーンの yyyy-MM-dd HH:mm:ss 形式。デフォルトは [now] です。 |
| rotaSysId | 文字列 | レコードのフィルタリングに使用する cmn_rota Sys ID のカンマ区切りリスト。 |
| タイプ | 説明 |
|---|---|
| ブーリアン | オンコールユーザー、グループ、またはデバイスが少なくとも 1 人いる場合は True。それ以外の場合は false。 |
var groupSysId = '096fb59173062300e7af6238edf6a783';
var currentTime = new GlideDateTime();
var onCallRotation = new OnCallRotation();
var result = onCallRotation.whoAt(groupSysId, currentTime);
gs.log(result);
出力:
true
OnCallRotation - whoIsOnCall(文字列 groupSysIds, 文字列 rotaSysIds, 文字列 rosterSysIds, GlideDateTime gdt)
特定の時間にオンコールのユーザーのリストを取得します。時刻が指定されていない場合は、現在の時刻が使用されます。この API は、単一シフトおよび重複シフトに適用されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| groupSysIds | 文字列 | レコードのフィルタリングに使用する、sys_user_groupのsys_idsのカンマ区切りリスト。 |
| rotaSysId | 文字列 | レコードのフィルタリングに使用するcmn_rota sys_idsのカンマ区切りリスト。 |
| rosterSysId | 文字列 | レコードのフィルタリングに使用するcmn_rota_roster sys_idsのカンマ区切りリスト。 |
| GDT | GlideDateTime | UTC タイムゾーンの日付 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 特定の時間にオンコールになっているユーザー、グループ、またはデバイスのリスト。たとえば、userIds、deviceIds、escalationGroups に関する情報などです。 |
var groupSysId = '096fb59173062300e7af6238edf6a783';
var currentTime = new GlideDateTime();
var onCallRotation = new OnCallRotation();
var escalatees = onCallRotation. whoIsOnCall(groupSysId, "", "", currentTime);
gs.log(JSON.stringify(escalatees));
出力:
単一シフトの場合:
[
{
"memberId": "119f399173062300e7af6238edf6a7e7",
"memberIds": [],
"userId": "62826bf03710200044e0bfc8bcbe5df1",
"userIds": [],
"roster": "9d9f399173062300e7af6238edf6a7e5",
"rota": "349f399173062300e7af6238edf6a75e",
"group": "096fb59173062300e7af6238edf6a783",
"escalationGroups": [],
"deviceId": "",
"deviceIds": [],
"isDevice": false,
"order": 1,
"isOverride": false,
"rotationScheduleId": "119f399173062300e7af6238edf6a7df",
"memberScheduleId": "9d9f399173062300e7af6238edf6a7ec"
},
{
"memberId": "1d9f399173062300e7af6238edf6a7e8",
"memberIds": [],
"userId": "a8f98bb0eb32010045e1a5115206fe3a",
"userIds": [],
"roster": "9d9f399173062300e7af6238edf6a7e5",
"rota": "349f399173062300e7af6238edf6a75e",
"group": "096fb59173062300e7af6238edf6a783",
"escalationGroups": [],
"deviceId": "",
"deviceIds": [],
"isDevice": false,
"order": 2,
"isOverride": false,
"rotationScheduleId": "119f399173062300e7af6238edf6a7df",
"memberScheduleId": "d99f399173062300e7af6238edf6a7ef"
},
{
"memberId": "dd9f399173062300e7af6238edf6a7e9",
"memberIds": [],
"userId": "0a826bf03710200044e0bfc8bcbe5d7a",
"userIds": [],
"roster": "9d9f399173062300e7af6238edf6a7e5",
"rota": "349f399173062300e7af6238edf6a75e",
"group": "096fb59173062300e7af6238edf6a783",
"escalationGroups": [],
"deviceId": "",
"deviceIds": [],
"isDevice": false,
"order": 3,
"isOverride": false,
"rotationScheduleId": "119f399173062300e7af6238edf6a7df",
"memberScheduleId": "519f399173062300e7af6238edf6a7f2"
}
]
重複シフトの場合:
[
{
"memberId": "119f399173062300e7af6238edf6a7e7",
"memberIds": [],
"userId": "62826bf03710200044e0bfc8bcbe5df1",
"userIds": [],
"roster": "9d9f399173062300e7af6238edf6a7e5",
"rota": "349f399173062300e7af6238edf6a75e",
"group": "096fb59173062300e7af6238edf6a783",
"escalationGroups": [],
"deviceId": "",
"deviceIds": [],
"isDevice": false,
"order": 1,
"isOverride": false,
"rotationScheduleId": "119f399173062300e7af6238edf6a7df",
"memberScheduleId": "9d9f399173062300e7af6238edf6a7ec"
},
{
"memberId": "7daf799173062300e7af6238edf6a7a2",
"memberIds": [],
"userId": "d2826bf03710200044e0bfc8bcbe5dc9",
"userIds": [],
"roster": "b5af799173062300e7af6238edf6a7a2",
"rota": "35af799173062300e7af6238edf6a79e",
"group": "096fb59173062300e7af6238edf6a783",
"escalationGroups": [],
"deviceId": "",
"deviceIds": [],
"isDevice": false,
"order": 1,
"isOverride": false,
"rotationScheduleId": "3daf799173062300e7af6238edf6a79e",
"memberScheduleId": "06af799173062300e7af6238edf6a7cd"
},
{
"memberId": "1d9f399173062300e7af6238edf6a7e8",
"memberIds": [],
"userId": "a8f98bb0eb32010045e1a5115206fe3a",
"userIds": [],
"roster": "9d9f399173062300e7af6238edf6a7e5",
"rota": "349f399173062300e7af6238edf6a75e",
"group": "096fb59173062300e7af6238edf6a783",
"escalationGroups": [],
"deviceId": "",
"deviceIds": [],
"isDevice": false,
"order": 2,
"isOverride": false,
"rotationScheduleId": "119f399173062300e7af6238edf6a7df",
"memberScheduleId": "d99f399173062300e7af6238edf6a7ef"
},
{
"memberId": "f5af799173062300e7af6238edf6a7c9",
"memberIds": [],
"userId": "ee826bf03710200044e0bfc8bcbe5def",
"userIds": [],
"roster": "b5af799173062300e7af6238edf6a7a2",
"rota": "35af799173062300e7af6238edf6a79e",
"group": "096fb59173062300e7af6238edf6a783",
"escalationGroups": [],
"deviceId": "",
"deviceIds": [],
"isDevice": false,
"order": 2,
"isOverride": false,
"rotationScheduleId": "3daf799173062300e7af6238edf6a79e",
"memberScheduleId": "8aaf799173062300e7af6238edf6a7cf"
},
{
"memberId": "dd9f399173062300e7af6238edf6a7e9",
"memberIds": [],
"userId": "0a826bf03710200044e0bfc8bcbe5d7a",
"userIds": [],
"roster": "9d9f399173062300e7af6238edf6a7e5",
"rota": "349f399173062300e7af6238edf6a75e",
"group": "096fb59173062300e7af6238edf6a783",
"escalationGroups": [],
"deviceId": "",
"deviceIds": [],
"isDevice": false,
"order": 3,
"isOverride": false,
"rotationScheduleId": "119f399173062300e7af6238edf6a7df",
"memberScheduleId": "519f399173062300e7af6238edf6a7f2"
},
{
"memberId": "8aaf799173062300e7af6238edf6a7ca",
"memberIds": [],
"userId": "e2826bf03710200044e0bfc8bcbe5de0",
"userIds": [],
"roster": "b5af799173062300e7af6238edf6a7a2",
"rota": "35af799173062300e7af6238edf6a79e",
"group": "096fb59173062300e7af6238edf6a783",
"escalationGroups": [],
"deviceId": "",
"deviceIds": [],
"isDevice": false,
"order": 3,
"isOverride": false,
"rotationScheduleId": "3daf799173062300e7af6238edf6a79e",
"memberScheduleId": "02af799173062300e7af6238edf6a7d2"
}
]
OnCallRotation - whoIsNext (GlideRecord エスカレーションGr)
エスカレーションビジネスルールによって、シフト内で次に連絡を取る相手が決まります。メソッドに渡されるエスカレーションレコードは、ビジネスルールの発動間のエスカレーションを追跡します。この API は、単一シフト、重複シフト、およびカスタムエスカレーションに適用されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| escalationGr | GlideRecord | ローテーションエスカレーション [cmn_rota_escalation] の GlideRecord。 |
| タイプ | 説明 |
|---|---|
| なし |