OnCallRotation - グローバル
OnCallRotation スクリプトインクルードは、オンコールスケジュールを管理するメソッドを提供します。
詳細については、「 オンコールスケジューリング」を参照してください。
OnCallRotation - OnCallRotation()
OnCallRotation クラスのインスタンスを作成します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
var oncall = new OnCallRotation();
OnCallRotation - addCurrentToNotified()
現在のエスカレーションメンバーを通知済みユーザーのリストに追加して、誰が連絡済みかを API が認識できるようにします。この API は、単一のシフト、重複するシフト、およびカスタムエスカレーションに適用されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| なし |
OnCallRotation - cancelEscalations(GlideRecord escalationGr)
startEscalations API で開始された GlideRecord のエスカレーションをキャンセルします。この API は、単一のシフト、重複するシフト、およびカスタムエスカレーションに適用されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| escalationGr | GlideRecord | ローテーションエスカレーション (cmn_rota_escalation) の GlideRecord |
| タイプ | 説明 |
|---|---|
| なし |
OnCallRotation - continueEscalations(GlideRecord escalationGr)
ドキュメント (incident now_GR) およびグループのエスカレーションを続行します。この API は、単一のシフト、重複するシフト、およびカスタムエスカレーションに適用されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| escalationGr | GlideRecord | ローテーションエスカレーション (cmn_rota_escalation) の GlideRecord |
| タイプ | 説明 |
|---|---|
| なし |
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)
エスカレーションチェーンの最後に存在する _予備連絡先_ のタイプを取得します。オンコール担当者をアサインせずにエスカレーションチェーンが終了すると、インシデントは _予備連絡先_ にアサインされます。この API は、単一のシフト、重複するシフト、およびカスタムエスカレーションに適用されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| rotaID | 文字列 | 勤務表の sys_id。 |
| タイプ | 説明 |
|---|---|
| 文字列 |
|
var rotaSysId = '349f399173062300e7af6238edf6a75e';
var onCallRotation = new OnCallRotation();
var catchAllType = onCallRotation.getCatchAllType(rotaSysId);
gs.log(catchAllType);
出力:
group_manager
OnCallRotation - getEscalateeAt(文字列 groupID, GlideDateTime dateTime, 数字 position)
指定された日時およびエスカレーションラインナップの特定の位置のグループのシフトに対して、ユーザー [sys_user]、グループ、または通知デバイス [cmn_notif_device] にエスカレーションするアイテムを取得します。この API は単一のシフトに適用されます。
無効なポジションまたはグループが引数として渡された場合、このメソッドは null を返します。
getTableName() メソッドを使用して、返される GlideRecord の出所が sys_user テーブルか cmn_notif_device テーブルかを確認できます。
| 名前 | タイプ | 説明 |
|---|---|---|
| groupID | 文字列 | エスカレーションするアイテムを取得するグループの sys_id。 |
| dateTime | 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(文字列 groupSysIds, 文字列 rotaSysIds, 文字列 rosterSysIds, GlideDateTime gdt, GlideRecord taskGr)
指定された時刻に待機しているエスカレーション先のリストを取得します。時刻が指定されていない場合は、現在の時刻が使用されます。groupSysId が指定されていない場合は、空のリストが返されます。この API は、単一のシフト、重複するシフト、およびカスタムエスカレーションに適用されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| groupSysIds | 文字列 | レコードをフィルタリングする際の基準となる sys_user_group の sys_id のカンマ区切りリスト。 |
| rotaSysIds | 文字列 | レコードをフィルタリングする際の基準となる cmn_rota の sys_id のカンマ区切りリスト。 |
| rosterSysIds | 文字列 | レコードをフィルタリングする際の基準となる cmn_rota_roster の sys_id のカンマ区切りリスト。 |
| gdt | GlideDateTime | UTC タイムゾーンでの日付 |
| taskGr | GlideRecord | オプション。現在のタスクレコード。taskGr が空の場合、このメソッドはデフォルトのエスカレーション計画を返します。taskGr が渡されると、エスカレーションポリシーが順番に評価され、対応するエスカレーション計画がこのメソッドによって返されます。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | userId、deviceId、escalationGroup などのエスカレーション先情報。 |
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 は、単一のシフト、重複するシフト、およびカスタムエスカレーションに適用されます。
- 数字の order:ラインナップ内のエスカレーションの順序
- 文字列の userId:sys_user レコードの sys_id または null
- 文字列の deviceId:cmn_notif_device レコードの sys_id または null
- ブーリアンの isDevice:エスカレーション先のアイテムがデバイスかユーザーかに応じて true または false
- GlideDuration timeBetweenReminders:リマインダーが送信される間隔
- 数字の reminderNum:エスカレートション先の各アイテムについて送信されるリマインダーの数
| 名前 | タイプ | 説明 |
|---|---|---|
| groupID | 文字列 | エスカレーション計画が必要なグループの sys_id。 |
| gdt | GlideDateTime | エスカレーションラインナップを開始する日時。デフォルトは現在の日時で、形式は UTC タイムゾーンでの yyyy-MM-dd HH:mm:ss です。 |
| rotaSysIds | 文字列 | レコードをフィルタリングする際の基準となる cmn_rota の sys_id のカンマ区切りリスト。 |
| 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 つある場合は、メンバーをローテーションします。勤務表にアクティブな勤務表が 2 つ以上ある場合は、勤務表をローテーションします。この API は、単一のシフト、重複するシフト、およびカスタムエスカレーションに適用されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| rotaID | 文字列 | 勤務表で勤務表を確認するための sys_id。 |
| タイプ | 説明 |
|---|---|
| 文字列 |
|
var rotaSysId = '349f399173062300e7af6238edf6a75e';
var onCallRotation = new OnCallRotation();
var escalationType = onCallRotation.getEscalationType(rotaSysId);
gs.log(escalationType);
出力:
custom
OnCallRotation - getEscalateesAt(文字列 groupSysId, GlideDateTime gdt, 数字 position, GlideRecord taskGr)
特定の時間とポジションでのエスカレーション先 (通知ルールによってユーザー、グループ、またはデバイスレコード) を取得します。この API は、単一のシフト、重複するシフト、およびカスタムエスカレーションに適用されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| groupSysId | 文字列 | グループの sys_id。 |
| gdt | GlideDateTime | UTC タイムゾーンでの yyyy-MM-dd HH:mm:ss 形式。デフォルトは現在の時刻です。 |
| 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 は単一のシフトに適用されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 現在の主要連絡先の名前。 |
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, 文字列 timeZone)
親スパンと子スパンが重複しているかどうかを確認します。
| 名前 | タイプ | 説明 |
|---|---|---|
| parent | ArrayList | 比較する親スパン。 |
| child | ArrayList | 比較する子スパン。 |
| timeZone | 文字列 | タイムゾーンの名前。 |
| タイプ | 説明 |
|---|---|
| ブーリアン | 親スパンと子スパンが重複している場合は 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)
ドキュメント (incident now_GR) とグループのエスカレーションを開始し、エスカレーション通知のイベント名を指定します。さらに、エスカレーションが発生したときに呼び出すビジネスルールの名前を指定します。このメソッドは、who または whoAt メソッドの呼び出しに成功した後に使用する必要があります。この API は、単一のシフト、重複するシフト、およびカスタムエスカレーションに適用されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| now_GR | GlideRecord | ドキュメントの Glide レコード。incident now_GR などです。 |
| eventName | 文字列 | エスカレーション通知のイベント名。 |
| escalationScriptName | 文字列 | エスカレーションが発生したときに呼び出すビジネスルール |
| タイプ | 説明 |
|---|---|
| なし |
OnCallRotation - who(文字列 groupSysId, GlideDateTime gdt, ブーリアン nullifyOverrideRoster, 文字列 rotaSysIds, ブーリアン overrideCustomEscalation, GlideRecord taskGR)
オンコールユーザー、グループ、またはデバイスが存在するかどうかを指定します。このメソッドは、単一のシフト、重複するシフト、およびカスタムエスカレーションに適用されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| groupSysId | 文字列 | チェック対象のグループの sys_id。 |
| gdt | GlideDateTime | 日付と時刻。 フォーマット:UTC タイムゾーンでの yyyy-MM-dd HH:mm:ss デフォルト:現在の日時 |
| nullifyOverrideRoster | ブーリアン | グループの通知リストが特定の勤務表用かどうかを示すフラグ。 有効な値:
|
| rotaSysIds | 文字列 | レコードをフィルタリングする際の基準となる cmn_rota の sys_id のカンマ区切りリスト。 |
| 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 形式。デフォルトは現在の時刻です。 |
| rotaSysIds | 文字列 | レコードをフィルタリングする際の基準となる 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_id のカンマ区切りリスト。 |
| rotaSysIds | 文字列 | レコードをフィルタリングする際の基準となる cmn_rota の sys_id のカンマ区切りリスト。 |
| rosterSysIds | 文字列 | レコードをフィルタリングする際の基準となる cmn_rota_roster の sys_id のカンマ区切りリスト。 |
| gdt | GlideDateTime | UTC タイムゾーンでの日付 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 指定された時刻に待機しているユーザー、グループまたはデバイスのリスト。たとえば、userId、deviceId、escalationGroup などの情報。 |
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 escalationGr)
エスカレーションのビジネスルールにより、次に連絡すべきシフトのメンバーが決まります。メソッドに渡されるエスカレーションレコードによって、ビジネスルールの発動の間のエスカレーションが追跡されます。この API は、単一のシフト、重複するシフト、およびカスタムエスカレーションに適用されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| escalationGr | GlideRecord | ローテーションエスカレーション [cmn_rota_escalation] の GlideRecord。 |
| タイプ | 説明 |
|---|---|
| なし |