Rotation d’appel : global
Utilisez cette propriété pour gérer les planifications d’astreinte.
Pour plus d’informations, consultez On-call scheduling
OnCallRotation : getCatchAll(String rotaID)
Obtient l’sys_id de la personne polyvalente. À utiliser avec la méthode getCatchAllType() pour déterminer la source de l’ID retourné. Cette API s’applique à une seule équipe, aux équipes se chevauchant et à l’escalade personnalisée.
| Nom | Type | Description |
|---|---|---|
| rotaID | Chaîne | Le sys_id de la rotation. |
| Type | Description |
|---|---|
| Chaîne | sys_id d’un sys_user, d’un cmn_rota_roster ou d’une valeur nulle. |
var rotaSysId = '349f399173062300e7af6238edf6a75e';
var onCallRotation = new OnCallRotation();
var catchAll = onCallRotation.getCatchAll(rotaSysId);
gs.log(catchAll);
Sortie :
46d44a23a9fe19810012d100cca80666
OnCallRotation : getCatchAllType(String rotaID)
Obtient le type de _catch all_ qui se trouve à la fin de la chaîne d’escalade. Lorsque la chaîne d’escalade se termine sans qu’aucune personne d’astreinte ne soit affectée, si elle est configurée, l’incident est affecté au _catch all_. Cette API s’applique à une seule équipe, aux équipes se chevauchant et à l’escalade personnalisée.
| Nom | Type | Description |
|---|---|---|
| rotaID | Chaîne | Le sys_id de la rotation. |
| Type | Description |
|---|---|
| Chaîne |
|
var rotaSysId = '349f399173062300e7af6238edf6a75e';
var onCallRotation = new OnCallRotation();
var catchAllType = onCallRotation.getCatchAllType(rotaSysId);
gs.log(catchAllType);
Sortie :
group_manager
OnCallRotation : getEscalatees(String groupSysIds, String rotaSysIds, String rosterSysIds, GlideDateTime gdt, GlideRecord taskGr)
Obtient une liste des escaladés qui sont d’astreinte pour une période donnée. Si aucune heure n’est spécifiée, l’heure actuelle est utilisée. Si aucun groupSysIds n’est fourni, la liste vide est renvoyée. Cette API s’applique à une seule équipe, aux équipes se chevauchant et à l’escalade personnalisée.
| Nom | Type | Description |
|---|---|---|
| groupSysIds | Chaîne | Liste séparée par des virgules des sys_ids du sys_user_group par lequel filtrer les enregistrements. |
| rotaSysIds | Chaîne | Liste d’cmn_rota sys_ids séparées par des virgules pour filtrer les enregistrements. |
| rosterSysIds | Chaîne | Liste d’cmn_rota_roster sys_ids séparées par des virgules pour filtrer les enregistrements. |
| Gdt | GlideDateTime | Date dans le fuseau horaire UTC |
| taskGr | GlideRecord | Facultatif. Enregistrement de tâche actuel. Si taskGr est vide, cette méthode renvoie le plan d’escalade par défaut. Si taskGr est réussi, les politiques d’escalade sont évaluées dans l’ordre et cette méthode renvoie le plan d’escalade correspondant. |
| Type | Description |
|---|---|
| Objet | Informations d’escaladé telles que userIds, deviceIds et escalationGroups. |
var groupSysId = '096fb59173062300e7af6238edf6a783';
var currentTime = new GlideDateTime();
var onCallRotation = new OnCallRotation();
var result = onCallRotation.getEscalatees(groupSysId, "", "", currentTime);
gs.log(JSON.stringify(result));
Sortie :
Pour une seule équipe :
[
{
"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"
}
]
En cas de chevauchement d’équipes :
[
{
"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"
}
]
Pour l’escalade personnalisée
[
{
"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 : getEscalateeAt(String groupID, GlideDateTime, dateTime, Number position)
Obtient un élément vers lequel escalader, qu’il s’agisse d’un utilisateur [sys_user], d’un groupe ou d’un appareil de notification [cmn_notif_device], pour l’équipe d’un groupe à la date et à l’heure spécifiées et à une certaine position dans la ligne d’escalade. Cette API ne s’applique qu’à une seule équipe.
La méthode retourne null si une position ou un groupe non valide est passé comme argument.
Vous pouvez utiliser la méthode getTableName() pour vérifier si le GlideRecord renvoyé provient de la table sys_user ou cmn_notif_device.
| Nom | Type | Description |
|---|---|---|
| Groupid | Chaîne | sys_id du groupe à partir duquel obtenir l’élément à escalader. |
| Datetime | GlideDateTime | Date et heure auxquelles la ligne d’escalade doit commencer. |
| position | Numéro | Position dans la ligne pour déterminer l’élément vers lequel escalader (de base 1, ce qui signifie que le nombre commence par 1). |
| Type | Description |
|---|---|
| GlideRecord | Élément auquel faire remonter la date, c’est-à-dire les escaladés (enregistrements utilisateur, groupe ou appareil selon les règles de notification) à un moment et à une position spécifiques. Renvoie null si rien n’est trouvé. |
var groupSysId = '096fb59173062300e7af6238edf6a783';
var currentTime = new GlideDateTime();
var onCallRotation = new OnCallRotation();
var escalatee = onCallRotation.getEscalateeAt(groupSysId, currentTime, 1);
gs.log(escalatee.name);
Sortie :
Abel Tuter
OnCallRotation : getEscalationPlan(String groupSysId, GlideDateTime gdt, String rotaSysIds, GlideRecord taskGr)
Obtient une liste d’objets vers lesquels escalader, des plans d’escalade comprenant un utilisateur [sys_user] ou un appareil de notification [cmn_notif_device], pour l’équipe d’un groupe à la date et à l’heure spécifiées. Cette API s’applique à une seule équipe, aux équipes se chevauchant et à l’escalade personnalisée.
- Ordre des numéros : ordre d’escalade au sein de la ligne
- Chaîne userId : sys_id de l’enregistrement sys_user ou null
- Chaîne deviceId : sys_id de l’enregistrement cmn_notif_device ou null
- isDevice booléen : vrai ou faux selon que l’élément à escalader est un appareil ou un utilisateur
- GlideDuration timeBetweenReminders : délai entre les rappels en cours d’envoi
- Numéro reminderNum : nombre de rappels à envoyer pour chaque élément à escalader
| Nom | Type | Description |
|---|---|---|
| Groupid | Chaîne | sys_id pour le groupe pour lequel vous avez besoin du plan d’escalade. |
| Gdt | GlideDateTime | Date et heure auxquelles la ligne d’escalade doit commencer. Par défaut, c’est maintenant. aaaa-MM-jj HH :mm :ss est le format dans le fuseau horaire UTC. |
| rotaSysIds | Chaîne | Liste d’cmn_rota sys_ids séparées par des virgules pour filtrer les enregistrements. |
| taskGr | GlideRecord | Facultatif. Enregistrement de tâche actuel. Si taskGr est vide, cette méthode renvoie le plan d’escalade par défaut. Si taskGr est réussi, les politiques d’escalade sont évaluées dans l’ordre et cette méthode renvoie le plan d’escalade correspondant. |
| Type | Description |
|---|---|
| Objet | Liste des objets d’escalade auxquels escalader. |
var groupSysId = '096fb59173062300e7af6238edf6a783';
var currentTime = new GlideDateTime();
var onCallRotation = new OnCallRotation();
var result = onCallRotation.getEscalationPlan(groupSysId, currentTime);
gs.log(JSON.stringify(result));
Sortie :
Pour une seule équipe :
[
{
"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"
}
]
En cas de chevauchement d’équipes :
[
{
"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"
}
]
Pour l’escalade personnalisée :
[
{
"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(String rotaID)
Obtient le type d’escalade basé sur un calcul simple. S’il n’y a qu’une seule liste active dans la rotation, alternez les membres. S’il y a plus d’une liste active dans la rotation, effectuez une rotation entre les listes. Cette API s’applique à une seule équipe, aux équipes se chevauchant et à l’escalade personnalisée.
| Nom | Type | Description |
|---|---|---|
| rotaID | Chaîne | La sys_id pour que la rotation vérifie les alignements. |
| Type | Description |
|---|---|
| Chaîne |
|
var rotaSysId = '349f399173062300e7af6238edf6a75e';
var onCallRotation = new OnCallRotation();
var escalationType = onCallRotation.getEscalationType(rotaSysId);
gs.log(escalationType);
Sortie :
custom
OnCallRotation : OnCallRotation()
Crée une instance de la classe OnCallRotation.
| Nom | Type | Description |
|---|---|---|
| Néant |
var oncall = new OnCallRotation();
OnCallRotation : spansOverlap(ArrayList parent, ArrayList child, String timeZone)
Vérifie si le parcours parent et le parcours enfant se chevauchent.
| Nom | Type | Description |
|---|---|---|
| parent | Arraylist | Parcours parent à comparer. |
| enfant | Arraylist | L’enfant s’étend pour comparer. |
| Fuseau horaire | Chaîne | Nom du fuseau horaire. |
| Type | Description |
|---|---|
| Booléen | Renvoie la valeur true si les parcours parent et enfant se chevauchent. |
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 : getEscalateesAt(String groupSysId, GlideDateTime gdt, Number position, GlideRecord taskGr)
Obtient les escaladés (enregistrements d’utilisateur, de groupe ou d’appareil selon les règles de notification) à un moment et à une position spécifiques. Cette API s’applique à une seule équipe, aux équipes se chevauchant et à l’escalade personnalisée.
| Nom | Type | Description |
|---|---|---|
| groupSysId | Chaîne | ys_id du groupe. |
| Gdt | GlideDateTime | aaaa-MM-jj HH :mm :ss dans le fuseau horaire UTC. Par défaut, c’est maintenant. |
| position | Numéro | Position de l’étape d’escalade. |
| taskGr | GlideRecord | Facultatif. Enregistrement de tâche actuel. Si taskGr est vide, cette méthode renvoie le plan d’escalade par défaut. Si taskGr est réussi, les politiques d’escalade sont évaluées dans l’ordre et cette méthode renvoie le plan d’escalade correspondant. |
| Type | Description |
|---|---|
| GlideRecord | Tableau des escaladés (enregistrements utilisateur, groupe ou appareil selon les règles de notification) à un moment et à une position spécifiques. |
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);
}
Sortie :
En cas de chevauchement d’équipes :
Abel Tuter
Barbara Hindley
Pour l’escalade personnalisée :
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()
Obtient l’sys_id du contact principal actuel lorsqu’il existe une seule équipe.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | sys_id du contact principal actuel. |
Exemple :
var groupSysId = '096fb59173062300e7af6238edf6a783';
var currentTime = new GlideDateTime();
var onCallRotation = new OnCallRotation();
var result = onCallRotation.who(groupSysId, currentTime);
var primaryUser = onCallRotation.getPrimaryUser();
Sortie :
62826bf03710200044e0bfc8bcbe5df1
OnCallRotation : getPrimaryUserByRota(String rotaId)
Obtient les sys_id de l’utilisateur principal actuel de l’équipe spécifiée. Cette API s’applique à une seule équipe et aux équipes qui se chevauchent.
| Nom | Type | Description |
|---|---|---|
| rotaId | Chaîne | sys_id du cmn_rota. |
| Type | Description |
|---|---|
| Chaîne | sys_id de l’utilisateur principal actuel de l’équipe spécifiée. |
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);
Sortie :
62826bf03710200044e0bfc8bcbe5df1
OnCallRotation : getPrimaryUserName()
Obtient le nom du contact principal actuel. Cette API ne s’applique qu’à une seule équipe.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Nom du contact principal actuel. |
var groupSysId = '096fb59173062300e7af6238edf6a783';
var currentTime = new GlideDateTime();
var onCallRotation = new OnCallRotation();
var result = onCallRotation.who(groupSysId, currentTime);
var primaryUser = onCallRotation.getPrimaryUserName();
gs.log(primaryUser);
Sortie :
Abel Tuter
OnCallRotation : getPrimaryUserNameByRota(String rotaId)
Obtient le nom de l’utilisateur principal actuel de l’équipe spécifiée. Cette API s’applique à une seule équipe et aux équipes qui se chevauchent.
| Nom | Type | Description |
|---|---|---|
| rotaId | Chaîne | sys_id du cmn_rota. |
| Type | Description |
|---|---|
| Chaîne | Nom de l’utilisateur principal actuel de l’équipe spécifiée. |
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);
Sortie :
Abel Tuter
OnCallRotation : getPrimaryUsers()
Obtient la liste des contacts primaires d’une équipe. Cette API s’applique à une seule équipe, aux équipes se chevauchant et à l’escalade personnalisée.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Objet | Liste des contacts principaux. |
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));
Sortie :
{
"349f399173062300e7af6238edf6a75e": {
"userSysId": "62826bf03710200044e0bfc8bcbe5df1",
"userName": "Abel Tuter"
},
"35af799173062300e7af6238edf6a79e": {
"userSysId": "d2826bf03710200044e0bfc8bcbe5dc9",
"userName": "Barbara Hindley"
}
}
OnCallRotation : whoIsOnCall(chaîne groupSysIds, chaîne rotaSysIds, chaîne rosterSysIds, GlideDateTime gdt)
Obtient la liste des utilisateurs d’astreinte à un moment donné. Si aucune heure n’est spécifiée, l’heure actuelle est utilisée. Cette API s’applique à une seule équipe et aux équipes qui se chevauchent.
| Nom | Type | Description |
|---|---|---|
| groupSysIds | Chaîne | Liste séparée par des virgules des sys_ids du sys_user_group par lequel filtrer les enregistrements. |
| rotaSysIds | Chaîne | Liste d’cmn_rota sys_ids séparées par des virgules pour filtrer les enregistrements. |
| rosterSysIds | Chaîne | Liste d’cmn_rota_roster sys_ids séparées par des virgules pour filtrer les enregistrements. |
| Gdt | GlideDateTime | Date dans le fuseau horaire UTC |
| Type | Description |
|---|---|
| Objet | Liste des utilisateurs, des groupes ou des appareils qui sont d’astreinte à un moment donné. Par exemple, des informations sur userIds, deviceIds et escalationGroups. |
var groupSysId = '096fb59173062300e7af6238edf6a783';
var currentTime = new GlideDateTime();
var onCallRotation = new OnCallRotation();
var escalatees = onCallRotation. whoIsOnCall(groupSysId, "", "", currentTime);
gs.log(JSON.stringify(escalatees));
Sortie :
Pour une seule équipe :
[
{
"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"
}
]
En cas de chevauchement d’équipes :
[
{
"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 – who(String groupSysId, GlideDateTime gdt, Boolean nullifyOverrideRoster, String rotaSysIds, Boolean overrideCustomEscalation, GlideRecord taskGR)
Spécifie s’il existe un utilisateur, un groupe ou un appareil d’astreinte. Cette méthode s’applique à une seule équipe, aux équipes se chevauchant et à l’escalade personnalisée.
| Nom | Type | Description |
|---|---|---|
| groupSysId | Chaîne | Sys_id du groupe à vérifier. |
| Gdt | GlideDateTime | Date et heure. Format : aaaa-MM-jj HH :mm :ss dans le fuseau horaire UTC Par défaut : date et heure actuelles |
| nullifyOverrideRoster | Booléen | Marqueur indiquant si la liste de notifications du groupe est destinée à une liste spécifique. Valeurs valides :
|
| rotaSysIds | Chaîne | Liste d’cmn_rota sys_ids séparées par des virgules pour filtrer les enregistrements. |
| overrideCustomEscalation | Booléen | Marqueur indiquant si la politique d’escalade par défaut doit être remplacée par l’escalade personnalisée. Valeurs valides :
|
| taskGR | GlideRecord | Facultatif. Enregistrement de tâche actuel. Si elle est adoptée, la méthode remplit les escaladés en fonction des conditions d’escalade. |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si une correspondance a été trouvée. Valeurs possibles :
|
var groupSysId = '096fb59173062300e7af6238edf6a783';
var currentTime = new GlideDateTime();
var onCallRotation = new OnCallRotation();
var result = onCallRotation.who(groupSysId, currentTime);
gs.log(result);
Sortie :
true
L’exemple suivant montre comment créer une escalade personnalisée pour Service Desk avec la condition P1 pour un incident.
/**
* 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());
}
Sortie :
Beth Anglin
OnCallRotation – whoAt(String groupSysId, GlideDateTime gdt, String rotaSysIds)
Spécifie s’il existe un utilisateur, un groupe ou un appareil d’astreinte. Cette API s’applique à une seule équipe, aux équipes se chevauchant et à l’escalade personnalisée.
| Nom | Type | Description |
|---|---|---|
| groupSysId | Chaîne | ID système du groupe. |
| Gdt | GlideDateTime | aaaa-MM-jj HH :mm :ss dans le fuseau horaire UTC. Par défaut, c’est maintenant. |
| rotaSysIds | Chaîne | Liste séparée par des virgules d’ID système de cmn_rota pour filtrer les enregistrements. |
| Type | Description |
|---|---|
| Booléen | Vrai s’il existe au moins un utilisateur, un groupe ou un appareil d’astreinte ; false dans le cas contraire. |
var groupSysId = '096fb59173062300e7af6238edf6a783';
var currentTime = new GlideDateTime();
var onCallRotation = new OnCallRotation();
var result = onCallRotation.whoAt(groupSysId, currentTime);
gs.log(result);
Sortie :
true
OnCallRotation : startEscalations(GlideRecord now_GR, String eventName, String escalationScriptName)
Démarrez les escalades pour un document (now_GR d’incident) et un groupe, et spécifiez le nom de l’événement pour les notifications d’escalade. En outre, spécifiez le nom de la règle métier à appeler lorsqu’une escalade se produit. Cette méthode doit être utilisée après un appel réussi aux méthodes who ou whoAt . Cette API s’applique à une seule équipe, aux équipes se chevauchant et à l’escalade personnalisée.
| Nom | Type | Description |
|---|---|---|
| now_GR | GlideRecord | Enregistrement du Glide de document. Par exemple, Incident now_GR. |
| eventName | Chaîne | Nom d’événement pour les notifications d’escalade. |
| Nom du script d’escalade | Chaîne | Règle métier à appeler en cas d’escalade |
| Type | Description |
|---|---|
| nul |
OnCallRotation : addCurrentToNotified()
Ajoutez le membre de l’escalade actuelle à la liste des utilisateurs notifiés afin que l’API sache qui a été contacté. Cette API s’applique à une seule équipe, aux équipes se chevauchant et à l’escalade personnalisée.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| nul |
OnCallRotation : whoIsNext(GlideRecord escalationGr)
Les règles métier d’escalade déterminent le prochain membre de l’équipe à contacter. L’enregistrement d’escalade transmis à la méthode suit l’escalade entre les invocations de la règle métier. Cette API s’applique à une seule équipe, aux équipes se chevauchant et à l’escalade personnalisée.
| Nom | Type | Description |
|---|---|---|
| escalationGr | GlideRecord | GlideRecord de l’escalade de rotation [cmn_rota_escalation]. |
| Type | Description |
|---|---|
| Néant |
OnCallRotation : continueEscalations(GlideRecord escalationGr)
Poursuivre les escalades pour un document (now_GR d’incident) et un groupe. Cette API s’applique à une seule équipe, aux équipes se chevauchant et à l’escalade personnalisée.
| Nom | Type | Description |
|---|---|---|
| escalationGr | GlideRecord | GlideRecord de l’escalade de la rotation (cmn_rota_escalation |
| Type | Description |
|---|---|
| nul |
OnCallRotation : cancelEscalations(GlideRecord escalationGr)
Annule toutes les escalades pour GlideRecord qui ont été démarrées avec l’API startEscalations . Cette API s’applique à une seule équipe, aux équipes se chevauchant et à l’escalade personnalisée.
| Nom | Type | Description |
|---|---|---|
| escalationGr | GlideRecord | GlideRecord de l’escalade de la rotation (cmn_rota_escalation |
| Type | Description |
|---|---|
| nul |