GlideMultiRecurrence : inclus dans le champ d’application
L’API GlideMultiRecurrence fournit des méthodes qui renvoient des objets GlideDateTime décrivant 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 ê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 d’exécution de la tâche. Valeurs valides : 1-12 |
| run_time | Heure GMT du jour à laquelle 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 |
|
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()
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, 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 à renvoyer par défaut.
- Si le effective_start champ est valide et non nul ou vide, utilisez-le comme date pour commencer à renvoyer les 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 les champs et effective_start la 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 supérieur au nombre d’occurrences 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 qu’il frequency est défini, frequency utilisez-le pour déterminer le nombre d’occurrences à renvoyer.
- Renvoyer les dates historiques si le champ de date est dans le effective_start passé.
- Si les champs et Date frequencyeffective_end 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 retournés = 2.
Occurrences retournées : 15 août 2022, 15 septembre 2022.
Exemple : les deux et effective_endfrequency sont spécifiés. Effective_end La date a priorité et frequency est ignorée. Toutefois, 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 retournés = 500.
| Nom | Type | Description |
|---|---|---|
| grSchedule (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