OnCallRotation - Global
. OnCallRotation a inclusão de script fornece métodos para gerenciar cronogramas de plantão.
Para obter informações, consulte Agendamento de plantão .
OnCallRotation - OnCallRotation()
Cria uma instância da classe OnCallRotation.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
var oncall = new OnCallRotation();
OnCallRotation - addCurrentToNofied()
Adicione o membro de escalação atual à lista de usuários notificados para que a API saiba quem foi contatado. Esta API é aplicável a um único turno, turnos sobrepostos e escalação personalizada.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| vazio |
OnCallRotation - Cancelations (GlideRecord escalationGr)
Cancela todas as escalações para o GlideRecord que foram iniciadas com IniciarEscalações API. Esta API é aplicável a um único turno, turnos sobrepostos e escalação personalizada.
| Nome | Tipo | Descrição |
|---|---|---|
| EscalaçãoGr | GlideRecord | GlideRecord de escalação de rotação (cmn_rota_escalation |
| Tipo | Descrição |
|---|---|
| vazio |
OnCallRotation - continueEscalations (GlideRecord escalationGr)
Continue as escalações para um documento (incident now_GR) e grupo. Esta API é aplicável a um único turno, turnos sobrepostos e escalação personalizada.
| Nome | Tipo | Descrição |
|---|---|---|
| EscalaçãoGr | GlideRecord | GlideRecord de escalação de rotação (cmn_rota_escalation |
| Tipo | Descrição |
|---|---|
| vazio |
OnCallRotation - getCatchAll(cadeia de caracteres rotaID)
Obtém o sys_id da pessoa catch all. Use junto com GetCatchAllType() método para determinar a origem do id retornado. Esta API é aplicável a um único turno, turnos sobrepostos e escalação personalizada.
| Nome | Tipo | Descrição |
|---|---|---|
| RotaID | Cadeia de caracteres | O sys_id da escala. |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | O sys_id de um sys_user, um cmn_rota_roster ou nulo. |
var rotaSysId = '349f399173062300e7af6238edf6a75e';
var onCallRotation = new OnCallRotation();
var catchAll = onCallRotation.getCatchAll(rotaSysId);
gs.log(catchAll);
Saída:
46d44a23a9fe19810012d100cca80666
OnCallRotation - getCatchAllType(cadeia de caracteres rotaID)
Obtém o tipo de _catch all_ que reside no final da cadeia de escalação. Quando a cadeia de escalação termina sem atribuir uma pessoa de plantão, se configurado, o incidente é atribuído ao _catch all_. Esta API é aplicável a um único turno, turnos sobrepostos e escalação personalizada.
| Nome | Tipo | Descrição |
|---|---|---|
| RotaID | Cadeia de caracteres | O sys_id da escala. |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres |
|
var rotaSysId = '349f399173062300e7af6238edf6a75e';
var onCallRotation = new OnCallRotation();
var catchAllType = onCallRotation.getCatchAllType(rotaSysId);
gs.log(catchAllType);
Saída:
group_manager
OnCallRotation - getEscalateeAt(cadeia de caracteres groupID, GlideDateTime DateTime, posição numérica)
Obtém um item para escalar, seja um usuário [sys_user], grupo ou dispositivo de notificação [cmn_notif_device], para o turno de um grupo na data e hora especificadas e em uma determinada posição na programação de escalação. Esta API é aplicável a um único turno.
O método retornará nulo se uma posição ou grupo inválido for passado como argumento.
Você pode usar GetTableName() Método para verificar se o GlideRecord retornado vem da tabela sys_user ou cmn_notif_device.
| Nome | Tipo | Descrição |
|---|---|---|
| groupID | Cadeia de caracteres | O sys_id do grupo do qual o item será escalado. |
| Data/hora | GlideDateTime | A data e a hora em que a programação de escalação deve começar. |
| posição | Número | A posição na linha para determinar o item para o qual escalar (baseado em 1, o que significa que a contagem começa com 1). |
| Tipo | Descrição |
|---|---|
| GlideRecord | O item para o qual escalar, ou seja, escalados (um usuário, grupo ou registros de dispositivo, dependendo das regras de notificação) em um horário e posição específicos. Retorna nulo se nada for encontrado. |
var groupSysId = '096fb59173062300e7af6238edf6a783';
var currentTime = new GlideDateTime();
var onCallRotation = new OnCallRotation();
var escalatee = onCallRotation.getEscalateeAt(groupSysId, currentTime, 1);
gs.log(escalatee.name);
Saída:
Abel Tuter
OnCallRotation - getEscalatees(cadeia de caracteres groupSysIds, cadeia de caracteres rosterSysIds, GlideDateTime gdt, GlideRecord taskGr)
Obtém uma lista de escalados que estão de plantão por um determinado horário. Se nenhuma hora for especificada, a hora atual será usada. Se nenhum groupSysIds for fornecido, uma lista vazia será retornada. Esta API é aplicável a um único turno, turnos sobrepostos e escalação personalizada.
| Nome | Tipo | Descrição |
|---|---|---|
| SysIdsGrupo | Cadeia de caracteres | Lista separada por vírgulas de sys_ids do sys_user_group para filtrar os registros. |
| RotaSysIds | Cadeia de caracteres | Lista separada por vírgulas de sys_ids cmn_rota para filtrar os registros. |
| RosterSysIds | Cadeia de caracteres | Lista separada por vírgulas de sys_ids cmn_rota_roster para filtrar os registros. |
| gdt | GlideDateTime | Data no fuso horário UTC |
| taskGr | GlideRecord | Opcional. Registro da tarefa atual. Se taskGr estiver vazio, este método retornará o plano de escalação padrão. Se a tarefa Gr for aprovada, as políticas de escalação serão avaliadas em ordem e este método retornará o plano de escalação correspondente. |
| Tipo | Descrição |
|---|---|
| Objeto | Informações do escalador, como userids, deviceIds e escalationGroups. |
var groupSysId = '096fb59173062300e7af6238edf6a783';
var currentTime = new GlideDateTime();
var onCallRotation = new OnCallRotation();
var result = onCallRotation.getEscalatees(groupSysId, "", "", currentTime);
gs.log(JSON.stringify(result));
Saída:
Para turno único:
[
{
"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"
}
]
Para turno sobreposto:
[
{
"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"
}
]
Para escalação personalizada
[
{
"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(cadeia de caracteres groupSysId, GlideDateTime gdt, cadeia de caracteres rotaSysIds, GlideRecord taskGr)
Obtém uma lista de objetos para os quais escalar, planos de escalação que consistem em um usuário [sys_user] ou dispositivo de notificação [cmn_notif_device], para o turno de um grupo na data e hora especificadas. Esta API é aplicável a um único turno, turnos sobrepostos e escalação personalizada.
- Ordem numérica: A ordem de escalação na programação
- UserId: Sys_id do registro sys_user ou nulo
- Cadeia de caracteres deviceId: Sys_id do registro cmn_notif_device ou nulo
- IsDevice booliano: Verdadeiro ou falso, dependendo se o item a ser escalado é um dispositivo ou usuário
- GlideDuration timeBetweenLembretes: O tempo entre o envio dos lembretes
- Número de lembretes: Número de lembretes a serem enviados para cada item a ser escalado
| Nome | Tipo | Descrição |
|---|---|---|
| groupID | Cadeia de caracteres | sys_id do grupo para o qual você precisa do plano de escalação. |
| gdt | GlideDateTime | Data e hora em que a programação de escalação deve começar. O padrão é now. aaaa-MM-dd HH:mm:ss é o formato no fuso horário UTC. |
| RotaSysIds | Cadeia de caracteres | Lista separada por vírgulas de sys_ids cmn_rota para filtrar os registros. |
| taskGr | GlideRecord | Opcional. Registro da tarefa atual. Se taskGr estiver vazio, este método retornará o plano de escalação padrão. Se a tarefa Gr for aprovada, as políticas de escalação serão avaliadas em ordem e este método retornará o plano de escalação correspondente. |
| Tipo | Descrição |
|---|---|
| Objeto | Uma lista de objetos de escalação para os quais escalar. |
var groupSysId = '096fb59173062300e7af6238edf6a783';
var currentTime = new GlideDateTime();
var onCallRotation = new OnCallRotation();
var result = onCallRotation.getEscalationPlan(groupSysId, currentTime);
gs.log(JSON.stringify(result));
Saída:
Para turno único:
[
{
"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"
}
]
Para turno sobreposto:
[
{
"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"
}
]
Para escalação personalizada:
[
{
"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(cadeia de caracteres rotaID)
Obtém o tipo de escalação com base em um cálculo simples. Se houver uma listagem ativa na escala, alterne entre os membros. Se houver mais de uma escala ativa na escala, alterne as escalas. Esta API é aplicável a um único turno, turnos sobrepostos e escalação personalizada.
| Nome | Tipo | Descrição |
|---|---|---|
| RotaID | Cadeia de caracteres | O sys_id da escala para verificar se há escalas. |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres |
|
var rotaSysId = '349f399173062300e7af6238edf6a75e';
var onCallRotation = new OnCallRotation();
var escalationType = onCallRotation.getEscalationType(rotaSysId);
gs.log(escalationType);
Saída:
custom
OnCallRotation - getEscalateesAt(cadeia de caracteres groupSysId, GlideDateTime gdt, posição numérica, GlideRecord taskGr)
Obtém os escalados (registros de usuário, grupo ou dispositivo, dependendo das regras de notificação) em um horário e posição específicos. Esta API é aplicável a um único turno, turnos sobrepostos e escalação personalizada.
| Nome | Tipo | Descrição |
|---|---|---|
| groupSysId | Cadeia de caracteres | ys_id do grupo. |
| gdt | GlideDateTime | Formato HH:MM:ss no fuso horário UTC. O padrão é now. |
| posição | Número | Posição da etapa de escalação. |
| taskGr | GlideRecord | Opcional. Registro da tarefa atual. Se taskGr estiver vazio, este método retornará o plano de escalação padrão. Se a tarefa Gr for aprovada, as políticas de escalação serão avaliadas em ordem e este método retornará o plano de escalação correspondente. |
| Tipo | Descrição |
|---|---|
| GlideRecord | Matriz de escalados (registros de usuário, grupo ou dispositivo, dependendo das regras de notificação) em um horário e posição específicos. |
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);
}
Saída:
Para turnos sobrepostos:
Abel Tuter
Barbara Hindley
Para escalação personalizada:
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()
Obtém o sys_id do contato primário atual quando há um único turno.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | sys_id do contato primário atual. |
Exemplo:
var groupSysId = '096fb59173062300e7af6238edf6a783';
var currentTime = new GlideDateTime();
var onCallRotation = new OnCallRotation();
var result = onCallRotation.who(groupSysId, currentTime);
var primaryUser = onCallRotation.getPrimaryUser();
Saída:
62826bf03710200044e0bfc8bcbe5df1
OnCallRotation - getPrimaryUserByRota(cadeia de caracteres rotaId)
Obtém o sys_id do usuário primário atual do turno especificado. Esta API é aplicável a um único turno e turnos sobrepostos.
| Nome | Tipo | Descrição |
|---|---|---|
| rotaId | Cadeia de caracteres | sys_id do cmn_rota. |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | sys_id do usuário primário atual do turno especificado. |
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);
Saída:
62826bf03710200044e0bfc8bcbe5df1
OnCallRotation - getPrimaryUserName()
Obtém o nome do contato primário atual. Esta API é aplicável a um único turno.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | Nome do contato primário atual. |
var groupSysId = '096fb59173062300e7af6238edf6a783';
var currentTime = new GlideDateTime();
var onCallRotation = new OnCallRotation();
var result = onCallRotation.who(groupSysId, currentTime);
var primaryUser = onCallRotation.getPrimaryUserName();
gs.log(primaryUser);
Saída:
Abel Tuter
OnCallRotation - getPrimaryUserNameByRota(String rotaId)
Obtém o nome do usuário primário atual do turno especificado. Esta API é aplicável a um único turno e turnos sobrepostos.
| Nome | Tipo | Descrição |
|---|---|---|
| rotaId | Cadeia de caracteres | sys_id do cmn_rota. |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | Nome do usuário primário atual do turno especificado. |
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);
Saída:
Abel Tuter
OnCallRotation - getPrimaryUsers()
Obtém a lista de contatos primários de um turno. Esta API é aplicável a um único turno, turnos sobrepostos e escalação personalizada.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Objeto | Lista de contatos primários. |
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));
Saída:
{
"349f399173062300e7af6238edf6a75e": {
"userSysId": "62826bf03710200044e0bfc8bcbe5df1",
"userName": "Abel Tuter"
},
"35af799173062300e7af6238edf6a79e": {
"userSysId": "d2826bf03710200044e0bfc8bcbe5dc9",
"userName": "Barbara Hindley"
}
}
OnCallRotation - SpansOverlap(ArrayList primário, ArrayList secundário, fuso horário da cadeia de caracteres)
Verifica se o período primário e secundário se sobrepõem.
| Nome | Tipo | Descrição |
|---|---|---|
| primário | ArrayList | Os períodos primários a serem comparados. |
| secundário | ArrayList | Os períodos secundários a serem comparados. |
| fuso horário | Cadeia de caracteres | O nome do fuso horário. |
| Tipo | Descrição |
|---|---|
| Booliano | Retorna verdadeiro se os períodos primário e secundário se sobrepõem. |
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, cadeia de caracteres eventName, cadeia de caracteres escalationScriptName)
Inicie as escalações para um documento (incident now_GR) e grupo e especifique o nome do evento para as notificações de escalação. Além disso, especifique o nome da regra de negócio a ser chamada quando ocorrer uma escalação. Este método deve ser usado após uma chamada bem-sucedida para quem ou WhoAt métodos. Esta API é aplicável a um único turno, turnos sobrepostos e escalação personalizada.
| Nome | Tipo | Descrição |
|---|---|---|
| Now_GR | GlideRecord | Registro do Glide do documento. Por exemplo, Incidente NOW_GR. |
| eventName | Cadeia de caracteres | Nome do evento para as notificações de escalação. |
| EscalationScriptName | Cadeia de caracteres | Regra de negócio a ser chamada quando ocorrer escalação |
| Tipo | Descrição |
|---|---|
| vazio |
OnCallRotation - who (cadeia de caracteres groupSysId, GlideDateTime gdt, booliano nullifyOverrideRoster, cadeia de caracteres rotaSysIds, booliano overrideCustomEscalation, GlideRecord taskGR)
Especifica se há um usuário, grupo ou dispositivo de plantão. Este método é aplicável a um único turno, turnos sobrepostos e escalação personalizada.
| Nome | Tipo | Descrição |
|---|---|---|
| groupSysId | Cadeia de caracteres | Sys_id do grupo a ser verificado. |
| gdt | GlideDateTime | Data e hora. Formato: aaaa-MM-dd HH:mm:ss no fuso horário UTC Padrão: Data e hora atuais |
| NullifyOverrideRoster | Booliano | Sinalizador que indica se a lista de notificações do grupo é para uma listagem específica. Valores válidos:
|
| RotaSysIds | Cadeia de caracteres | Lista separada por vírgulas de sys_ids cmn_rota para filtrar os registros. |
| CustomEscalation substituído | Booliano | Sinalizador que indica se a política de escalação padrão deve ser substituída pela escalação personalizada. Valores válidos:
|
| taskGR | GlideRecord | Opcional. Registro da tarefa atual. Se aprovado, o método preencherá os escalados com base nas condições de escalação. |
| Tipo | Descrição |
|---|---|
| Booliano | Sinalizador que indica se uma correspondência foi encontrada. Valores possíveis:
|
var groupSysId = '096fb59173062300e7af6238edf6a783';
var currentTime = new GlideDateTime();
var onCallRotation = new OnCallRotation();
var result = onCallRotation.who(groupSysId, currentTime);
gs.log(result);
Saída:
true
O exemplo a seguir mostra como criar uma escalação personalizada para o turno da central de serviços com a condição P1 para um incidente.
/**
* 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());
}
Saída:
Beth Anglin
OnCallRotation - whoAt(cadeia de caracteres groupSysId, GlideDateTime gdt, cadeia de caracteres rotaSysIds)
Especifica se há um usuário, grupo ou dispositivo de plantão. Esta API é aplicável a um único turno, turnos sobrepostos e escalação personalizada.
| Nome | Tipo | Descrição |
|---|---|---|
| groupSysId | Cadeia de caracteres | Sys ID do grupo. |
| gdt | GlideDateTime | Formato HH:MM:ss no fuso horário UTC. O padrão é now. |
| RotaSysIds | Cadeia de caracteres | Lista separada por vírgulas de sys IDs cmn_rota para filtrar os registros. |
| Tipo | Descrição |
|---|---|
| Booliano | Verdadeiro se houver pelo menos um usuário, grupo ou dispositivo de plantão; caso contrário, falso. |
var groupSysId = '096fb59173062300e7af6238edf6a783';
var currentTime = new GlideDateTime();
var onCallRotation = new OnCallRotation();
var result = onCallRotation.whoAt(groupSysId, currentTime);
gs.log(result);
Saída:
true
OnCallRotation - whoIsOnCall(cadeia de caracteres groupSysIds, cadeia de caracteres rosterSysIds, cadeia de caracteres rosterSysIds, GlideDateTime gdt)
Obtém a lista de usuários que estão de plantão em um determinado momento. Se nenhuma hora for especificada, a hora atual será usada. Esta API é aplicável a um único turno e turnos sobrepostos.
| Nome | Tipo | Descrição |
|---|---|---|
| SysIdsGrupo | Cadeia de caracteres | Lista separada por vírgulas de sys_ids do sys_user_group para filtrar os registros. |
| RotaSysIds | Cadeia de caracteres | Lista separada por vírgulas de sys_ids cmn_rota para filtrar os registros. |
| RosterSysIds | Cadeia de caracteres | Lista separada por vírgulas de sys_ids cmn_rota_roster para filtrar os registros. |
| gdt | GlideDateTime | Data no fuso horário UTC |
| Tipo | Descrição |
|---|---|
| Objeto | Lista de usuários, grupos ou dispositivos que estão de plantão em um determinado momento. Por exemplo, informações sobre userids, deviceIds e escalationGroups. |
var groupSysId = '096fb59173062300e7af6238edf6a783';
var currentTime = new GlideDateTime();
var onCallRotation = new OnCallRotation();
var escalatees = onCallRotation. whoIsOnCall(groupSysId, "", "", currentTime);
gs.log(JSON.stringify(escalatees));
Saída:
Para turno único:
[
{
"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"
}
]
Para turno sobreposto:
[
{
"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)
As regras de negócio de escalação determinam quem no turno deve ser contatado em seguida. O registro de escalação passado para o método rastreia a escalação entre invocações da regra de negócio. Esta API é aplicável a um único turno, turnos sobrepostos e escalação personalizada.
| Nome | Tipo | Descrição |
|---|---|---|
| EscalaçãoGr | GlideRecord | GlideRecord de escalação de rotação [cmn_rota_escalation]. |
| Tipo | Descrição |
|---|---|
| Nenhum |