Skip to main content

Allgemeiner Überblick über den Scheduler

Überblick

Der BWScheduler führt wiederkehrende oder gezielt ausgelöste Aufgaben automatisch aus. Typische Einsatzbereiche sind:

  • Starten von ERP-Suite-Aufgaben, Programmen und Skripten
  • Aufrufen vorbereiteter Wartungs- und Systemfunktionen
  • Starten, Stoppen oder Neustarten von Windows-Diensten
  • Überwachen von Dateien und Ordnern
  • Auslösen einer Aufgabe über eine SchedulerXX.RUN-Datei
  • Auslösen einer Aufgabe auf einem verbundenen BWScheduler über die REST-API

Jede Aufgabe besitzt eine eindeutige Scheduler-ID. Die Bezeichnung dient der Übersicht und darf bei mehreren Aufgaben gleich sein. Für gezielte Aufrufe ist immer die Scheduler-ID maßgeblich.

Zeitsteuerung des BWSchedulers

Die globale Einstellung Zeitsteuerung legt fest, in welcher Betriebsart geplante Aufgaben ausgeführt werden dürfen.

Einstellung Bedeutung
Dienst Die Zeitsteuerung ist nur im Windows-Dienst aktiv.
Applikation Die Zeitsteuerung ist nur in der manuell gestarteten Anwendung aktiv.
Immer aktiv Die Zeitsteuerung darf sowohl im Dienst als auch in der Anwendung aktiv sein.

Optional kann die Zeitsteuerung auf einen bestimmten Windows-Benutzer eingeschränkt werden. Die Schaltfläche zum manuellen Starten der Zeitsteuerung kann eine unpassende Betriebsart oder Benutzerbeschränkung nicht übersteuern.

Wichtig: Ist die Einstellung Zeitsteuerung nicht korrekt gesetzt, bleiben geplante Aufgaben in der betreffenden Instanz inaktiv.

Aufgabenarten

Aufgabenart Verwendung
ERP-Suite Aufgabe Führt eine dafür vorgesehene Aufgabe in der ERP-Suite aus.
Modaler Programmaufruf Startet ein Programm und wartet auf dessen Abschluss.
Programmstart (nicht modal) Startet ein Programm, ohne andere nicht zusammengehörige Aufgaben bis zu dessen Ende zu blockieren.
Skriptaufruf (modal) Führt ein Skript aus und berücksichtigt dabei die modale Steuerung.
Funktionsaufruf Führt eine im BWScheduler bereitgestellte Funktion aus, beispielsweise eine NoLock- oder Dienstfunktion.

Bei modalen Aufgaben kann zusätzlich eine Modale Gruppe eingestellt werden. Aufgaben derselben Farbgruppe werden nacheinander ausgeführt. Aufgaben verschiedener Farbgruppen dürfen parallel laufen. keine (Global) sperrt sich mit allen modalen Gruppen. Weitere Einzelheiten enthält die Kundendokumentation Modale Gruppen im BWScheduler.

Wichtige Einstellungen einer Aufgabe

Einstellung Bedeutung
Aktiv Nur aktivierte Aufgaben werden automatisch ausgeführt.
Bezeichnung Frei wählbarer Name zur leichteren Erkennung.
Aufgabenart Legt fest, wie die Aufgabe ausgeführt wird.
Prozesspriorität Legt bei unterstützten Programmaufrufen die Windows-Prozesspriorität fest.
Modale Gruppe Steuert die gleichzeitige Ausführung modaler Aufgaben.
Ausführungsintervall Bestimmt den Kalendertag beziehungsweise die Wiederholung.
Ausführungsbedingung Zusätzliche Bedingung, die vor dem Start erfüllt sein muss.
Ausführungsdatum Tag oder Datum für datumsabhängige Ausführungen.
Wochentag Erlaubte Wochentage. Ohne Wochentage erfolgt keine normale zeitgesteuerte Ausführung.
Ausführungszeit Uhrzeit für eine einmalige Ausführung bei Intervall 0.
Zeit von / Zeit bis Zeitraum, innerhalb dessen die Aufgabe gestartet werden darf.
Intervall Wiederholung in Minuten; 0 bedeutet Ausführung zur festen Uhrzeit.
App Programm, Skript oder bereitgestellte Scheduler-Funktion.
AppParameter / AppParameter2 Übergabewerte für die gewählte Aufgabe oder Funktion.
Maximale Prozesslaufzeit Überwachung der zulässigen Laufzeit in Minuten.
REST-API Ausführung Legt fest, ob und mit welcher Berechtigung die Aufgabe über REST ausgelöst werden darf.

Je nach Aufgabenart können weitere Einstellungen sichtbar oder erforderlich sein, beispielsweise Dienstname, Netzlaufwerk, Benachrichtigung oder Dateifilter.

Zeitgesteuerte Ausführung

Ausführung zu einer festen Uhrzeit

Für eine einmalige Ausführung pro passendem Tag wird Intervall auf 0 gesetzt. Die Ausführungszeit muss innerhalb von Zeit von und Zeit bis liegen.

Beispiel:

Einstellung Wert
Ausführungsintervall Täglich
Wochentag MO, DI, MI, DO, FR
Ausführungszeit 05:31
Zeit von 05:30
Zeit bis 06:00
Intervall 0

Die Aufgabe wird an den gewählten Wochentagen einmal um 05:31 Uhr ausgeführt.

Plausibilitätsprüfung: Bei einem Zeitfenster innerhalb desselben Tages muss Zeit bis später als Zeit von sein. Eine Ausführungszeit außerhalb des Fensters ist nicht zulässig.

Wiederkehrende Ausführung

Ist Intervall größer als 0, erfolgt die Wiederholung in Minuten. Der nächste Lauf richtet sich nach der letzten Ausführungszeit und muss weiterhin in einem erlaubten Zeitfenster und an einem erlaubten Wochentag liegen.

Beispiel: Bei Intervall = 15 wird die Aufgabe frühestens 15 Minuten nach dem letzten Start erneut berücksichtigt.

Kalenderintervalle

Der BWScheduler unterstützt unter anderem:

  • Täglich
  • bestimmter Tag oder bestimmtes Datum
  • Monatsanfang und Monatsende
  • Quartalsanfang und Quartalsende
  • Halbjahresanfang und Halbjahresende
  • Jahresanfang und Jahresende

Zusätzlich müssen der eingestellte Wochentag, das Zeitfenster und eine mögliche Ausführungsbedingung passen.

Ausführungsbedingungen

Standardmäßig gilt keine Einschränkung. Je nach Aufgabe kann als zusätzliche Bedingung beispielsweise verlangt werden, dass der ERP-Suite-Mailserver aktiv ist.

Eine Aufgabe startet nur, wenn alle für sie geltenden Voraussetzungen erfüllt sind:

  1. Die Aufgabe ist aktiviert.
  2. Die Zeitsteuerung ist für die aktuelle Instanz erlaubt und aktiv.
  3. Kalendertag und Wochentag passen.
  4. Die Aufgabe befindet sich im erlaubten Zeitfenster.
  5. Feste Uhrzeit oder Minutenintervall sind fällig.
  6. Die Ausführungsbedingung ist erfüllt.
  7. Es besteht keine Sperre durch NoLock, Wartungsmodus oder eine unpassende modale Gruppe.

Haupt- und Unteraufgaben

Unter einer Hauptaufgabe können Unteraufgaben angelegt werden. Wird die Hauptaufgabe gestartet, werden ihre aktivierten Unteraufgaben entsprechend der eingestellten Reihenfolge verarbeitet.

Für gezielte Aufrufe über SchedulerXX.RUN oder die REST-API sollte eine Hauptaufgabe verwendet werden. Eine Unteraufgabe ist für einen direkten externen Start nicht vorgesehen.

Möglichkeiten zum Starten einer Aufgabe

Automatische Zeitsteuerung

Der BWScheduler prüft regelmäßig, welche Aufgaben fällig sind. Eine Aufgabe wird nur einmal gleichzeitig zur Ausführung eingeplant; ein noch laufender Prüfvorgang wird nicht parallel ein zweites Mal gestartet.

Manuelle Ausführung

Eine Aufgabe kann in der Bedienoberfläche gezielt gestartet werden. Ausführungsbedingungen, modale Gruppen und aktive Schutzsperren sind weiterhin zu beachten.

SchedulerXX.RUN-Datei

Im eingestellten Überwachungsordner kann eine Datei nach folgendem Schema angelegt werden:

Scheduler22.RUN

Damit wird die Hauptaufgabe mit der Scheduler-ID 22 angefordert. Die Dateierkennung reagiert auch dann, wenn eine Datei zunächst unter einem anderen Namen erstellt und anschließend in Scheduler22.RUN umbenannt wird. Mehrere Dateiereignisse für dieselbe Datei führen nicht zu einer mehrfachen parallelen Ausführung derselben Anforderung.

Eine RUN-Datei hebt eine NoLock- oder Wartungssperre nicht auf. Während einer solchen Sperre gelten ausschließlich die weiter unten beschriebenen Ausnahmen.

Dateiüberwachung

Eine Aufgabe kann auf das Erstellen oder Ändern passender Dateien in einem überwachten Ordner reagieren. Die Überwachungsaufgabe verweist auf die auszuführende Zielaufgabe. Zielaufgabe und Überwachungsaufgabe dürfen nicht identisch sein.

REST-API

Ab Programmversion 5.31 können BWScheduler-Installationen Aufgaben verschlüsselt untereinander auslösen. Die Zielaufgabe muss dafür über REST-API Ausführung ausdrücklich freigegeben sein. Einzelheiten enthält die Kundendokumentation BWScheduler über REST-API verbinden.

Verhalten bei NoLock.ini und Wartungsmodus

Zweck der Sperre

Eine gefundene NoLock.ini, eine NoLock_admin_only.ini oder ein aktiver ERP-Suite-Wartungsmodus hält die normale Programmausführung des BWSchedulers an. Dadurch sollen während Wartungsarbeiten keine normalen ERP-, Programm-, Skript-, Datei- oder Importaufgaben neu gestartet werden.

Der BWScheduler berücksichtigt die NoLock-Dateien in den dafür vorgesehenen ERP-Suite- und Mandantenpfaden. Der Wartungsstatus wird regelmäßig neu geprüft. Sobald keine Sperre mehr besteht, kann die normale Zeitsteuerung fortgesetzt werden.

Welche Aufgaben trotz Sperre ausgeführt werden dürfen

Während einer gefundenen NoLock-Datei oder eines aktiven Wartungsmodus sind ausschließlich folgende Funktionsaufrufe freigegeben:

Kundenfunktion Unterstützte Funktionsnamen Verhalten während der Sperre
NoLock.INI löschen $DELETENOLOCKINI, $DELETENOLOCK, $DELETENOLOCK.INI Darf ausgeführt werden und entfernt die vorgesehenen NoLock-Dateien.
Alle NoLock.INI löschen $DELETEALLNOLOCKINI Darf ausgeführt werden und entfernt die NoLock-Dateien aus allen berücksichtigten Pfaden.
Benutzer beziehungsweise ERP-Suite-Sitzungen abmelden $AUSLOGGEN, $LOGOFF, $LOGOFFMDE, $BWLOGOFF Darf ausgeführt werden, damit eine Wartung oder Abmeldung abgeschlossen werden kann.

Alle anderen Aufgaben bleiben gesperrt. Das betrifft insbesondere:

  • ERP-Suite-Aufgaben
  • modale und nicht-modale Programmaufrufe
  • Skripte
  • normale Datei- und Importfunktionen
  • Start, Stopp und Neustart von Diensten
  • das Erstellen einer NoLock-Datei mit $CREATENOLOCKINI
  • Prozessstart- und Prozessbeendigungsfunktionen, sofern sie nicht zu den oben ausdrücklich freigegebenen Abmeldefunktionen gehören
  • über RUN-Datei, Dateiüberwachung oder REST-API angeforderte normale Aufgaben

Wichtig: „Darf trotz Sperre ausgeführt werden“ bedeutet nicht „wird sofort und bedingungslos ausgeführt“. Bei einem normalen Zeitplan muss die Aufgabe aktiviert sein; außerdem müssen Wochentag, Zeitfenster, Ausführungszeit beziehungsweise Intervall und Ausführungsbedingung passen. Für einen gezielten Aufruf gelten dessen eigene Freigabe- und Aktivierungseinstellungen. Ein gezielter Aufruf kann die zeitliche Fälligkeit ersetzen, aber nicht die NoLock-Freigabeliste erweitern.

Zusammenfassung

Systemzustand Normale Aufgaben NoLock löschen / Abmelden
Keine Sperre gemäß Aufgabenplanung erlaubt gemäß Aufgabenplanung erlaubt
NoLock.ini gefunden gesperrt erlaubt, wenn die betreffende Aufgabe fällig oder gezielt angefordert ist
NoLock_admin_only.ini gefunden gesperrt erlaubt, wenn die betreffende Aufgabe fällig oder gezielt angefordert ist
Wartungsmodus aktiv gesperrt erlaubt, wenn die betreffende Aufgabe fällig oder gezielt angefordert ist
Zeitsteuerung manuell pausiert gesperrt die ausdrücklich freigegebenen Entsperr-/Abmeldefunktionen bleiben grundsätzlich möglich

Empfohlener Ablauf eines Wartungsfensters

  1. Legen Sie eine Aufgabe zum Erstellen der NoLock-Datei an.
  2. Planen Sie anschließend die benötigten Wartungs- oder Beendigungsaufgaben in einer sinnvollen Reihenfolge.
  3. Beachten Sie, dass nach Aktivierung der Sperre normale Aufgaben nicht mehr neu gestartet werden.
  4. Verwenden Sie zum Abschluss eine ausdrücklich freigegebene Aufgabe zum Löschen der NoLock-Dateien.
  5. Prüfen Sie nach dem Wartungsfenster die Statusanzeige und das Protokoll.

Hinweis: Eine Aufgabe, die nach dem Erstellen der NoLock-Datei noch als normale separate Scheduler-Aufgabe starten soll, wird durch die Sperre verhindert. Solche Abläufe müssen als zusammengehöriger Wartungsablauf vorbereitet oder vor Eintritt der Sperre gestartet werden.

Anzeige und Statuskontrolle

Die Aufgabenliste zeigt unter anderem:

  • Aktivstatus
  • Bezeichnung und Scheduler-ID
  • letzte und nächste Ausführung
  • aktuellen Laufstatus
  • modale Gruppe einschließlich Gruppenfarbe

Bei unerwartetem Verhalten sollte zusätzlich das BWScheduler-Protokoll geprüft werden. Dort werden beispielsweise folgende Zustände festgehalten:

  • Zeitsteuerung aktiv oder nicht aktiv
  • Aufgabe fällig oder nicht fällig
  • nicht erfüllte Ausführungsbedingung
  • erkannte NoLock-Datei oder Wartungsmodus
  • Warten auf eine modale Gruppe
  • Start und Ende einer Aufgabe
  • fehlende Programme, Pfade oder Berechtigungen

Benachrichtigungen und Laufzeitüberwachung

Je nach Konfiguration kann der BWScheduler über Aufgabenstart, Aufgabenende, Fehler, NoLock-Erkennung oder ungewöhnlich lange Laufzeiten informieren.

Für lang laufende oder geschäftskritische Aufgaben empfiehlt sich:

  • eine realistische maximale Prozesslaufzeit
  • ein Warnungszeitpunkt vor oder bei Überschreitung
  • aktivierte Benachrichtigungen
  • die Kennzeichnung als kritischer Prozess, sofern zutreffend

Ein automatischer Abbruch sollte nur verwendet werden, wenn das betreffende Programm gefahrlos beendet werden kann.

Checkliste für eine neue Aufgabe

  1. Eindeutige Bezeichnung und richtige Aufgabenart wählen.
  2. Programm beziehungsweise Funktion und Parameter prüfen.
  3. Aufgabe aktivieren.
  4. Gewünschte Wochentage festlegen.
  5. Feste Uhrzeit oder Minutenintervall einstellen.
  6. Prüfen, ob die Ausführungszeit innerhalb von Zeit von und Zeit bis liegt.
  7. Bei modalen Aufgaben die passende Gruppe wählen.
  8. Benötigte Zugriffsrechte des Scheduler-Kontos prüfen.
  9. REST-Freigabe nur bei tatsächlichem Bedarf aktivieren.
  10. Aufgabe zunächst kontrolliert testen und anschließend das Protokoll prüfen.

Fehlerbehebung

Eine geplante Aufgabe startet nicht

Prüfen Sie in dieser Reihenfolge:

  1. Ist die Aufgabe aktiviert?
  2. Ist die Zeitsteuerung in dieser Instanz aktiv?
  3. Passt die globale Betriebsart Dienst, Applikation oder Immer aktiv?
  4. Ist der aktuelle Windows-Benutzer zugelassen?
  5. Ist der heutige Wochentag ausgewählt?
  6. Liegt die aktuelle Zeit im erlaubten Zeitfenster?
  7. Ist die feste Uhrzeit beziehungsweise das Intervall bereits fällig?
  8. Ist die Ausführungsbedingung erfüllt?
  9. Wurde eine NoLock.ini oder NoLock_admin_only.ini gefunden?
  10. Ist der ERP-Suite-Wartungsmodus aktiv?
  11. Wartet die Aufgabe auf eine belegte modale Gruppe?
  12. Sind Programm, Pfad, Dienstname und Parameter korrekt?

Aufgaben verschiedener Farben warten trotzdem

Prüfen Sie, ob eine laufende modale Aufgabe die Gruppe keine (Global) verwendet. Eine globale modale Aufgabe sperrt alle Farbgruppen. Zwei unterschiedliche Farbgruppen dürfen nur dann parallel laufen, wenn keine globale modale Aufgabe aktiv ist.

Eine Aufgabe wurde beim Programmstart unerwartet ausgeführt

Prüfen Sie besonders:

  • ob Zeit von und Zeit bis ein gültiges Zeitfenster bilden,
  • ob die Ausführungszeit innerhalb dieses Fensters liegt,
  • ob ein Intervall größer als 0 eingestellt ist,
  • ob noch eine SchedulerXX.RUN-Datei oder ein anderer externer Auftrag vorhanden war,
  • ob die Aufgabe als Unteraufgabe einer gerade gestarteten Hauptaufgabe ausgeführt wurde.

Weiterführende Kundendokumentationen

  • Modale Gruppen im BWScheduler
  • Funktionsaufrufe im BWScheduler
  • BWScheduler über REST-API verbinden