Skript-Planung


todo4teams erlaubt die zeitgesteuerte Ausführung von Skripten zur Erledigung wiederkehrender Aufgaben, wie z.B.

  • die stündliche Überprüung des Service-Levels
  • die monatliche automatische Erstellung eines Berichte
  • u.s.w.

Die eigentliche Aufgabe wird dabei durch ein Skript in der Programmiersprache Javascript festgelegt. Eine Einführung in Javascript finden Sie hier.

Einstellen eines Skriptes

Wählen Sie links im Hauptmenü den Punkt "Skript-Planung". Die Liste der geplanten Skripte wird angezeigt.

Aktivieren Sie oben die Checkbox "Inaktive anzeigen", falls Sie ein zuvor deaktiviertes Skript wieder aktivieren oder verändern möchten.

Wählen Sie ein bestehendes Skript aus oder erzeugen Sie einen neuen Eintrag durch Klick auf "Neues Skript".

Sie sehen nun rechts den Dialog zur Konfiguration der Skriptausführung:

image-20250212113200-1.png

Geben Sie im Feld "Name" einen Bezeichnung für das zu speichernde Skript ein, z.B. "Check Service Level".

Cron Pattern - Ausführungsrhythmus

Im Feld "Cron Pattern" geben Sie den Ausführungsrhythmus des Skriptes an. Mit dem Cron-Format können durch einfache Textausdrücke unzählige Varianten von Zeitmustern festgelegt werden .

Es enthält sechs oder sieben Felder mit Werte für die Sekunden, Minuten, Stunden, Wochentage etc. der Ausführung:

NameErforderlichErlaubte WerteSonderzeichen
Sekundeja0-59, - * /
Minutenja0-59, - * /
Stundenja0-23, - * /
Tag des Monatsja1-31, - * ? / L W C
Monatja0-11 oder JAN-DEC, - * /
Wochentagja

1-7 oder SUN-SAT

, - * ? / L C #
Jahrneinleer oder 1970-2099, - * /

Das Zeichen * steht dabei für "alle" und das Fragezeichen für "nicht relevant" (bei Wochentagen, falls Tage des Monats festgelegt wurden).

Mit dem Schrägstrich "/" geben Sie Intervalle an. Z.B. würde im ersten Feld (Sekunde) 0/20 "alle 20 Sekunden, 0,20,40" bedeuten.

Ausdrücke

Cron-Ausdrücke können damit sehr einfach sein, wie z.B. * * * * ? * (für eine Ausführung jede Sekunde) oder so komplex wie 0 0,15 14 ? JAN MON 2026 (im Januar 2026 jeden Montag um 14:00 und 14:15 Uhr).

Falls Ihnen das komplziert erscheint: Keine Sorge! Hier sind anpassbare Beispiele für alle typischen Fälle:

ExpressionMeans
0 0 12 * * ?Start täglich um 12:00 Uhr
0 15 10 ? * *Start täglich um 10:15 Uhr
0 15 10 * * ? MONStarte montags um 10:15 Uhr
0 15 10 * * ? 2027Start täglich um 10:15 Uhr im Jahr 2027
0 * 14 * * ?Starte minütlich zwischen von 14:00 bis 14:59 Uhr an jedem Tag
0 0/5 14 * * ?Starte alle 5 Minuten zwischen 14:00 14:55 PM an jedem Tag
0 15 10 ? * MON-FRIStarte um 10:15 Uhr  montags bis freitags
0 15 10 ? * 6#3Starte um 10:15 Uhr an jedem dritten Freitag (6) jedes Monats
0 11 11 11 11 ?Starte am 11. November jedes Jahres um 11:11 Uhr

Das Eingabefeld wird ungültige Ausdrücke ablehnen! Prüfen Sie dann bitte den eingegebenen Ausdruck.

Beschreibung

Geben Sie hier eine Beschreibung zur Dokumentation des Vorgangs ein.

Aktiv

Das Skript wird nur dann in dem angegeben Rhythmus ausgeführt, wenn diese Checkbox aktiviert ist. Sonst pausiert die Ausführung.

Skript

Wechseln Sie in die Registerkarte "Skript", um das auszuführende Skript einzugeben.

Um die Funktion der geplanten Skriptausführung zu testen, geben Sie einfach 
 println("Hello world!");
ein.

image-20250212151631-1.png

Um dieses Skript alle 10 Sekunden auszuführen, verwenden Sie den Cron-Ausdruck
   0/10 * * * * ? *
 

image-20250212151802-2.png

Wechseln Sie nun in den Menüpunkt "Skript-Logs", um die Ausführung zu überprüfen. Wählen Sie dort das Protokollierungsziel "Geplante Skript" und wählen Sie in der Combo-Box Ihr gerade erstellte Skript aus.

Dort sehen Sie nun, dass Ihr Skript exakt alle zehn Sekunden korrekt "Hello world!" ausgibt:

image-20250212152301-3.png