GlideSchedule – Scoped

Die bereichsbezogene GlideSchedule- API bietet Methoden zum Ausführen von Vorgängen an GlideSchedule-Objekten, z. B. das Hinzufügen neuer Zeitplansegmente zu einem Zeitplan, das Ermitteln, ob ein Datum/eine Uhrzeit innerhalb des Zeitplans liegt, oder das Festlegen der Zeitzone des Zeitplans.

Scoped GlideSchedule – add(GlideDateTime startDate, GlideDuration offSet)

Fügt dem aktuellen Zeitplan ein neues Zeitplansegment hinzu.

Tabelle : 1. Parameter
Name Typ Beschreibung
startDate GlideDateTime Startdatum des neuen Zeitplansegments.
offSet GlideDuration Zeitversatz des neuen Zeitplansegments.
Tabelle : 2. Ergebnisse
Typ Beschreibung
GlideDateTime Der Zeitplan wurde mit dem neuen Zeitplansegment aktualisiert.
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);
Ausgabe:
2014-01-04 00:00:00

Scoped GlideSchedule – duration(GlideDateTime startDate, GlideDateTime endDate)

Bestimmt die verstrichene Zeit im Zeitplan zwischen zwei Datum-/Uhrzeit-Werten anhand der Zeitzone des Zeitplans oder, falls nicht anders angegeben, der Zeitzone der Sitzung.

Tabelle : 3. Parameter
Name Typ Beschreibung
startDate GlideDateTime Datum/Uhrzeit Anfang.
endDate GlideDateTime Datum/Uhrzeit Ende.
Tabelle : 4. Ergebnisse
Typ Beschreibung
GlideDuration Unterschied zwischen Datum/Uhrzeit Anfang und Datum/Uhrzeit Ende.
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

Scoped GlideSchedule – getName()

Ruft den Zeitplannamen ab.

Tabelle : 5. Parameter
Name Typ Beschreibung
Keine
Tabelle : 6. Ergebnisse
Typ Beschreibung
Zeichenfolge Name des aktuellen Zeitplans.
sys_id ='04e664654a36232701a2247dcd8fc4cf'; // sys_id for "Application" schedule record
var sched = new GlideSchedule(sys_id);
gs.info(sched.getName());

Scoped GlideSchedule – GlideSchedule()

Instanziiert ein leeres GlideSchedule-Objekt.

Tabelle : 7. Parameter
Name Typ Beschreibung
Keine

Scoped GlideSchedule – GlideSchedule(String sysID, String timeZone)

Instanziiert ein GlideSchedule-Objekt und lädt die Zeitplaninformationen. Wenn keine Zeitzone angegeben ist, wird die aktuelle Sitzungszeitzone verwendet.

Tabelle : 8. Parameter
Name Typ Beschreibung
sysID Zeichenfolge System-ID für den Zeitplan.
timeZone Zeichenfolge Optional. Die zu verwendende Zeitzone.

Standard: Die aktuelle Sitzungszeitzone.

Zeitzonen können in den folgenden Formaten angegeben werden.
  • Land/Stadt. Beispiel: Amerika/Los_Angeles.
  • Land/Zeitzone. Beispiel: USA/Pazifik.
  • Zeitzonenabkürzung. Beispiel: PST.
Eine vollständige Liste der gültigen Zeitzonen finden Sie im Feld Zeitzone in der Benutzertabelle [sys_user]. Weitere Informationen zu Zeitzonen finden Sie unter Time zones.
var schedule = new GlideSchedule('090eecae0a0a0b260077e1dfa71da828', 'US/Pacific');

Scoped GlideSchedule – isInSchedule(GlideDateTime time)

Bestimmt, ob das angegebene Datum und die angegebene Uhrzeit innerhalb des aktuellen Zeitplans liegen.

Tabelle : 9. Parameter
Name Typ Beschreibung
time GlideDateTime Zu überprüfender Datums- und Uhrzeitwert.
Tabelle : 10. Ergebnisse
Typ Beschreibung
Boolean Kennzeichnung, die angibt, ob das angegebene Datum und die angegebene Uhrzeit innerhalb des Zeitplans liegen.
Gültige Werte:
  • true: Datum und Uhrzeit liegen innerhalb des Zeitplans.
  • false: Datum und Uhrzeit liegen außerhalb des Zeitplans.
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");
}

Scoped GlideSchedule – isValid()

Bestimmt, ob der aktuelle Zeitplan gültig ist. Ein Zeitplan ist gültig, wenn er mindestens eine Zeitplanspanne hat.

Tabelle : 11. Ergebnisse
Typ Beschreibung
Boolean „True“, wenn der Zeitplan gültig ist.
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");
}

Scoped GlideSchedule – load(String sysID, String timeZone, String excludeSpanID)

Lädt einen Zeitplan mit den Zeitplaninformationen.

Tabelle : 12. Parameter
Name Typ Beschreibung
sysID Zeichenfolge System-ID des Zeitplans.
timeZone Zeichenfolge (Optional) Zeitzone. Wenn keine Zeitzone angegeben ist oder sie NULL ist, wird die aktuelle Sitzungszeitzone für den Zeitplan verwendet.
excludeSpanID Zeichenfolge Jede Spanne, die ausgeschlossen werden soll.
Tabelle : 13. Ergebnisse
Typ Beschreibung
void
var x = new GlideSchedule();
x.load('08fcd0830a0a0b2600079f56b1adb9ae');

Scoped GlideSchedule – setTimeZone(String timeZone)

Legt die Zeitzone für den aktuellen Zeitplan fest.

Tabelle : 14. Parameter
Name Typ Beschreibung
timeZone Zeichenfolge Die zu verwendende Zeitzone.
Zeitzonen können in den folgenden Formaten angegeben werden.
  • Land/Stadt. Beispiel: Amerika/Los_Angeles.
  • Land/Zeitzone. Beispiel: USA/Pazifik.
  • Zeitzonenabkürzung. Beispiel: PST.
Eine vollständige Liste der gültigen Zeitzonen finden Sie im Feld Zeitzone in der Benutzertabelle [sys_user]. Weitere Informationen zu Zeitzonen finden Sie unter Time zones.
Tabelle : 15. Ergebnisse
Typ Beschreibung
void

In diesem Beispiel wird die Zeitzone für den Zeitplan auf US/Pacific festgelegt.

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

Scoped GlideSchedule – whenNext(GlideDateTime time, String timeZone)

Bestimmt, wie viel Zeit (in Millisekunden) bis zum Startzeitpunkt des nächsten Zeitplanelements vergeht.

Diese Funktion soll aufgerufen werden, wenn sich das GlideSchedule-Objekt (Tabelle cmn_schedule) derzeit nicht im Zeitplanfenster befindet. Der whenNext()-Aufruf gibt die Dauer (in ms) zurück, bis das GlideSchedule-Objekt innerhalb des Zeitplans ist. Diese Funktion gibt keinen aussagekräftigen Wert zurück, wenn sie aufgerufen wird, während sich das GlideSchedule-Objekt innerhalb des Zeitplans befindet.

Tabelle : 16. Parameter
Name Typ Beschreibung
time GlideDateTime Auszuwertende Zeit
Zeitzone Zeichenfolge Zeitzone
Tabelle : 17. Ergebnisse
Typ Beschreibung
Nummer Anzahl der Millisekunden bis zur Startzeit des nächsten Zeitplanelements. Gibt -1 zurück, wenn nie.
var startDate = new GlideDateTime('2014-10-25 08:00:00');
var glideSchedule = new GlideSchedule('08fcd0830a0a0b2600079f56b1adb9ae', 'UTC');
gs.info(glideSchedule.whenNext(startDate));

Ausgabe:

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

Ausgabe:

[Geplant für Zukunft] *** Skript: Derzeit nicht im Zeitplan *** Skript: Nächster Zeitplan beginnt in 332894000 Millisekunden