GlideMultiRecurrence : dans le champ d’application
L’API GlideMultiRecurrence fournit des méthodes qui renvoient des objets GlideDateTime qui décrivent les temps d’exécution pour une tâche planifiée spécifiée.
Utilisez cette API lorsque vous devez déterminer quand une tâche périodique ou périodique spécifique doit être exécutée, également connue sous le nom d’occurrence.
Cette API s’exécute dans l’espace de noms sn_schdl_ns .
| Déclencheur | 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 d’exécution de 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 |
|
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()
Retourne 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 une période 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, pour déterminer quand la tâche doit s’exécuter.
- 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.
- S’il s’agit d’un effective_start champ valide et non nul ou vide, utilisez-le comme date de début du renvoi des occurrences. Sinon, utilisez la date actuelle.
- Si le champ de effective_end date est valide et non nul ou vide, renvoie les occurrences entre le champ et effective_start le champ de effective_end date.
Exception à la règle ci-dessus : si la effective_end date est trop éloignée dans le futur, ce qui entraîne 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 champ de effective_end date est nul ou vide mais que le champ est défini, utilisez-le frequencyfrequency 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.
Exemple : Les deux frequency et effective_end sont spécifiés. Effective_end La date a priorité et frequency est ignorée.
- frequency : 10
- effective_start: 1er août 2022
- effective_end: 10 octobre 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 date a la 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.
| Nom | Type | Description |
|---|---|---|
| grSchedule | GlideRecord | Objet GlideRecord pointant vers l’enregistrement contenant la tâche pour laquelle vous souhaitez obtenir les occurrences de calendrier. |
| Type | Description |
|---|---|
| Tableau d’objets GlideDateTime | Objet GlideDateTime pour chaque fois que la tâche planifiée doit s’exécuter. |
L’exemple suivant montre comment récupérer les objets GlideDateTime pour toutes les dates/heures d’exécution planifiées pour une période spécifique pour un enregistrement de calendrier de tâche 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