GlideSchedule : inclus dans le champ d’application

L’API GlideSchedule incluse dans le champ d’application fournit des méthodes permettant d’effectuer des opérations sur les objets GlideSchedule, telles que l’ajout de nouveaux segments de calendrier à un calendrier, la détermination si une date/heure se trouve dans le calendrier ou la définition du fuseau horaire du calendrier.

GlideSchedule inclus dans le périmètre : add(GlideDateTime startDate, GlideDuration offSet)

Ajoute un nouveau segment de calendrier au calendrier actuel.

Tableau 1. Paramètres
Nom Type Description
startDate GlideDateTime Date de début du nouveau segment de calendrier.
Compenser GlideDuration (GlideDuration) Décalage temporel du nouveau segment de calendrier.
Tableau 2. Renvoie
Type Description
GlideDateTime Calendrier mis à jour avec le nouveau segment de calendrier.
var startDate = new GlideDateTime('2014-01-02');
var days = 2;
var dur = new GlideDuration(60 * 60 * 24 * 1000 * days);
var schedule = new GlideSchedule();
var end = schedule.add(startDate, dur);
gs.info(end);
Sortie :
2014-01-04 00:00:00

GlideSchedule inclus dans le périmètre : duration(GlideDateTime startDate, GlideDateTime endDate)

Détermine le temps écoulé dans le calendrier entre deux valeurs de date/heure à l’aide du fuseau horaire ou, à défaut, du fuseau horaire de la session.

Tableau 3. Paramètres
Nom Type Description
startDate GlideDateTime La date/l’heure de début.
endDate GlideDateTime La date/heure de fin.
Tableau 4. Renvoie
Type Description
GlideDuration (GlideDuration) La différence entre la date/heure de début et de fin.
var startDate = new GlideDateTime('2014-10-16 02:00:00');
var endDate = new GlideDateTime('2014-10-18 04:00:00');
var schedule = new GlideSchedule();
 
schedule.load('090eecae0a0a0b260077e1dfa71da828'); // loads "8-5 weekdays excluding holidays" schedule
var duration = schedule.duration(startDate, endDate);
gs.info(duration.getDurationValue()); // gets the elapsed time in schedule

GlideSchedule inclus dans le champ d’application : getName()

Récupère le nom du calendrier.

Tableau 5. Paramètres
Nom Type Description
Aucun
Tableau 6. Renvoie
Type Description
Chaîne Nom du calendrier actuel.
sys_id ='04e664654a36232701a2247dcd8fc4cf'; // sys_id for "Application" schedule record
var sched = new GlideSchedule(sys_id);
gs.info(sched.getName());

GlideSchedule inclus dans l’étendue : GlideSchedule()

Instancie un objet GlideSchedule vide.

Tableau 7. Paramètres
Nom Type Description
Néant

GlideSchedule inclus dans le périmètre : GlideSchedule(String sysID, String timeZone)

Instancie un objet GlideSchedule et charge les informations de planification. Si aucun fuseau horaire n’est spécifié, le fuseau horaire de la session en cours est utilisé.

Tableau 8. Paramètres
Nom Type Description
sysID Chaîne ID système du calendrier.
Fuseau horaire Chaîne Facultatif. Fuseau horaire à utiliser.

Valeur par défaut : fuseau horaire de la session en cours.

Les fuseaux horaires peuvent être fournis dans les formats suivants.
  • Pays/Ville. Par exemple, Amérique/Los_Angeles.
  • Pays/fuseau horaire. Par exemple, États-Unis/Pacifique.
  • Abréviation du fuseau horaire. Par exemple, PST.
Pour obtenir la liste complète des fuseaux horaires valides, reportez-vous au champ Fuseau horaire de la table Utilisateur [sys_user]. Pour plus d’informations sur les fuseaux horaires, reportez-vous à Time zones.
var schedule = new GlideSchedule('090eecae0a0a0b260077e1dfa71da828', 'US/Pacific');

GlideSchedule inclus dans le champ d’application : isInSchedule(heure GlideDateTime)

Détermine si la date et l’heure spécifiées se trouvent dans le calendrier actuel.

Tableau 9. Paramètres
Nom Type Description
heure GlideDateTime Valeur de date et d’heure à vérifier.
Tableau 10. Renvoie
Type Description
Booléen Marqueur indiquant si la date et l’heure spécifiées se trouvent dans le calendrier.
Valeurs valides :
  • true : la date et l’heure figurent dans le calendrier.
  • false : la date et l’heure ne figurent pas dans le calendrier.
var glide = new GlideRecord('cmn_schedule');
glide.addQuery('type', 'blackout');
glide.query();
if (glide.next()) {
   var sched = new GlideSchedule(glide.sys_id);
   var date = new GlideDateTime();
   date.setDisplayValue("2007-09-18 12:00:00");
   if (sched.isInSchedule(date)) 
      gs.info("Is in the schedule");
   else
      gs.info("Is NOT in the schedule");
}

GlideSchedule inclus dans l’étendue : isValid()

Détermine si le calendrier actuel est valide. Un calendrier est valide s’il a au moins un parcours de calendrier.

Tableau 11. Renvoie
Type Description
Booléen Vrai si le calendrier est valide.
var glide = new GlideRecord('cmn_schedule');
glide.addQuery('type', 'blackout');
glide.query();
if (glide.next()) {
   var sched = new GlideSchedule(glide.sys_id);
   var date = new GlideDateTime();
   date.setDisplayValue("2007-09-18 12:00:00");
   if (sched.isValid()) 
      gs.info("Is valid");
 
   else
      gs.info("Is not valid");
}

GlideSchedule inclus dans le périmètre : load(String sysID, String timeZone, String excludeSpanID)

Charge un calendrier avec les informations de calendrier.

Tableau 12. Paramètres
Nom Type Description
sysID Chaîne ID système du calendrier.
Fuseau horaire Chaîne (Facultatif) Le fuseau horaire. Si aucun fuseau horaire n’est spécifié ou s’il est nul, le fuseau horaire de la session en cours est utilisé pour le calendrier.
excludeSpanID Chaîne N’importe quel parcours à exclure.
Tableau 13. Renvoie
Type Description
nul
var x = new GlideSchedule();
x.load('08fcd0830a0a0b2600079f56b1adb9ae');

GlideSchedule inclus dans le périmètre : setTimeZone(String timeZone)

Définit le fuseau horaire du calendrier actuel.

Tableau 14. Paramètres
Nom Type Description
Fuseau horaire Chaîne Fuseau horaire à utiliser.
Les fuseaux horaires peuvent être fournis dans les formats suivants.
  • Pays/Ville. Par exemple, Amérique/Los_Angeles.
  • Pays/fuseau horaire. Par exemple, États-Unis/Pacifique.
  • Abréviation du fuseau horaire. Par exemple, PST.
Pour obtenir la liste complète des fuseaux horaires valides, reportez-vous au champ Fuseau horaire de la table Utilisateur [sys_user]. Pour plus d’informations sur les fuseaux horaires, reportez-vous à Time zones.
Tableau 15. Renvoie
Type Description
nul

Cet exemple définit le fuseau horaire sur US/Pacific.

var schedule = new GlideSchedule();
schedule.setTimeZone('US/Pacific');

GlideSchedule inclus dans le périmètre : whenNext(GlideDateTime time, String timeZone)

Détermine le temps (en millisecondes) avant l’heure de début du prochain élément de calendrier.

Cette fonction est destinée à être appelée lorsque l’objet GlideSchedule (table cmn_schedule) n’est pas actuellement dans la fenêtre de planification. L’appel whenNext() renvoie la durée (en ms) jusqu’à ce que l’objet GlideSchedule se trouve dans le calendrier. Cette fonction ne renvoie pas de valeur significative si elle est appelée lorsque l’objet GlideSchedule se trouve dans le calendrier.

Tableau 16. Paramètres
Nom Type Description
heure GlideDateTime Durée de l’évaluation
Fuseau horaire Chaîne Fuseau horaire
Tableau 17. Renvoie
Type Description
Numéro Nombre de millisecondes avant l’heure de début du prochain élément de calendrier. Renvoie -1 si jamais.
var startDate = new GlideDateTime('2014-10-25 08:00:00');
var glideSchedule = new GlideSchedule('08fcd0830a0a0b2600079f56b1adb9ae', 'UTC');
gs.info(glideSchedule.whenNext(startDate));

Sortie :

172800000

testScript(); 
function testScript() { 
var now = new GlideDateTime(); //current date and time
var sched = new GlideSchedule("<sys_id>"); // Use a cmn_schedule sys_id 
if (sched.isInSchedule(now)){ 
gs.info('We are in an active schedule window so whenNext() is not helpful'); 
} else{  
gs.info('Not currently in schedule so call whenNext()'); 
var msUntilNext = sched.whenNext(new GlideDateTime(), 'US/Pacific'); 
gs.info('Next schedule starts in '+msUntilNext+' milliseconds'); 
} 
}
\\ Output [schedule inactive)]:
\\ *** Script: Not currently in schedule so call whenNext() 
\\ *** Script: Next schedule starts in -1 milliseconds

Sortie :

[Planifié pour un avenir] *** Script : pas dans le calendrier actuellement *** Script : le calendrier suivant commence dans 332894000 millisecondes