GlideMultiRecurrence - Com escopo

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 4 min. de leitura
  • . GlideMultiRecurrence A API 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 sn_schdl_ns namespace.

    Para usar esta API, a tabela de programação associada deve conter um ou mais dos seguintes campos (gatilhos).
    Gatilho Descrição
    effective_end Data e hora de término programadas do trabalho.
    effective_start Data e hora de início do trabalho.
    frequência Número de ocorrências a serem retornadas.
    run_dayofmonth Dia do mês para executar o trabalho. Valores válidos: 1-31
    run_dayofweek Dia da semana para executar o trabalho. Valores válidos: 1 (domingo) - 7 (sábado)
    run_month Mês do ano para executar o trabalho. Valores válidos: 1-12
    run_time Hora GMT do dia para executar o trabalho.
    run_weekinmonth Semana do mês para executar o trabalho. Valores válidos: 1-6
    time_zone Fuso horário do trabalho agendado.
    gatilho_tipo
    • 0: Executar uma vez
    • 1: Repetir
    • 2: Sob demanda
    • 3: Dia da semana
    • 4: Dia do mês
    • 5: Semana do mês
    • 6: Dia e mês do ano
    • 7: Dia na semana no mês e no ano
    • 8: Executar nos horários especificados
    • 9: Executar na inicialização do sistema
    • 10: Intervalo
    • 11: Diariamente
    Ao usar esta API, você deve primeiro criar um objeto GlideRecord para a tabela de programação na qual a API deve agir. Em seguida, você recupera o registro de programação para o qual os registros de ocorrência serão obtidos. Por exemplo:
    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 record

    GlideMultiRecurrence - getOccorrências()

    Retorna um objeto GlideDateTime para cada tempo de execução programado (ocorrência) que um trabalho agendado especificado deve executar em um período de tempo 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.

    Propriedades que controlam os resultados de retorno:
    • com.glide.schedule.recurrence.num_occurces_max: Número máximo de ocorrências a serem retornadas.
    • com.glide.schedule.recurrence.num_occurnces_default: Número padrão de ocorrências a serem retornadas.
    O método aplica as seguintes regras para determinar as ocorrências a serem retornadas pelo período de tempo definido e os gatilhos associados:
    • . effective_starto campo é válido e não é nulo ou vazio. use-o como a data para começar a retornar ocorrências. Caso contrário, use a data atual.
    • . effective_endo campo de data é válido e não é nulo ou vazio. retorna as ocorrências entre effective_starte o. effective_endcampos de data.

      Exceção à regra acima: Se effective_endA data está muito distante no futuro, resultando no retorno de mais do que o número de ocorrências especificado na propriedade com.glide.schedule.recurrence.num_occurnces_max, então o resultado é limitado ao valor especificado em com.glide.schedule.recurrence.num_occurnces_max (padrão 500).

    • . effective_endo campo de data é nulo ou vazio, mas frequencyo campo é definido e, em seguida, use frequencydeterminar o número de ocorrências a serem retornadas.
    • Retorna datas históricas se effective_starto campo de data está no passado.
    • . frequencye. effective_endambos os campos de data são especificados, use effective_enddata com o número máximo de ocorrências limitado ao valor especificado na propriedade com.glide.schedule.recurrence.num_occurances_max.
    Se nenhuma das regras acima for verdadeira, o método retornará ocorrências com base na configuração padrão das propriedades do sistema.
    Nota:
    MAX_Drift Não é compatível com esta API.

    Exemplo: Ambos frequencye. effective_endespecificados. Effective_enda data tem precedência, e. frequencyignorado.

    • frequency: 10
    • effective_start: 1 de agosto de 2022
    • effective_end10 de outubro de 2022
    • Tipo de gatilho: Dia do mês
    • Dia de execução do mês: 15

    O número de objetos GlideDateTime retornados é igual a 2.

    Ocorrências retornadas: 15 de agosto de 2022, 15 de setembro de 2022.

    Exemplo: Ambos frequencye. effective_endespecificados. Effective_enda data tem precedência e. frequencyé ignorado, no entanto, o número de ocorrências retornadas é restrito pelo valor na propriedade com.glide.schedule.recurrence.num_occurces_max.

    • frequency: 20
    • effective_start: 1 de agosto de 2022
    • effective_end30 de outubro de 2070
    • Tipo de gatilho: Dia do mês
    • Dia de execução do mês: 15

    O número de objetos GlideDateTime retornados é igual a 500.

    Tabela 1. Parâmetros
    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.
    Tabela 2. Retornos
    Tipo Descrição
    Matriz de GlideDateTime objetos Objeto GlideDateTime para cada vez que o trabalho programado deve ser executado.

    O exemplo a seguir mostra como recuperar objetos GlideDateTime para todas as datas/hora de execução programadas para 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