GlideMultiRecurrence - com escopo
A API GlideMultiRecurrence fornece métodos que retornam objetos GlideDateTime que descrevem os tempos de execução de um trabalho agendado especificado.
Use esta API quando precisar determinar quando um trabalho periódico ou recorrente específico precisa ser executado, também conhecido como ocorrência.
Esta API é executada no namespace sn_schdl_ns.
| Gatilho | Descrição |
|---|---|
| eficaz_término | Data e hora de término programadas do trabalho. |
| início_efetivo | Data e hora de início da programação do trabalho. |
| frequência | Número de ocorrências a serem retornadas. |
| executar_diadomês | Dia do mês para executar o trabalho. Valores válidos: 1-31 |
| executar_diadasemana | Dia da semana para executar o trabalho. Valores válidos: 1 (domingo) - 7 (sábado) |
| execução_mês | Mês do ano para executar o trabalho. Valores válidos: 1-12 |
| run_time | Hora do dia GMT para executar o trabalho. |
| execução_semanaemmês | Semana do mês para executar o trabalho. Valores válidos: 1-6 |
| time_zone | Fuso horário do trabalho agendado. |
| gatilho_tipo |
|
var table_nameGR = new GlideRecord('<table_name>'); // Scheduling table, such as sys_trigger
table_nameGR.addQuery('sys_id', '<sys_id>'); // Sys_id of the scheduling record
table_nameGR.query();
table_nameGR.next(); // Retrieve the scheduling recordGlideMultiRecurrence – getOccurrences()
Retorna um objeto GlideDateTime para cada hora de execução programada (ocorrência) em que um trabalho agendado especificado deve ser executado dentro de um período específico, com base nos gatilhos definidos no registro de programação associado (GlideRecord).
Este método analisa o objeto de programação GlideRecord atual, usando os gatilhos definidos no objeto de programação, para determinar quando o trabalho deve ser executado.
- com.glide.schedule.recurrence.num_occurrences_max: número máximo de ocorrências a serem retornadas.
- com.glide.schedule.recurrence.num_occurrences_default: número padrão de ocorrências a serem retornadas.
- Se o campo effective_start for válido e não for nulo ou vazio, use-o como a data para começar a retornar ocorrências. Caso contrário, use a data atual.
- Se o campo de data effective_end for válido e não for nulo ou vazio, retorne as ocorrências entre os campos de data effective_start e effective_end.
Exceção à regra acima: se a data effective_end estiver muito distante no futuro, resultando no retorno de mais ocorrências do que o número especificado na propriedade com.glide.schedule.recurrence.num_occurrences_max, o resultado será limitado a valor especificado em com.glide.schedule.recurrence.num_occurrences_max (o padrão é 500).
- Se o campo de data effective_end for nulo ou vazio, mas o campo frequency estiver definido, use frequency para determinar o número de ocorrências a serem retornadas.
- Retornar datas históricas se o campo de data effective_start estiver no passado.
- Se os campos de data frequency e effective_end forem especificados, use a data effective_end com o número máximo de ocorrências limitadas ao valor especificado na propriedade com.glide.schedule.recurrence.num_occurrences_max.
Exemplo: frequency e effective_end foram especificados. A data Effective_end tem precedência e frequency é ignorada.
- frequency: 10
- effective_start: 1º de agosto de 2022
- effective_end: 10 de outubro de 2022
- Tipo de gatilho: dia do mês
- Dia de execução do mês: 15
Número de objetos GlideDateTime retornados = 2.
Ocorrências retornadas: 15 de agosto de 2022, 15 de set de 2022.
Exemplo: frequency e effective_end foram especificados. A data Effective_end tem precedência e frequency é ignorada. No entanto, o número de ocorrências retornadas é restrito pelo valor na propriedade com.glide.schedule.recurrence.num_occurrences_max.
- frequency: 20
- effective_start: 1º de agosto de 2022
- effective_end: 30 de outubro de 2070
- Tipo de gatilho: dia do mês
- Dia de execução do mês: 15
Número de objetos GlideDateTime retornados = 500.
| Nome | Tipo | Descrição |
|---|---|---|
| grSchedule | GlideRecord | Objeto GlideRecord que aponta para o registro que contém o trabalho para o qual você deseja obter as ocorrências de programação. |
| Tipo | Descrição |
|---|---|
| Matriz de objetos GlideDateTime | Objeto GlideDateTime para cada hora em que o trabalho programado deve ser executado. |
O exemplo a seguir mostra como recuperar objetos GlideDateTime para todas as datas/horas de execução programadas de um período específico para um registro de programação de trabalho especificado. O trabalho selecionado está programado para ser executado a cada hora.
var sys_id = 'a9e30c7dc61122760116894de7bcc7bd'; // Sys_id of the job schedule record
var table = 'sys_trigger'; // Table that contains the job schedule record
var grSchedule = new GlideRecord(table);
if
(grSchedule.get(sys_id)) {
var multiRecurrence = new sn_schdl_ns.GlideMultiRecurrence();
var dates = multiRecurrence.getOccurrences(grSchedule); // Display the list of occurrences
for(var i=0; i<dates.length; i++) {
gs.info('occurrence = ' + dates[i]);
}
}
Saída:
occurrence = 2022-11-21 16:23:23
occurrence = 2022-11-21 17:23:23
occurrence = 2022-11-21 18:23:23
occurrence = 2022-11-21 19:23:23
occurrence = 2022-11-21 20:23:23
occurrence = 2022-11-21 21:23:23
occurrence = 2022-11-21 22:23:23
occurrence = 2022-11-21 23:23:23
occurrence = 2022-11-22 00:23:23
occurrence = 2022-11-22 01:23:23