OnCallRotation : global
L’include de script OnCallRotation fournit des méthodes pour gérer les planifications d’astreinte.
(pour en savoir plus, consultez 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 équipe unique, aux équipes qui se chevauchent et à l’escalade personnalisée.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| 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 équipe unique, aux équipes qui se chevauchent et à l’escalade personnalisée.
| Nom | Type | Description |
|---|---|---|
| escalationGr | GlideRecord | GlideRecord de l’escalade de rotation (cmn_rota_escalation |
| Type | Description |
|---|---|
| nul |
OnCallRotation : continueEscalations(GlideRecord escalationGr)
Continuez les escalades pour un document (incident now_GR) et un groupe. Cette API s’applique à une équipe unique, aux équipes qui se chevauchent et à l’escalade personnalisée.
| Nom | Type | Description |
|---|---|---|
| escalationGr | GlideRecord | GlideRecord de l’escalade de rotation (cmn_rota_escalation |
| Type | Description |
|---|---|
| nul |
OnCallRotation : getCatchAll(String rotaID)
Obtient le sys_id de la personne fourre-tout. À utiliser conjointement avec la méthode getCatchAllType() pour déterminer la source de l’identifiant renvoyé. Cette API s’applique à une équipe unique, aux équipes qui se chevauchent et à l’escalade personnalisée.
| Nom | Type | Description |
|---|---|---|
| rotaID | Chaîne | Le sys_id de la rotation. |
| Type | Description |
|---|---|
| Chaîne | Le 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 affecter de personne d’astreinte, si elle est configurée, l’incident est affecté au _catch all_. Cette API s’applique à une équipe unique, aux équipes qui se chevauchent 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 à escalader, soit un utilisateur [sys_user], soit un groupe, soit un appareil de notification [cmn_notif_device], pour une équipe d’un groupe à la date et à l’heure spécifiées et à un certain emplacement dans la ligne d’escalade. Cette API est applicable à une seule équipe.
La méthode renvoie 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 |
|---|---|---|
| ID de groupe | Chaîne | Le sys_id du groupe à partir duquel obtenir l’élément à escalader. |
| DateHeure | GlideDateTime | Date et heure auxquelles la ligne d’escalade doit commencer. |
| position | Numéro | Position dans la file d’attente pour déterminer l’élément à escalader (base 1, ce qui signifie que le décompte commence par 1). |
| Type | Description |
|---|---|
| GlideRecord | Élément à escalader, c’est-à-dire les escaladés (enregistrements d’utilisateur, de groupe ou d’appareil en fonction des règles de notification) à une heure et à un emplacement 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, une liste vide est renvoyée. Cette API s’applique à une équipe unique, aux équipes qui se chevauchent et à l’escalade personnalisée.
| Nom | Type | Description |
|---|---|---|
| groupSysIds | Chaîne | Liste de sys_ids séparés par des virgules des sys_user_group pour filtrer les enregistrements. |
| rotaSysIds | Chaîne | Liste d’cmn_rota sys_ids séparés par des virgules pour filtrer les enregistrements. |
| rosterSysIds | Chaîne | Liste de cmn_rota_roster sys_ids séparés 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 de l’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"
}
]
Pour les chevauchements 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 une 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 d’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 équipe unique, aux équipes qui se chevauchent et à l’escalade personnalisée.
- Ordre des numéros : ordre d’escalade dans la file d’attente
- Chaîne userId : sys_id de l’enregistrement de sys_user ou nul
- Chaîne deviceId : sys_id de l’enregistrement cmn_notif_device ou nul
- Le booléen isDevice : vrai ou faux selon que l’élément à escalader est un appareil ou un utilisateur
- GlideDuration timeBetweenReminders : délai entre l’envoi de rappels
- Numéro reminderNum : nombre de rappels à envoyer pour chaque élément à escalader
| Nom | Type | Description |
|---|---|---|
| ID de groupe | Chaîne | sys_id du groupe pour lequel vous avez besoin du plan d’escalade. |
| gdt | GlideDateTime | Date et heure auxquelles la file d’attente d’escalade doit commencer. La valeur par défaut 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és 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 | Une liste des objets d’escalade à 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"
}
]
Pour les chevauchements 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 en fonction d’un calcul simple. S’il y a une liste active dans la rotation, alterner 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 équipe unique, aux équipes qui se chevauchent et à l’escalade personnalisée.
| Nom | Type | Description |
|---|---|---|
| rotaID | Chaîne | Le sys_id de la rotation pour vérifier 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 équipe unique, aux chevauchements d’équipes et à l’escalade personnalisée.
| Nom | Type | Description |
|---|---|---|
| groupSysId | Chaîne | ys_id du groupe. |
| gdt | GlideDateTime | au format aaaa-MM-jj HH :mm :ss dans le fuseau horaire UTC. La valeur par défaut 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 d’utilisateur, de groupe ou d’appareil en fonction des règles de notification) à une heure 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 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 les sys_id du contact principal actuel lorsqu’il y a 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 le 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 est applicable à 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 principaux d’une équipe. Cette API s’applique à une équipe unique, aux équipes qui se chevauchent 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(ArrayList parent, ArrayList enfant, String timeZone)
Vérifie si le parcours parent et les parcours enfants se chevauchent.
| Nom | Type | Description |
|---|---|---|
| parent | Tableau de liste | Parcours parent à comparer. |
| enfant | Tableau de liste | Parcours enfant à 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, puis spécifiez le nom d’é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 équipe unique, aux équipes qui se chevauchent et à l’escalade personnalisée.
| Nom | Type | Description |
|---|---|---|
| now_GR | GlideRecord | Enregistrement Glide de document. Par exemple, Incident now_GR. |
| eventName | Chaîne | Nom d’événement pour les notifications d’escalade. |
| escaladeScriptName | Chaîne | Règle métier à appeler en cas d’escalade |
| Type | Description |
|---|---|
| nul |
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 équipe unique, aux équipes qui se chevauchent 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 Valeur par défaut : date et heure actuelles |
| annulifyOverrideRoster | Booléen | Marqueur indiquant si la liste de notifications du groupe correspond à une liste spécifique. Valeurs valides :
|
| rotaSysIds | Chaîne | Liste d’cmn_rota sys_ids séparés par des virgules 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. En cas de réussite, 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 équipe unique, aux équipes qui se chevauchent et à l’escalade personnalisée.
| Nom | Type | Description |
|---|---|---|
| groupSysId | Chaîne | ID système du groupe. |
| gdt | GlideDateTime | au format aaaa-MM-jj HH :mm :ss dans le fuseau horaire UTC. La valeur par défaut est maintenant. |
| rotaSysIds | Chaîne | Liste séparée par des virgules des ID système cmn_rota pour filtrer les enregistrements. |
| Type | Description |
|---|---|
| Booléen | Vrai s’il existe au moins un utilisateur, groupe ou appareil d’astreinte ; faux sinon. |
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 séparés par des virgules des sys_user_group pour filtrer les enregistrements. |
| rotaSysIds | Chaîne | Liste d’cmn_rota sys_ids séparés par des virgules pour filtrer les enregistrements. |
| rosterSysIds | Chaîne | Liste de cmn_rota_roster sys_ids séparés par des virgules pour filtrer les enregistrements. |
| gdt | GlideDateTime | Date dans le fuseau horaire UTC |
| Type | Description |
|---|---|
| Objet | Liste des utilisateurs, groupes ou appareils qui sont d’astreinte à un moment donné. Par exemple, des informations sur les 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 les chevauchements 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 : 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 équipe unique, aux équipes qui se chevauchent et à l’escalade personnalisée.
| Nom | Type | Description |
|---|---|---|
| escalationGr | GlideRecord | GlideRecord d’escalade de rotation [cmn_rota_escalation]. |
| Type | Description |
|---|---|
| Aucun |