Rotation d’astreinte : global
L’include de script OnCallRotation fournit des méthodes pour gérer les calendriers d’astreinte.
Pour plus d’informations, reportez-vous à la section Planification d’astreinte.
OnCallRotation : OnCallRotation()
Crée une instance de la classe OnCallRotation.
| Nom | Type | Description |
|---|---|---|
| Aucun |
var oncall = new OnCallRotation();
OnCallRotation : addCurrentToNotified()
Ajoutez le membre d’escalade actuel à la liste des utilisateurs notifiés afin que l’API sache qui a été contacté. Cette API s’applique à une seule équipe, aux chevauchements d’équipes et à l’escalade personnalisée.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| nul |
OnCallRotation : cancelEscalations(GlideRecord escalationGr)
Annule toutes les escalades pour le GlideRecord qui ont été démarrées avec l’API startEscalations . Cette API s’applique à une seule équipe, aux chevauchements d’équipes et à l’escalade personnalisée.
| Nom | Type | Description |
|---|---|---|
| escaladeGr | GlideRecord | GlideRecord de l’escalade de rotation (cmn_rota_escalation |
| Type | Description |
|---|---|
| nul |
OnCallRotation : continueEscalations(GlideRecord escalationGr)
Poursuivre les escalades pour un document (incident now_GR) et un groupe. Cette API s’applique à une seule équipe, aux chevauchements d’équipes et à l’escalade personnalisée.
| Nom | Type | Description |
|---|---|---|
| escaladeGr | GlideRecord | GlideRecord de l’escalade de rotation (cmn_rota_escalation |
| Type | Description |
|---|---|
| nul |
OnCallRotation : getCatchAll(String rotaID)
Obtient le sys_id de la personne polyvalente. À utiliser avec la méthode getCatchAllType() pour déterminer la source de l’ID renvoyé. Cette API s’applique à une seule équipe, aux chevauchements d’équipes 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’un nul. |
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 affecter de personne d’astreinte, si configuré, l’incident est affecté au _catch all_. Cette API s’applique à une seule équipe, aux chevauchements d’équipes 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 : getEscalateeAt(String, groupID, GlideDateTime, dateTime, Number position)
Obtient un élément vers lequel escalader, un utilisateur [sys_user], un groupe ou un appareil de notification [cmn_notif_device], pour l’équipe d’un groupe aux date et 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é en 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 |
|---|---|---|
| ID de groupe | Chaîne | La sys_id du groupe à partir duquel l’élément doit être remonté. |
| DateHeure | GlideDateTime | Date et heure auxquelles la file d’escalade doit commencer. |
| position | Numéro | Position dans la ligne pour déterminer l’élément à escalader (de base 1, ce qui signifie que le nombre commence par 1). |
| Type | Description |
|---|---|
| GlideRecord | Élément vers lequel effectuer l’escalade, c’est-à-dire les escaladés (enregistrements d’utilisateurs, de groupes ou d’appareils en fonction des règles de notification) à une date 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 : getEscalatees(String groupSysIds, String rotaSysIds, String rosterSysIds, GlideDateTime gdt, GlideRecord taskGr)
Obtient une liste des escaladés qui sont d’astreinte pour une heure donnée. Si aucune heure n’est spécifiée, l’heure actuelle est utilisée. Si aucun groupSysIds n’est fourni, liste vide est renvoyée. Cette API s’applique à une seule équipe, aux chevauchements d’équipes et à l’escalade personnalisée.
| Nom | Type | Description |
|---|---|---|
| groupSysIds | Chaîne | Liste de sys_ids du sys_user_group séparée par des virgules pour filtrer les enregistrements. |
| rotaSysIds | Chaîne | Liste séparée par des virgules de cmn_rota sys_ids pour filtrer les enregistrements. |
| rosterSysIds | Chaîne | Liste séparée par des virgules de cmn_rota_roster sys_ids filtrer les enregistrements. |
| Le 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. Cette méthode renvoie le plan d’escalade correspondant. |
| Type | Description |
|---|---|
| Objet | Informations sur les escaladés 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"
}
]
Pour le chevauchement d’é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": "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 : getEscalationPlan(String groupSysId, GlideDateTime gdt, String rotaSysIds, GlideRecord taskGr)
Obtient une liste des objets à escalader, des plans d’escalade qui consistent en 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 chevauchements d’équipes et à l’escalade personnalisée.
- Ordre des numéros : ordre d’escalade au sein de l’alignement
- Chaîne userId : sys_id de l’enregistrement sys_user ou nul
- Chaîne deviceId : sys_id de l’enregistrement cmn_notif_device ou nul
- isDevice booléen : vrai ou faux selon que l’élément à escalader est un appareil ou un utilisateur
- GlideDuration timeBetweenReminders : le délai entre les rappels en cours d’envoi
- Numéro reminderNum : nombre de rappels à envoyer pour chaque élément à escalader jusqu’à
| Nom | Type | Description |
|---|---|---|
| ID de groupe | Chaîne | sys_id pour le groupe pour lequel vous avez besoin du plan d’escalade. |
| Le GDT | GlideDateTime | Date et heure auxquelles la file d’attente 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 séparée par des virgules de cmn_rota sys_ids 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. Cette méthode renvoie le plan d’escalade correspondant. |
| Type | Description |
|---|---|
| Objet | Une liste des objets d’escalade auxquels effectuer l’escalade. |
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"
}
]
Pour le chevauchement d’é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": [
{
"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 une 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 (chaîne rotaID)
Obtient le type d’escalade en fonction d’un calcul simple. S’il y a une liste active dans la rotation, alternez les membres. S’il y a plus d’une liste active dans la rotation, alternez les listes. Cette API s’applique à une seule équipe, aux chevauchements d’équipes et à l’escalade personnalisée.
| Nom | Type | Description |
|---|---|---|
| rotaID | Chaîne | La sys_id pour que la rotation vérifie les listes. |
| Type | Description |
|---|---|
| Chaîne |
|
var rotaSysId = '349f399173062300e7af6238edf6a75e';
var onCallRotation = new OnCallRotation();
var escalationType = onCallRotation.getEscalationType(rotaSysId);
gs.log(escalationType);
Sortie :
custom
OnCallRotation : getEscalateesAt(String groupSysId, GlideDateTime gdt, Number position, GlideRecord taskGr)
Obtient les escaladés (enregistrements d’utilisateur, de groupe ou d’appareil en fonction des règles de notification) à une heure et à une position spécifiques. Cette API s’applique à une seule équipe, aux chevauchements d’équipes et à l’escalade personnalisée.
| Nom | Type | Description |
|---|---|---|
| groupSysId | Chaîne | ys_id du groupe. |
| Le 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. Cette méthode renvoie le plan d’escalade correspondant. |
| Type | Description |
|---|---|
| GlideRecord | Tableau des escaladés (enregistrements d’un utilisateur, d’un groupe ou d’un appareil en fonction des règles de notification) à une date 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 :
Pour les chevauchements d’équipes :
Abel Tuter
Barbara Hindley
Pour une 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 le 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 primaire actuel du quart de travail spécifié. 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 primaire 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 primaire actuel du quart de travail spécifié. 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 primaire 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 principaux pour une équipe. Cette API s’applique à une seule équipe, aux chevauchements d’équipes 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 : spansOverlap(parent ArrayList, enfant ArrayList, String timeZone)
Vérifie si le parcours parent et le parcours enfant se chevauchent.
| Nom | Type | Description |
|---|---|---|
| parent | TableauListe | Le parent s’étend à comparer. |
| enfant | TableauListe | 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 : startEscalations(GlideRecord now_GR, chaîne eventName, chaîne escalationScriptName)
Démarrez les escalades pour un document (incident now_GR) 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 chevauchements d’équipes et à l’escalade personnalisée.
| Nom | Type | Description |
|---|---|---|
| now_GR | GlideRecord | Enregistrement Glide du document. Par exemple, Incident now_GR. |
| eventName | Chaîne | Nom d’événement des notifications d’escalade. |
| Nom du script d’escalade | Chaîne | Règle métier à appeler en cas d’escalade |
| Type | Description |
|---|---|
| nul |
OnCallRotation : who(String groupSysId, GlideDateTime gdt, booléen 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 équipe unique, aux chevauchements d’équipes et à l’escalade personnalisée.
| Nom | Type | Description |
|---|---|---|
| groupSysId | Chaîne | Sys_id du groupe à vérifier. |
| Le 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 pour une liste spécifique. Valeurs valides :
|
| rotaSysIds | Chaîne | Liste séparée par des virgules de cmn_rota sys_ids pour filtrer les enregistrements. |
| overrideCustomEscalation | Booléen | Marqueur indiquant s’il faut remplacer la politique d’escalade par défaut par l’escalade personnalisée. Valeurs valides :
|
| taskGR | GlideRecord | Facultatif. Enregistrement de tâche actuel. Si elle est transmise, la méthode renseigne 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 l’équipe du centre de services 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 chevauchements d’équipes et à l’escalade personnalisée.
| Nom | Type | Description |
|---|---|---|
| groupSysId | Chaîne | ID système du groupe. |
| Le 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 des ID système cmn_rota 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 : whoIsOnCall(String groupSysIds, String rotaSysIds, String rosterSysIds, GlideDateTime gdt)
Obtient la liste des utilisateurs qui sont 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 de sys_ids du sys_user_group séparée par des virgules pour filtrer les enregistrements. |
| rotaSysIds | Chaîne | Liste séparée par des virgules de cmn_rota sys_ids pour filtrer les enregistrements. |
| rosterSysIds | Chaîne | Liste séparée par des virgules de cmn_rota_roster sys_ids filtrer les enregistrements. |
| Le GDT | GlideDateTime | Date dans le fuseau horaire UTC |
| Type | Description |
|---|---|
| Objet | Liste d’utilisateurs, de groupes ou d’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"
}
]
Pour le chevauchement d’é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": "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)
Les règles métier d’escalade déterminent qui doit être contacté ensuite dans l’équipe. 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 chevauchements d’équipes et à l’escalade personnalisée.
| Nom | Type | Description |
|---|---|---|
| escaladeGr | GlideRecord | GlideRecord de l’escalade de rotation [cmn_rota_escalation]. |
| Type | Description |
|---|---|
| Aucun |