Lade...
 

Applikations-Kalender

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
Wiederkehrende 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.

Cloud
'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 } } } } ] } }

 

Local mit SID - Benutzer
'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

Diese App dient der Pflege von Applikations-Kalender(einträgen).

Menü
Menüpunkt Beschreibung
Bearbeiten -
: Drucken -
: : 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

 

Toolbar
Symbol Beschreibung
new.png Neue(n) Applikations-Kalender(eintrag) anlegen
save.png Änderungen speichern
delete.png Applikations-Kalender(eintrag) löschen
CX_PRINTER_hardcopy.png Applikations-Kalender(eintrag) drucken
pin.pngpinned.png Notizen anlegen/bearbeiten

 

Felder
Feld Beschreibung
Details
: Applikations-Kalendereintrag  
: : Kennzeichen Technisches Kennzeichen der Aufgabe.

Konvention:
Ist es eine Systemaufgabe, beginnt das Kennzeichen mit "GENERATE_". Ist es eine Benutzeraufgabe, beginnt es mit "REPORT_". Handelt es sich um eine Druckaufgabe, beginnt sie mit "PRINT_"

: : Typ Typ der Aufgabe. Mögliche Eingaben sind:
  • System - Die Systemapplikation ist ein Systemlauf, der nicht von einem Benutzer erfasst wurde. Diese Systemläufe können keine Untergruppen haben. Die Ausführungsdetails werden auf dem Kopfbeleg selbst verwaltet (Startdatum, Ausführungstyp, Wiederkehrung...)
    Kennzeichen beginnt mit "GENERATE_"
     
  • Benutzer - Die Benutzerapplikation wurde auf Anforderung eines Benutzers vom System erstellt. Bei dieser Art der Applikation werden die Ausführungsdetails auf den Benutzergruppen gespeichert. Jeder Benutzer, der in dieser Applikation eine Aufgabe einplant, kann sich selbst aussuchen, zu welchem Datum diese Aufgabe ausgeführt werden soll. Dies ist auf der Benutzergruppe einstellbar (CX_COMPOUND_TXN)
    Kennzeichen beginnt mit "REPORT_"
    Eine direkte, manuelle Erfassung von Benutzerapplikationen ist nicht vorgesehen. Im Standard sind enthalten das Supply Chain Management und Lieferantenerklärungen.
     
  • Druck - Es handelt sich um eine Druckaufgabe. Diese sind im Standard nicht implementiert, sondern werden Kunden spezifisch definiert.
    Kennzeichen beginnt mit "PRINT_"
: : 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.
Um eine Standard Email-Adresse anzulegen, muss im Mandanten in den Telekommunikationsdaten eine E-Mail-Adresse mit dem Kommentar "AUTOMATED_EMAIL_SENDER" eingetragen werden.

: : 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.

Beispiele
Feldinhalt E-Mail Bereff
"\"PYTHIA Abgleich\""
"PYTHIA Abgleich"
({ "PYTHIA Abgleich" }) Execute
PYTHIA Abgleich
({ LocalVar(appStep) -> appStep appStep Copy(last.transaction.new.counter) Integer appStep Copy(last.transaction.risk.counter) Integer appStep Copy(last.transaction.changed.counter) Integer "Pythia: %i neue Treffer, %i geänderte Whitelist-Einträge, %i geänderte Blacklist Einträge" String(STACK) }) Execute
Pythia: x neue Treffer, x geänderte Whitelist-Einträge, x geänderte Blacklist Einträge

 

: Ausführungsschritte  
: : Liste

Liste der einzelnen Ausführungsschritte des Applikationskalenders. (Im Fall von Benutzerapplikationen werden die einzelnen Ausführungsschritte in Form eines Baums dargestellt.)

 
Kennzeichen Laufende Nummer des Ausführungsschritts.
Bezeichnung Bezeichnung des Ausführungsschritts.
Ausführung InstantView Programmcode, der ausgeführt werden soll. Der gerade ausgeführte Ausführungsschritt steht als "actualExecute" Variable zur Verfügung.

 

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.

 

Knöpfe
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ü
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

 

Toolbar
Symbol Beschreibung
list_clear.png Liste leeren
new.png Neuen Applikations-Kalender(eintrag) anlegen
open.png Applikations-Kalender(eintrag)  bearbeiten
delete.png Applikations-Kalender(eintrag)  löschen
pin.pngpinned.png Notizen anlegen/bearbeiten
  Beleghistorie
  Kopieren in Zwichenablage

 

Suchfelder
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!)

 

Knöpfe
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.

Felder
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.
Knöpfe
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.

Skalierbarkeit der Nachtläufe

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.

Felder
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.

Knöpfe
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.

Felder
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.
Knöpfe
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_APPLICATION_SCHEDULE

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.

Empfangene Messages
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.  

Operativer Betrieb