GlideMultiRecurrence : inclus dans le champ d’application

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 4 minutes de lecture
  • L’API GlideMultiRecurrence fournit des méthodes qui renvoient des objets GlideDateTime qui décrivent les temps d’exécution d’une tâche planifiée spécifiée.

    Utilisez cette API lorsque vous devez déterminer quand une tâche périodique ou récurrente spécifique doit s’exécuter, également appelée occurrence.

    Cette API s’exécute dans l’espace de noms sn_schdl_ns .

    Pour utiliser cette API, la table de planification associée doit contenir un ou plusieurs des champs (déclencheurs) suivants.
    Répétition Description
    effective_end Date et heure de fin planifiées de la tâche.
    effective_start Planifiez la date et l’heure de début de la tâche.
    fréquence Nombre d’occurrences à renvoyer.
    run_dayofmonth Jour du mois pour exécuter la tâche. Valeurs valides : 1-31
    run_dayofweek Jour de la semaine pour exécuter la tâche. Valeurs valides : 1 (dimanche) - 7 (samedi)
    run_month Mois de l’année pour exécuter la tâche. Valeurs valides : 1-12
    run_time Heure GMT de la journée pour exécuter la tâche.
    run_weekinmonth Semaine du mois pour exécuter la tâche. Valeurs valides : 1-6
    time_zone Fuseau horaire de la tâche planifiée.
    trigger_type
    • 0 : Exécuter une fois
    • 1 : Répétez
    • 2 : Sur demande
    • 3 : Jour de la semaine
    • 4 : Jour du mois
    • 5 : Semaine du mois
    • 6 : Jour et mois de l’année
    • 7 : Jour de la semaine, du mois et de l’année
    • 8 : S’exécute aux heures spécifiées
    • 9 : Exécuter au démarrage du système
    • 10 : Intervalle
    • 11 : Tous les jours
    Lors de l’utilisation de cette API, vous devez d’abord créer un objet GlideRecord pour la table de planification sur laquelle l’API doit agir. Vous récupérez ensuite l’enregistrement de planification pour lequel vous souhaitez obtenir les enregistrements d’occurrences. Par exemple :
    var table_nameGR = new GlideRecord('<table_name>'); // Scheduling table, such as sys_trigger
    gr.addQuery('sys_id', '<sys_id>'); // Sys_id of the scheduling record
    gr.query();
    gr.next();  // Retrieve the scheduling record

    GlideMultiRecurrence : getOccurrences()

    Renvoie un objet GlideDateTime pour chaque heure d’exécution planifiée (occurrence) qu’une tâche planifiée spécifiée doit exécuter dans un délai spécifique, en fonction des déclencheurs définis dans l’enregistrement de calendrier associé (GlideRecord).

    Cette méthode analyse l’objet de planification GlideRecord actuel, à l’aide des déclencheurs définis dans l’objet de planification, afin de déterminer quand la tâche doit s’exécuter.

    Propriétés qui contrôlent les résultats de retour :
    • com.glide.schedule.recurrence.num_occurrences_max : nombre maximum d’occurrences à renvoyer.
    • com.glide.schedule.recurrence.num_occurrences_default : nombre d’occurrences par défaut à renvoyer.
    La méthode applique les règles suivantes pour déterminer les occurrences à renvoyer pour la période définie et les déclencheurs associés :
    • Si le effective_start champ est valide et qu’il n’est pas nul ou vide, utilisez-le comme date pour commencer à renvoyer des occurrences. Sinon, utilisez la date du jour.
    • Si le champ de effective_end date est valide et qu’il n’est pas nul ou vide, renvoyez les occurrences entre le effective_start et les champs de effective_end date.

      Exception à la règle ci-dessus : si la date est trop éloignée dans le effective_end futur, entraînant le retour d’un nombre d’occurrences supérieur au nombre spécifié dans la propriété com.glide.schedule.recurrence.num_occurrences_max, le résultat est limité à la valeur spécifiée dans com.glide.schedule.recurrence.num_occurrences_max (500 par défaut).

    • Si le effective_end champ de date est nul ou vide, mais qu’il frequency est défini, alors utilisez-le frequency pour déterminer le nombre d’occurrences à renvoyer.
    • Renvoyer les dates historiques si le champ de effective_start date est dans le passé.
    • Si les champs et frequencyeffective_end date sont tous les deux spécifiés, utilisez la effective_end date avec le nombre maximal d’occurrences limité à la valeur spécifiée dans la propriété com.glide.schedule.recurrence.num_occurrences_max.
    Si aucune des règles ci-dessus n’est vraie, la méthode renvoie les occurrences en fonction du paramètre par défaut des propriétés système.
    Remarque :
    MAX_Drift n’est pas pris en charge par cette API.

    Exemple : les deux frequency et effective_end sont spécifiés. Effective_end La date est prioritaire et frequency est ignorée.

    • frequency : 10
    • effective_start: 1er août 2022
    • effective_end: 10 oct. 2022
    • Type de déclencheur : jour du mois
    • Jour d’exécution du mois : 15

    Nombre d’objets GlideDateTime renvoyés = 2.

    Occurrences renvoyées : 15 août 2022, 15 septembre 2022.

    Exemple : les deux frequency et effective_end sont spécifiés. Effective_end La date a priorité et frequency est ignorée, cependant, le nombre d’occurrences renvoyées est limité par la valeur de la propriété com.glide.schedule.recurrence.num_occurrences_max.

    • frequency: 20
    • effective_start: 1er août 2022
    • effective_end: 30 Octobre 2070
    • Type de déclencheur : jour du mois
    • Jour d’exécution du mois : 15

    Nombre d’objets GlideDateTime renvoyés = 500.

    Tableau 1. Paramètres
    Nom Type Description
    grPlanifier GlideRecord Objet GlideRecord pointant vers l’enregistrement contenant la tâche pour laquelle vous souhaitez obtenir les occurrences de calendrier.
    Tableau 2. Renvoie
    Type Description
    Tableau d’objets GlideDateTime GlideDateTime pour chaque exécution de la tâche planifiée.

    L’exemple suivant montre comment récupérer des objets GlideDateTime pour toutes les dates/heures d’exécution planifiées pour une période spécifique pour un enregistrement de planning de tâches spécifié. La tâche sélectionnée est planifiée pour s’exécuter toutes les heures.

    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]);
      }
    }

    Sortie :

    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