OnCallRotation - Global
A inclusão de script OnCallRotation 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 - addCurrentToNotified()
Adicione o membro de escalação atual à lista de usuários notificados para que a API saiba quem foi contatado. Esta API é aplicável para um único turno, turnos sobrepostos e escalação personalizada.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| vazio |
OnCallRotation - cancelEscalations(GlideRecord escalationGr)
Cancela todas as escalações do GlideRecord que foram iniciadas com a API startEscalations. Esta API é aplicável para um único turno, turnos sobrepostos e escalação personalizada.
| Nome | Tipo | Descrição |
|---|---|---|
| escalonamentoGr | 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 para um único turno, turnos sobrepostos e escalação personalizada.
| Nome | Tipo | Descrição |
|---|---|---|
| escalonamentoGr | 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 que atende tudo. Use junto com o método getCatchAllType() para determinar a origem do ID retornado. Esta API é aplicável para 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 configurada, o incidente é atribuído ao _catch all_. Esta API é aplicável para 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 do número)
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 linha 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 um argumento.
Você pode usar o método getTableName() para verificar se o GlideRecord de retorno 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 escalação deve começar. |
| posição | Número | A posição na linha para determinar o item a ser escalonado (baseado em 1, o que significa que a contagem começa com 1). |
| Tipo | Descrição |
|---|---|
| GlideRecord | O item a ser escalonado, 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 rotaSysIds, cadeia de caracteres rosterSysIds, GlideDateTime gdt, GlideRecord taskGr)
Obtém uma lista de escalações que estão de plantão por um determinado tempo. Se nenhuma hora for especificada, a hora atual será usada. Se nenhum groupSysIds for fornecido, a lista vazia será retornada. Esta API é aplicável para 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 cmn_rota sys_ids para filtrar os registros. |
| rosterSysIds | Cadeia de caracteres | Lista separada por vírgulas de cmn_rota_roster sys_ids para filtrar os registros. |
| gdt | GlideDateTime | Data no fuso horário UTC |
| taskGr | GlideRecord | Opcional. Registro de tarefa atual. Se taskGr estiver vazio, este método retornará o plano de escalação padrão. Se taskGr for aprovado, as políticas de escalação serão avaliadas na ordem e este método retornará o plano de escalação correspondente. |
| Tipo | Descrição |
|---|---|
| Objeto | Informações do escalonando, 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 para um único turno, turnos sobrepostos e escalação personalizada.
- Ordem numérica: a ordem de escalação na escalação
- Cadeia de caracteres userId: sys_id do registro sys_user ou nulo
- Cadeia de caracteres deviceId: sys_id do registro cmn_notif_device ou nulo
- Booliano isDevice: verdadeiro ou falso, dependendo se o item para o qual escalonar é um dispositivo ou usuário
- GlideDuration timeBetweenReminders: o tempo entre o envio de lembretes
- Número lembreteNum: número de lembretes a serem enviados para cada item a ser escalado
| Nome | Tipo | Descrição |
|---|---|---|
| groupID | Cadeia de caracteres | sys_id para o grupo para o qual você precisa do plano de escalação. |
| gdt | GlideDateTime | Data e hora em que a escalação deve começar. O padrão é agora. aaaa-MM-dd HH:mm:ss é o formato no fuso horário UTC. |
| rotaSysIds | Cadeia de caracteres | Lista separada por vírgulas de cmn_rota sys_ids para filtrar os registros. |
| taskGr | GlideRecord | Opcional. Registro de tarefa atual. Se taskGr estiver vazio, este método retornará o plano de escalação padrão. Se taskGr for aprovado, as políticas de escalação serão avaliadas na 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 escalonar. |
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 escala ativa na escala, faça a rotação entre os membros. Se houver mais de uma escala ativa na escala, alterne entre as escalas. Esta API é aplicável para um único turno, turnos sobrepostos e escalação personalizada.
| Nome | Tipo | Descrição |
|---|---|---|
| rotaID | Cadeia de caracteres | O sys_id da escala para verificar 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 do número, GlideRecord taskGr)
Obtém os escalonados (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 para um único turno, turnos sobrepostos e escalação personalizada.
| Nome | Tipo | Descrição |
|---|---|---|
| groupSysId | Cadeia de caracteres | ys_id do grupo. |
| gdt | GlideDateTime | aaaa-MM-dd Formato HH:mm:ss no fuso horário UTC. O padrão é agora. |
| posição | Número | Posição da etapa de escalação. |
| taskGr | GlideRecord | Opcional. Registro de tarefa atual. Se taskGr estiver vazio, este método retornará o plano de escalação padrão. Se taskGr for aprovado, as políticas de escalação serão avaliadas na ordem e este método retornará o plano de escalação correspondente. |
| Tipo | Descrição |
|---|---|
| GlideRecord | Matriz de escalações (um usuário, grupo ou registros de 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 para 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(cadeia de caracteres rotaId)
Obtém o nome do usuário primário atual do turno especificado. Esta API é aplicável para 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 para 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, cadeia de caracteres timeZone)
Verifica se o período primário e os períodos secundários 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 os métodos Who ou WhoAt. Esta API é aplicável para um único turno, turnos sobrepostos e escalação personalizada.
| Nome | Tipo | Descrição |
|---|---|---|
| now_GR | GlideRecord | Registro de glide de documento. Por exemplo, Incident now_GR. |
| eventName | Cadeia de caracteres | Nome do evento para as notificações de escalação. |
| escalationScriptName | Cadeia de caracteres | Regra de negócio para chamar quando ocorre escalação |
| Tipo | Descrição |
|---|---|
| vazio |
OnCallRotation - quem(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 para 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ção do grupo é para uma listagem específica. Valores válidos:
|
| rotaSysIds | Cadeia de caracteres | Lista separada por vírgulas de cmn_rota sys_ids para filtrar os registros. |
| overrideCustomEscalation | 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 de tarefa atual. Se aprovado, o método preencherá os escalonados 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 para um único turno, turnos sobrepostos e escalação personalizada.
| Nome | Tipo | Descrição |
|---|---|---|
| groupSysId | Cadeia de caracteres | SYS ID do grupo. |
| gdt | GlideDateTime | aaaa-MM-dd Formato HH:mm:ss no fuso horário UTC. O padrão é agora. |
| 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 rotaSysIds, 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 para 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 cmn_rota sys_ids para filtrar os registros. |
| rosterSysIds | Cadeia de caracteres | Lista separada por vírgulas de cmn_rota_roster sys_ids 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, deviceIdse 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ócios 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 para um único turno, turnos sobrepostos e escalação personalizada.
| Nome | Tipo | Descrição |
|---|---|---|
| escalonamentoGr | GlideRecord | GlideRecord de escalação de rotação [cmn_rota_escalation]. |
| Tipo | Descrição |
|---|---|
| Nenhum |