Applikations-Kalender
Beschreibung
Für Aufgaben, die im Hintergrund automatisch zu bestimmten Zeitpunkten ausgeführt werden sollen oder die das DV-System im laufenden Betrieb zu stark belasten würden, gibt es die Möglichkeit, Auswertungs-, Abschluss- und Druckaufgaben in einen Applikations-Kalender zu verschieben. Die Aufgaben werden dann nicht direkt ausgeführt, sondern für einen automatischen ClassiX Dienst (Server) eingeplant.
Solche automatisch abzulaufende Aufgaben werden mittels sog. Applikationskalender (auch Automationskalender genannt) und deren Ausführungsschritten verwaltet. Dabei sind grundsätzlich drei verschiedene Typen von Applikationskalendern zu unterscheiden:
- Wiederkehrende Aufgaben (Batchlauf)
- Intervall Aufgaben
- Einmalige Aufgaben
Als "wiederkehrend" wird eine Aufgabe bezeichnet, wenn die kleinste Einheit zur Wiederholung der Aufgabe "ein Tag" ist. Hierbei handelt es sich meist um sog. Nachtläufe, die täglich seitens der System Administration gestartet werden. Um so einen "Nachtlauf"-Server einzurichten, muss auf einem Client per Batch Datei eine ClassiX-Start Datei (z.B. als App Suite (*.cxp) oder direkt die App applicationScheduleExceute.app) ausgeführt werden, die zu einem bestimmten Zeitpunkt (z.B. jede Nacht als ein cron Dienst des Betriebssystems) alle anstehenden Aufgaben prüft und abarbeitet. Daher auch der Name "Batchlauf".
Ein Beispiel für eine in die Nacht verlagerte Auswertung ist die Nachkalkulation von Kundenaufträgen (es handelt sich hierbei um eine sogenannte Systemapplikation). Bei sehr großen und komplexen Aufträgen kann die laufende Nachkalkulation während des Tagesbetriebs für erhebliche Datenbank Blockaden und Wartezeiten sorgen. Ein derartiger Nachlauf wird im Mandaten aktiviert.
Um mehrere "Nacht"-Lauf Instanzen parallel auszuführen, siehe "Skalierbarkeit der Nachtläufe".
Auch Benutzer haben die Möglichkeit, sehr umfangreiche Auswertungen so einzuplanen, dass diese dann am nächsten Morgen in ihren gespeicherten Listen zu finden sind oder diese gespeicherten Listen noch in der Nacht direkt auf dem Standarddrucker des Benutzers ausgedruckt werden (es handelt sich hierbei um sogenannte Benutzerapplikationen). Jeder Benutzer kann jede Auswertung auch mehrfach mit unterschiedlichen Einstellungen einplanen. Pro Benutzer wird mit seiner spezifischen Einstellung eine eigene Benutzergruppe erstellt und der jeweiligen Benutzerapplikation zugeordnet.
Beispiele für Benutzerapplikationen:
Nur Benutzerapplikationen besitzen untergeordnete Benutzergruppen mit den darin enthaltenen Ausführungsschritten. Systemapplikationen enthalten direkt die Ausführungsschritte.
Sind alle diese wiederkehrenden Aufgaben abgearbeitet, beendet sich der Dienst atomatisch.
Intervall Aufgaben
Sind Aufgaben mit einem "Intervall" definiert, wird intern nach Aufruf ein sog. Zeittrigger aktiviert, der die Aufgabe gemäß des eingestellten Intervalls (z.B. 5min) periodisch aufruft. Die "Intervall" Angabe kann auch mit der Umgebungsvariable CX_APP_SCHEDULE_SNIFFER_INTERVAL gesetzt bzw. überschrieben werden.
Einmalige Aufgaben
Sind Aufgaben weder als "Wiederkehrend (Batchlauf)" oder mit einem "Intervall" definiert, gelten diese als "einmalige" Aufgaben und werden auch nur einmalig ausgeführt. Solche einmalige Aufgaben werden ebenfalls in den sog. Nachtläufen abgearbeitet oder können direkt manuell gestartet werden.
Ausführung als Webservice
Der Applikationskalender kann als MorphIT-Instanz ausgeführt werden.
'static': { 'request_timeout': 300*1000, "webservice": { 'enabled': true, 'registration_webservice': false, "instances": [ { 'id': 'app_schedule', // To recognize the instance in the admin console "registration_webservice": "EXECUTE_APPLICATION_SCHEDULE?USERID=cx&PASSWORD=cx", 'launch': { // Define start command for this webservice instance (first set dlls, then call start batch) 'cmd': 'Y:\\classix\\Pythia\\projects\\Pythia\\Pythia.bat', 'config': { 'env':{ // Custom environment variables 'CX_DISABLE_LOGIN_SID':'TRUE', //Set CX_DISABLE_LOGIN_SID for start batch 'CX_APP_SCHEDULE_SNIFFER_INTERVAL':'60min', //Set CX_APP_SCHEDULE_SNIFFER_INTERVAL for start batch } } } } ] } }
'static': { 'request_timeout': 300*1000, "webservice": { 'enabled': true, 'registration_webservice': false, "instances": [ { 'id': 'app_schedule', // To recognize the instance in the admin console "registration_webservice": "EXECUTE_APPLICATION_SCHEDULE", 'launch': { // Define start command for this webservice instance (first set dlls, then call start batch) 'cmd': 'Y:\\classix\\Pythia\\projects\\Pythia\\Pythia.bat', 'config': { 'env':{ // Custom environment variables 'CX_DISABLE_LOGIN_SID':'FALSE', //Set CX_DISABLE_LOGIN_SID for start batch 'CX_USER':'cx', //Set CX_USER for start batch 'CX_APP_SCHEDULE_SNIFFER_INTERVAL':'60min', //Set CX_APP_SCHEDULE_SNIFFER_INTERVAL for start batch } } } } ] } }
Für die oben beschriebene Funktionalität muss am Benutzer cx die SID des Benutzerkontos der MorphIT-Dienste in der Datenbank hinterlegt. Entsprechend muss das Benutzerkonto bei den Diensten manuell hinterlegt werden oder alternativ dafür gesorgt werden, dass der Benutzer der hinterlegten SID immer am Rechner angemeldet ist.
Eine automatische Anmeldung durch zusätzliche Angabe des Passworts als Variable ist nicht möglich, bitte verwenden Sie dafür die Cloudconfig weiter oben.
Funktionalität
- Eingabefenster
- Listenfenster
- Positionsfenster
- Anstehende Applikations-Kalendereinträge
- Ausführung
- Protokolleintrag
- Webservice
Eingabefenster
Diese App dient der Pflege von Applikations-Kalender(einträgen).
| Menüpunkt | Beschreibung |
|---|---|
| Bearbeiten | - |
| - | |
| : : Mit OLE im Vordergrund | Die Druckmaske wird geöffnet, ClassiX ist mit dem Drucken beschäftigt. Sie müssen warten, bis der Druck beendet ist. |
| : : Mit OLE im Hintergrund | Die Druckmaske wird geöffnet, ClassiX gibt das Drucken an eine im Hintergrund unsichtbar gestartete ClassiX Instanz weiter. Sie brauchen nicht warten, bis der Druck beendet ist, sondern können mit ClassiX weiter arbeiten. |
| : Test Modus ein-/ausschalten | Wird ein Applikationskalender ausgeführt, werden alle Fehler oder Nachrichten in eine Datei umgeleitet. Dieses kann beim Erstellen und Testen eines neuen Applikationskalenders sehr hinderlich sein. Mit diesem Menüpunkt kann man das Umleiten in eine Datei ein- bzw. ausschalten. |
| Suchen | Listenfenster aufrufen |
| Symbol | Beschreibung |
|---|---|
| Neue(n) Applikations-Kalender(eintrag) anlegen | |
| Änderungen speichern | |
| Applikations-Kalender(eintrag) löschen | |
| Applikations-Kalender(eintrag) drucken | |
| Notizen anlegen/bearbeiten |
| Feld | Beschreibung | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Details | |||||||||
| : Applikations-Kalendereintrag | |||||||||
| : : Kennzeichen | Technisches Kennzeichen der Aufgabe.
Konvention: |
||||||||
| : : Typ | Typ der Aufgabe. Mögliche Eingaben sind:
|
||||||||
| : : Kategorie | Kategorie der Aufgabe: Wenn mehrere Nachtlaufinstanzen in der Nacht gestartet werden, wird jede dieser Nachtlaufinstanzen einer Kategorie (A/B/C) zugeordnet. Diese führen dann auch nur die Aufgaben aus, die ihrer Kategorie zugeordnet sind. So lassen sich Aufgaben parallel ausführen, bei denen wenig Gefahr von Blockaden ausgehen (reine Leseläufe). Siehe "Skalierbarkeit der Nachtläufe" | ||||||||
| : : Reihenfolge | Jeder Applikation kann eine Kennzahl für die Reihenfolge gegeben werden. Bei der Ausführung der Nachtläufe werden alle Anwendungen nach der Reihenfolge aufsteigend sortiert. Die Aufgabe mit der höchsten Priorität hat also die niedrigste Zahl. Siehe "Skalierbarkeit der Nachtläufe" | ||||||||
| : : Server | Weist die Aufgabe einem Servertypen zu. Mögliche Eingaben sind zur Zeit nur "Nachtlauf" und "Druckserver". Der Nachtlauf Server prüft nur alle 24 Stunden nach Feierabend, welche Aufgaben für ihn anliegen. Der Druckserver könnte jede Stunde oder sogar öfter laufen. | ||||||||
| : : Bearbeiter | Bearbeiter-Knopf: Öffnet die Suchliste der Mitarbeiter. Ein Mitarbeiter kann ausgewählt und dem Beleg zugeordnet werden. | ||||||||
| Bearbeiter-Nummer: Direkteingabefeld: Hier kann die Mitarbeiternummer für die Suche benutzt werden. Nach der Eingabe ist die Suche durch ENTER auszulösen. | |||||||||
| Bearbeiter-Kürzel Direkteingabefeld: Hier kann das Kürzel des Mitarbeiters für die Suche benutzt werden. Nach der Eingabe ist die Suche durch ENTER auszulösen. | |||||||||
| : : Erstelldatum | Datum, an dem die Applikation erstellt wurde | ||||||||
| : : Beschreibung | Die Beschreibung, was die Applikation darstellt. | ||||||||
| : Terminierung | |||||||||
| : : Startdatum | Nur sichtbar bei Typ "System": Das Datum, ab dem die Aufgabe gestartet werden soll, bzw. das Datum der ersten Ausführung. Da es je nach Auslastung passieren kann, dass nicht alle Aufgaben in der Nacht abgearbeitet werden können (Datensicherung), ist dies das frühestmögliche Startdatum. Sollte die Ausführung am geplanten Termin nicht stattgefunden haben, wird sie am nächsten Tag ausgeführt. | ||||||||
| : : Batchlauf |
Muss eine Aufgabe, wie zum Beispiel die nächtliche Nachkalkulation, jeden Tag ausgeführt werden, kann hier ein Häkchen gesetzt und in der dann sichtbar werdenden Auswahlbox "Periodizität" eingestellt werden, wie häufig diese Aufgabe ausgeführt werden soll. Die Prüfung auf Ausführung ist dabei so implementiert, dass der vom letzten Ausführungsdatum anhand der Periodizität errechnete neue Ausführungstermin kleiner-gleich dem aktuellen Ausführungsdatum sein muss. Damit wird weitestgehend sichergestellt, dass - auch bei Ausfall eines Laufs - die Applikationskalender auch nachträglich ausgeführt werden. Der Aufruf der in dieser Weise definierten Applikationskalender muss von außen erfolgen, d.h. im System muss ein sog. "cron job" definiert werden, der die Applikationskalender startet. Im Gegensatz dazu stehen die Applikationskalender, die per Intervall gesteuert werden. Für diese Applikationskalender wird ein interner Zeittrigger gestartet, der automatisch den Applikationskalender Intervall für Intervall ausführt. Ist weder diese Auswahl "Batchlauf" noch die Auswahl "Intervall" (s.u.) getroffen, wird der Applikationskalender nur einmalig ausgeführt. |
||||||||
| : : Periodizität (drop down box) | Gibt, wenn das Häkchen "Wiederkehrend" gesetzt ist, an, in welchen Abständen die Aufgabe wiederkehrend ausgeführt werden soll. (Z.B. täglich, wöchentlich, usw.) | ||||||||
| :: Wochentag | Wenn das Häkchen "Wiederkehrend" gesetzt ist, kann hier angegeben werden, an welchem Wochentag der Applikationskalender ausgeführt werden soll. Damit kann z.B. verhindert ween, dass am Wochenende oder an Feiertagen (Angaben mit Sternchen (*)) der Apllikationskalender ausgeführt wird. | ||||||||
| : : Zuletzt ausgeführt / um | Gibt an, an welchem Datum diese Aufgabe das letzte Mal komplett durchgelaufen ist. In der Fensterlasche "Protokoll" ist die Historie der letzten Ausführungen aufgeführt. Werden es zu viele, können die Einträge markiert und aus dem Protokoll entfernt werden. | ||||||||
| : : Enddatum | Datum der letzten Ausführung. | ||||||||
| : : Intervall |
Über diese Checkbox wird definiert, dass der Dienst mehrfach täglich in einem bestimmten Intervall ausgeführt werden soll. Hierzu wird intern ein sog. Zeittrigger aktiviert, der die Aufgabe im gesetzten Intervall periodisch ausführt. Im Gegensatz dazu stehen Applikationskalender, die als "Batchlauf" (s.o.) definiert sind. Bei diesen muss im System ein sog. "cron job" eingerichtet sein, der von außen diese Applikationskalender (dann Tag für Tag oder auch über Tage hinaus) periodisch aufruft. Ist weder die Auswahl "Batchlauf" (s.o.) noch diese Auswahl "Intervall" getroffen, wird der Applikationskalender nur einmalig ausgeführt. |
||||||||
| : : Zeitspanne |
Festlegen einer Zeitspanne (Uhrzeiten), in der die Aufgabe ausgeführt werden soll. Dieses kann z.B. als 1.00-3.00 angegeben werden, wenn die Aufgabe nur früh morgens in der Zeit zwischen 1.00Uhr und 3.00Uhr ausgeführt werden soll. Bleibt dieses Feld leer, wird die Aufgabe unabhängig von der Uhrzeit ausgeführt. |
||||||||
| : Mitteilung | |||||||||
| : : E-Mail Empfänger |
Eingabe ein oder mehrerer (durch Semikolon getrennter) E-Mail Adressen. In den nächsten beiden Checkboxen kann ausgewählt werden, zu welchen Abarbeitungsstatus eine E-Mail verschickt werden soll. ACHTUNG: Als Absender wird die E-Mail des Mitarbeiters des ausführenden Benutzers genommen. Hat der Benutzer keine Mitarbeiterrolle werden die Standard-E-Mail-Absender überprüft. |
||||||||
| : : bei Abbruch | An die E-Mail Empfänger wird eine standardisierte E-Mail verschickt mit dem Hinweis, dass der Applikationskalender abgebrochen ist, d.h. nicht ordnungsgemäß abgeschlossen werden konnte. | ||||||||
| : : bei Erfolg | An die E-Mail Empfänger wird eine standardisierte E-Mail verschickt mit dem Hinweis, dass der Applikationskalender ordnungsgemäß abgeschlossen wurde. | ||||||||
| : : Betreff Makro |
An dieser Stelle kann ein Makro / eine Prozedur als InstantView Code hinterlegt werden, die einen Text erstellt, der als Betreff in die E-Mail eingetragen werden soll. Dem Makro wird der gerade zuletzt ausgeführte Ausführungsschritt übergeben.
|
||||||||
| : Ausführungsschritte | |||||||||
| : : Liste |
Liste der einzelnen Ausführungsschritte des Applikationskalenders. (Im Fall von Benutzerapplikationen werden die einzelnen Ausführungsschritte in Form eines Baums dargestellt.)
|
||||||||
| Protokoll | |||||||||
| : Entfernen | Löscht die ausgewählten Protokolleinträge. | ||||||||
| : Liste | Auflistung aller ausgeführten Einträge dieser Applikation. Sie bleiben so lange in der Liste enthalten, bis sie manuell gelöscht werden. | ||||||||
| Letzte Dokumente | |||||||||
| Liste der Dokumente, die bei der letzten Ausführung erstellt worden sind. Diese Dokumente befinden sich auch in den Protokolleinträgen der einzelnen Ausführungsschritte, werden also bei jeder erneuten Ausführung des Applikationskalenders hier durch neu hinzukommende Dokumente ersetzt. Die Anlistung hier dient also nur zur schnellen Anzeige der zuletzt erstellten Dokumente. | |||||||||
| Knopf | Beschreibung |
|---|---|
| Einfügen | Ein neuer Eintrag kann dem Applikationskalender hinzugefügt werden. |
| Entfernen | Der oder die selektierten Einträge des Applikationskalenders werden - nach einer erneuten Bestätigungsfrage - gelöscht. |
| Jetzt ausführen | Sind eine oder mehrere Zeilen des Applikationskalenders selektiert, werden diese - nach einer erneuten Bestätigungsfrage - gemäß ihrer Reihenfolge direkt ausgeführt. Ist keine Zeile selektiert, wird der gesamte Applikationskalender - auch hier wieder nach einer erneuten Bestätigungsfrage - ausgeführt. |
| Reaktivieren | Setzt das Startdatum auf den heutigen Tag und löscht das "zuletzt ausgeführt" Datum. Dadurch wird beim nächsten Nachtlauf diese Aufgabe erneut ausgeführt. Dieser Knopf ist gesperrt, wenn die Checkbox "Wiederkehrend" nicht gesetzt ist. |
| Aktivieren | Dieser Knopf ist für das Starten von Diensten vorgesehen, welche mehrmals täglich (Checkbox: "Intervall") ausgeführt werden sollen. Ist die Checkbox nicht gesetzt, so ist dieser Knopf gesperrt. |
Liste
Diese App dient der Auflistung aller Applikations-Kalender(einträge).
| Menüpunkt | Beschreibung |
|---|---|
| Bearbeiten | - |
| : Datenaustausch | |
| : : Export | Alle oder nur die in der Liste selektierten Kalender können aus Sicherungsgründen in eine Textdatei exportiert werden. Die Dateien werden in das Verzeichnis ...\Appswh\Data\APP-SCHED geschrieben. |
| : : Import | Die zuvor exportierten Kalender (s.o. Export) können wieder reimportiert werden. |
| : Zurücksetzen | Die Liste wird geleert. |
| Optionen | Optionsfenster aufrufen |
| Symbol | Beschreibung |
|---|---|
| Liste leeren | |
| Neuen Applikations-Kalender(eintrag) anlegen | |
| Applikations-Kalender(eintrag) bearbeiten | |
| Applikations-Kalender(eintrag) löschen | |
| Notizen anlegen/bearbeiten | |
| Beleghistorie | |
| Kopieren in Zwichenablage |
| Feld | Beschreibung |
|---|---|
| Kennzeichen | Kennzeichen bzw. Nummer des Applikationkalenders |
| Bezeichnung | Sucht nach der Bezeichnung eines Applikations-Kalender)eintrags) |
| Startet am | Sucht die System-Applikationen, die am eingetragenen Datum das erste Mal starten sollten. (Achtung: bei wiederkehrenden Applikations-Kalender(einträgen) wird nicht berechnet, ob diese am angegebenen Datum fällig wäre!) |
| Knopf | Beschreibung |
|---|---|
| Zurück | Die App wird geschlossen. |
| Löschen | Der ausgewählte Applikations-Kalender(eintrag) wird gelöscht. |
| Neu | Ein leeres Eingabefenster zum Erfassen eines neuen Applikationkalenders wird geöffnet. |
| Bearbeiten | Der aktuelle Applikations-Kalender(eintrag) wird im Eingabefenster angezeigt. |
Positionsfenster
Diese App dient der Bearbeitung eines Applikations-Kalender(eintrags), ob Gruppe oder einzelne Ausführung.
| Feld | Beschreibung |
|---|---|
| Details | |
| : App.-Kalendereintrag | Anzeige des übergeordneten Applikations-Kalendereintrags. Dieser kann mittels der rechten Maustaste direkt aufgerufen werden |
| : Ausführungsnummer | Die Nummer der Position. Diese wird automatisch vergeben, kann aber verändert werden. Wird in der Hauptmaske in der Liste ein Eintrag nach oben oder unten verschoben, werden die Positionen neu durchnummeriert. |
| : Bezeichnung | Ein übersichtlicher Name dessen, was diese Position bewirken soll. Bei Benutzergruppen kann der Benutzer hier einen freien Namen vergeben, damit er bei mehreren geplanten Aufgaben zum selben Thema genau weiß, was welcher Eintrag bewirken soll z.B. SCM für Auftrag 0293399 |
| : Ausführung |
Dieses Feld ist nur dann sichtbar, wenn es sich nicht um eine Benutzergruppe handelt. In diesem Feld wird der in diesem Ausführungsschritt auszuführende Programmcode hinterlegt. Soll ein Ausführungsschritt die Ausführung des Applikationskalenders beenden, muss der Programmcode folgenden Code enthalten: 0 actualExecute Put(TopTransaction().blocked.settings) |
| : Ausführungsdetails | Nur bei Gruppen: Hier wird angegeben, wann die Aufgabe ausgeführt werden soll und durch wen (Nachtlauf, Druckserver...). Es kann angegeben werden, ob die Aufgabe nach einmaliger Ausführung ins Protokoll verschoben, oder wiederkehrend (z.B. täglich) ausgeführt werden soll. |
| : : Startdatum | Nur sichtbar bei Typ "System": Das Datum, ab dem die Aufgabe gestartet werden soll. Da es je nach Auslastung passieren kann, dass nicht alle Aufgaben in der Nacht abgearbeitet werden können (Datensicherung), ist dies das frühestmögliche Startdatum. Sollte die Ausführung am geplanten Termin nicht stattgefunden haben, wird sie am nächsten Tag ausgeführt. |
| : : Wiederkehrend | Muss eine Aufgabe, wie zum Beispiel die nächtliche Nachkalkulation, jeden Tag ausgeführt werden, kann hier ein Häkchen gesetzt und in der dann sichtbar werdenden Auswahlbox "Periodizität" eingestellt werden, wie häufig diese Aufgabe ausgeführt werden soll. |
| : : Periodizität | Gibt wenn das Häkchen "Wiederkehrend" gesetzt ist an, in welchem Intervall die Aufgabe ausgeführt werden soll. |
| : : Ausgeführt | Gibt an, an welchem Datum diese Aufgabe das letzte Mal komplett durchgelaufen ist. In der Fensterlasche "Protokoll" ist die Historie der letzten Ausführungen aufgeführt. Werden es zu viele, können die Einträge markiert und aus dem Protokoll entfernt werden. |
| : Bearbeiter | Nur bei Gruppen: Bearbeiter der Aufgabe bzw. wer hat sie erstellt? |
| : : Bearbeiter-Knopf | Öffnet die Suchliste der Mitarbeiter. Ein Mitarbeiter kann ausgewählt und dem Beleg zugeordnet werden |
| : : Bearbeiter-Nummer | Direkteingabefeld: Hier kann die Mitarbeiternummer für die Suche benutzt werden. Nach der Eingabe ist die Suche durch ENTER auszulösen |
| : : Bearbeiter-Kürzel | Direkteingabefeld: Hier kann das Kürzel des Mitarbeiters für die Suche benutzt werden. Nach der Eingabe ist die Suche durch ENTER auszulösen. |
| : Aufgaben des Benutzers | Nur bei Gruppen |
| Weitere offene geplante Aufgaben des Benutzers der aktuell angezeigten Aufgabe zum aktuell angezeigten Applikations-Kalender(eintrag). | |
| Einträge der Applikation | |
| Hier werden - nur bei Benutzergruppen - die einzelnen, durchzuführenden Schritte zur weiteren Pflege angezeigt | |
| Relationen | |
| : Assoziationen |
Liste von assoziierten Objekte, die das Programm zur Zeit der Ausführung verarbeiten soll. Objekte können per Drag&Drop in die Liste eingefügt werden, in der Liste selektierte Objekte können mit dem Knopf "Entfernen" oder der Entfernen Taste auf der Tastatur entfernt werden. |
| : Ausgewählte Objekte | Applikationskalender werden auch dazu genutzt, um Auswertungen automatisiert auszuführen. In der Liste werden die Objekte gelistet, die für die Auswertung ausgewählt worden sind. |
| Knopf | Beschreibung |
|---|---|
| OK | Auswahl bestätigen |
| Reaktivieren | Wurde die Aufgabe bereits ausgeführt oder aus dem Protokoll geöffnet, kann sie über diesen Knopf noch einmal in den aktiven Bereich kopiert und somit erneut ausgeführt werden. |
| Offene Ben.-Applikationen | Zeigt vom aktuellen angezeigten Benutzer alle geplanten offenen Aufgaben aller Applikations-Kalender(einträge) an. |
| Löschen | Löscht die angezeigte Position |
| Schließen | Das Fenster wird geschlossen. |
Ausführung
Es gibt eine zentrale App (applicationScheduleExecute.app), mit der alle anstehenden Applikationskalender ausgeführt werden. Diese App kann entweder direkt gestartet werden (z.B. für Nachtläufe) oder in einer App Suite mittels der Message EXECUTE_APPLICATION_SCHEDULE eingebunden werden.
Hierbei wird pro Intervall Applikationskalender ein eigener Time Trigger gesetzt (siehe applicationScheduleTriggeredStart.app), alle anderen wiederkehrende oder einmalige Applikationskalender werden ebenfalls ausgeführt. Sollten laufend neue Applikationskalender ins System kommen (z.B. durch eine API), kann man einen Applikationskalender Sniffer starten (siehe cxApplicationSchedule::StartApplicationScheduleSniffer), der in vorgegebenen Zeitintervallen nach neuen Applikationskalendern sucht und diese - falls an der Reihe - zur Ausführung bringt.
Wurde eine Aufgabe ausgeführt, so wird entweder sie selbst, oder bei wiederholbaren bzw. System-Aufgaben eine Kopie dieser in das Protokoll der Applikationen verschoben.
Sollten bei Abarbeitung einer Aufgabe Warn- oder Fehlermeldungen aufkommen, werden diese unterdrückt und in nach Monaten getrennte Dateien im Verzeichnis ...\System\SystemOut\AppScheduleLog\YYYY-MM\xxxx.log geschrieben. Andere, nocht nicht ausgeführte Aufgaben werden dann aber weiterhin zur Ausführung gebracht.
Da für die Nachtläufe im Regelfall nur ein kurzes Zeitfenster zur Verfügung steht, gibt es die Möglichkeit, mehrere Nachtlaufinstanzen zu starten und sie einer Kategorie zuzuweisen. Die einzelnen Nachtläufe führen dann nur die Aufgaben aus, die ihrer Kategorie zugeordnet sind. Hierbei sollte eine Hauptinstanz, z.B. Kategorie A definiert werden, welche dann kurze Zeit vor den weiteren Instanzen ausgeführt wird, damit sie vorlaufende Systemaufgaben abschließen kann (Statistikperioden starten, neueste Währungstabelle importieren), die die weiteren Instanzen später mitbenutzen werden.
Jeder Applikation kann also eine Kategorie zugeordnet werden. Darüber hinaus kann jeder Applikation eine Kennzahl für die Reihenfolge gegeben werden. Bei der Ausführung der Nachtläufe werden alle Anwendungen nach der Reihenfolge aufsteigend sortiert. Die Aufgabe mit der höchsten Priorität hat also die niedrigste Zahl.
Die Kategorie der Instanz wird mittels Umgebungsvariable CX_BATCH_ID zugewiesen. Diese kann vor dem Aufruf des Systems mit dem Kommando "SET CX_BATCH_ID=A" oder über die Systemumgebungsvariablen gesetzt werden!
Webservice
Applikationskalender können auch mit der POST-Message EXECUTE_APPLICATION_SCHEDULE?USERID=myUserID&PASSWORD=myPassword&BATCHID=A über einen Webservice gestartet werden.
Protokolleintrag
Mit dieser App können die Protokolleinträge zum Protokoll von jedem ausgeführten Schritt eingesehen werden.
| Feld | Beschreibung |
|---|---|
| Details | |
| : Ausführungsdetails | |
| : : Ausgeführt | Gibt an, an welchem Datum und zu welcher Uhrzeit der Ausführungsschritt (s. Box darunter) ausgeführt wurde. |
| : : Bemerkung | Sollte während der Ausführung es zu einer System Meldung gekommen sein, ist diese hier protokolliert. |
| : Ausführungsschritt | |
| : : Applikationskalender | Der ausgeführte Applikationskalender. |
| : : Ausführungsnummer | Die Nummer des ausgeführten Ausführungsschritts. Zum Zeitpunkt der Ausführung wird dieser Eintrag aus dem Ausführungsschritt in den Protokoleintrag kopiert. |
| : : Bezeichnung | Die Bezeichnung des ausgeführten Ausführungsschritts. Zum Zeitpunkt der Ausführung wird dieser Eintrag aus dem Ausführungsschritt in den Protokoleintrag kopiert. |
| : : Beschreibung | Die Beschreibung des ausgeführten Ausführungsschritts. Zum Zeitpunkt der Ausführung wird dieser Eintrag aus dem Ausführungsschritt in den Protokoleintrag kopiert. |
| : : Ausführung | Der ausgeführte Programmcode. Zum Zeitpunkt der Ausführung wird dieser Eintrag aus dem Ausführungsschritt in den Protokoleintrag kopiert. |
| Dokumente | |
|
Liste von Dokumenten, die während der Ausführung erstellt worden sind. Ob Dokumente erstellt werden hängt vom ausgeführten Programmcode ab. |
|
| Knopf | Beschreibung |
|---|---|
| Zurück | Die App wird geschlossen. |
Anstehende Applikations-Kalendereinträge
Diese App dient der Auflistung der - in nächster Zukunft - auszuführenden Applikations-Kalendereinträge. Hier kann z.B. kontrolliert werden, was heute gestartet werden wird. Auch die Termine von wiederkehrenden Applikationen werden errechnet und berücksichtigt.
Der Benutzer kann als Filter eingestellt werden. In der Benutzerliste werden nur die Benutzer angezeigt, für die fällige Applikationen geplant sind. Wird kein Benutzer eingetragen, werden die offenen Aufgaben aller Benutzer angezeigt.
Über das Datumsfeld und das Feld für die Uhrzeit können die anstehenden Aufgaben näher eingegrenzt werden.
| Feld | Beschreibung |
|---|---|
| : Filter |
Filtert die fälligen Applikations-Kalendereinträge mit dem hier eingestellten Benutzer. Nur die Benutzer, für die aktuell Aufgaben anliegen, werden in der Auswahlliste vorgeschlagen. Wird kein Benutzer ausgewählt, werden all anstehenden Applikations-Kalendereinträge aufgelistet. Mit Angabe des Fälligkeitsdatums können die Applikations-Kalendereinträge nach Datum der Ausführung gefiltert werden. Dieser Filter greift nur, wenn ein Applikationskalender per Batchlauf definiert ist, wobei der/die Wochentag(e) der Ausführung angegeben werden können. |
| : : Bearbeiter-Nummer | Direkteingabefeld: Hier kann die Mitarbeiternummer für die Suche benutzt werden. Nach der Eingabe ist die Suche durch ENTER auszulösen |
| : : Bearbeiter-Kürzel | Direkteingabefeld: Hier kann das Kürzel des Mitarbeiters für die Suche benutzt werden. Nach der Eingabe ist die Suche durch ENTER auszulösen. |
| : : Fälligkeitsdatum | Über das Fälligkeitsdatum kann z.B. geschaut werden, welche Aufgaben in der nächsten Woche Mittwoch fällig werden. Allerdings kann es sein, dass einige der dann angezeigten Einträge bereits in den Tagen vorher abgearbeitet wurden. |
| : : Uhrzeit der Ausführung | Eingrenzung nach der Uhrzeit der Ausführung. Um auch Nachtläufe aufgelistet zu bekommen muss die Uhrzeit natürlich entsprechend gesetzt werden. |
| Liste | Liste der offenen, eingeplanten Aufgaben gemäß ausgewählten Benutzer und Fälligkeitsdatum. |
| Knopf | Beschreibung |
|---|---|
| Entfernen |
Es können nur Unterpositionen von Applikations-Kalendereinträgen entfernt werden, d.h. diese Funktion steht nur zur Verfügung, um Aufgaben, die man verzögert ausgeführt haben wollte, wieder aus dem System zu entfernen. Diese Aufgaben werden dann auch aus dem Applikationskalender endgültig gelöscht. |
| Zurück | Die App wird geschlossen. |
| Bearbeiten | Die App zum Bearbeiten des selektierten Applikationskalenders wird gestartet. |
| Auflisten | Die Suche über alle fälligen Aufgaben wird anhand des eingestellten Benutzers und des eingestellten Zeitraums ausgeführt. |
Verwandte Themen
Technische Dokumentation
Applikations-Kalender Modul
Modulname
appsched.mod - appscedt.mod - appscsel.mod - appscprn.mod
Klassen
CX_COMPOUND_TXN
CX_TRANSACTION
Security
Neben der Beschränkung der Zugriffsrechte über die Klasse und deren Datenfelder kann das Modul über einige der empfangenen Messages in seiner Nutzung beschränkt werden.
| Message | Parameter | Funktion | Security |
|---|---|---|---|
| TEST_APPLICATION_SCHEDULE | Nur für Testframeworks | ||
| EDIT_APPLICATION_SCHEDULE | Bearbeitungsmaske des übergebenen Applikations-Kalenders öffnen (wird NULL übergeben, wird eine leere Bearbeitungsmaske zur Neuanlage geöffnet) | ||
| LIST_APPLICATION_SCHEDULE | Öffnet die Suchliste der Applikations-Kalender | ||
| LOAD_APPLICATION_SCHEDULE | Lademessage zum Laden der Testdatenbank | ||
| CREATE_APPLICATION_SCHEDULE | Widget | Legt ein neues Objekt mit der übergebenen ID und den Enums an. Schickt an das Widget die Antwortmessage APPLICATION_SCHEDULE_CREATED direkt zurück | |
| CREATE_APPLICATION_SCHEDULE_EXECUTE | Widget | Legt eine neue Ausführungszeile unter dem ebenfalls übergebenen Objekt, mit der übergebenen ID an. Schickt an das Widget die Antwortmessage APPLICATION_SCHEDULE_EXECUTE_CREATED direkt zurück | |
| LOAD_APPLICATION_SCHEDULE_BY_FOLDER | Lademessages für exportierte Applikations-Kalender | ||
| LOAD_APPLICATION_SCHEDULE_BY_FILE | Lademessages für exportierte Applikations-Kalender | ||
| EXECUTE_APPLICATION_SCHEDULE |
Mit dieser Message, die z.B. von einer entsprechenden App Suite (*.cxp Datei) gesendet wird, triggert man das automatische Durchsuchen aller Applikations-Kalender nach Fälligkeiten und lässt diese ausführen. (siehe applicationScheduleExecute App.) Damit können sog. Nachtläufe, aber auch die Intervall Aufgaben gestartet und periodisch ausgeführt werden. Die eigentliche Ausführung und Anzeige der Aufgaben geschieht in der applicationScheduleTimeTriggerStart App. |
||
| CREATE_APPLICATION_SCHEDULE_COMPOUND | Widget | Legt ein neues Objekt mit einer automatisch generierten ID und dem CX_STAFF_MEMBER mit der übergenenen ID als Bearbeiter an. Wird als INTEGER 1 übergeben, wird immer wieder für den Benutzer ein neues Objekt erstellt. Wird die 0 übergeben, wird für den übergebenen Benutzer ein vorhandenes Objekt gesucht und ggf. dies zurück gegeben. Schickt an das Widget die Antwortmessage APPLICATION_SCHEDULE_COMPOUND_CREATED direkt zurück | |
| EDIT_APPLICATION_SCHEDULE_ITEM | Öffnet die Bearbeitungsmaske der übergebenen Position / Gruppe. Diese Message kann direkt nach dem automatischen Erstellen der Position dem Anwender zur Verfeinerung (Auswahl des Druckers, einstellen des Termins...) ausgelöst werden. | ||
| LIST_OPEN_APPLICATION_SCHEDULE | Zeigt entweder alle heute fälligen Aufgaben an, oder nur die des übergebenen Benutzers zum übergebenen Zeitpunkt. |