Startseite


Skriptdefinitionen

Die Perspektive Vorgangssteuerung, Skripte1) umfasst die ASYS-Repositoryobjekte der Vorgänge, Arbeitsschritte, Aktionen, Skriptmengen und Skriptdefinitonen. Die genannten Objektklassen sind - mit Ausnahme der Skriptdefinitionen - spezifisch für jeden Repository-Standort definierbar. Die Skriptdefinitionen gelten global für alle Standorte.

Die Möglichkeit der Definition einer Vorgangssteuerung steht nur für einen Teil der Masken zur Verfügung, die sich aus dem Navigationsbaum heraus öffnen lassen. Dieses Masken sind im Objektbaum dieser Perspektive aufgelistet. Für allen anderen Masken ist keine Vorgangssteuerung konfigurierbar!

Die in dieser Perspektive konfigurierbaren Repository-Objekte sind:

  • Vorgänge (Grundkonfiguration): Vorgänge sind eine Sammlung von Arbeitsschritten, die gemeinsam die im Zuge der Bearbeitung eines Vorgangs anfallenden (Teil-)Aufgaben umfassen. Jeder Vorgang gehört zu genau einer Maske, für eine Maske können mehrere Vorgänge definiert werden. Die Gliederung von Vorgängen in Arbeitsschritte bzw. die Zusammenstellung von Arbeitsschritten zu einem oder mehreren Vorgängen für eine Maske richtet sich nach fachlichen und ggf. organisatorischen Gesichtspunkten und ist weitestgehend frei gestaltbar.
    Die Definition von Vorgängen und ihren Arbeitsschritten beinhaltet noch keine Regeln, unter welchen Umständen ein Vorgang bzw. einer seiner Arbeitsschritte für einen Nutzdatensatz in der ASYS-Datenbank erstellt wird. Dies wird erst durch die Skriptmengen der Ablaufsteuerung festgelegt.
    • Aktionen (Grundkonfiguration): Zu jedem Arbeitsschritt eines Vorgangs können eine oder mehrere Aktionen definiert werden. Aktionen werden aus einer vorgegebenen Liste von Aktionstypen gebildet. Jeder Aktionstyp steht für ein aus dem Arbeitsschritt heraus startbares Programm, das mit den Daten der ASYS-Datenbank arbeitet. Für einige Aktionstypen müssen Parameter konfiguriert werden, um sie als konkrete Aktion eines Arbeitsschrittes einrichten zu können. Hierzu wird wiederholt auf Abfragen und Skriptdefinitionen zurückgegriffen.
      Je nach Konfiguration der Skriptmengen werden die Arbeitsschritte und ihre Aktionen manuell oder automatisch ausgeführt. Bei automatisch ausgeführten Arbeitsschritten werden auch alle ihre Aktionen automatisch abgearbeitet, wobei die Reihenfolge der Aktionsausführung eines automatischen Arbeitsschrittes nicht notwendigerweise der Reihenfolge der Aktionen in dieser Konfiguration entspricht. Dies ist bei der Definition von Aktionen zu berücksichtigen.
  • Skriptmengen (Ablaufsteuerung): Mit den Skriptmengen werden die Bedingungen definiert, unter denen Vorgänge bzw. ihre Arbeitschritte angelegt werden und in welcher Abfolge die Arbeitsschritte erstellt werden. Damit die in der Vorgangsgrundkonfiguration definierten Vorgänge und Arbeitsschritte überhaupt wirksam werden, muss es zumindest eine Startskriptmenge geben. Diese wird bei jedem Speichervorgang eines Datensatzes in der Hauptmaske und beim Empfang einer zugehörigen Nachricht über die ASYS-Kommunikation ausgeführt. Bei jedem Abschluss eines Arbeitsschrittes kann mit einer Folgeskriptmenge überprüft werden, ob bzw. welche weiteren Arbeitsschritte angelegt werden sollen. Zu jeder Maske gibt es keine oder genau eine Startskriptmenge. Gibt es eine Startskriptmenge, kann es beliebig viele Folgeskriptmengen geben.
    Skriptmengen sind - vergleichbar zu Prüfregelmengen und Empfängerermittlungsskriptmengen - in Skriptgruppen und Skriptreferenzen unterteilt. Die Skriptreferenzen in den Skriptmengen beziehen sich auf die global gültigen Skriptdefinitionen, d.h. eine Skriptdefinition kann in einer oder mehreren Skriptmengen mehrfach verwendet werden (vergl. Prüfregeldefinitionen und Prüfregelmengen). Zu jeder Skriptreferenz in den Skriptmengen können bzw. müssen ein Set von Fragen beantwortet und je nach Antwort Einstellungen vorgenommen werden:
    • Soll ein Arbeitsschritt angelegt werden? Dies ist nicht zwingend, da Skripte auch nur zur Ablaufsteuerung der Skriptmengen eingesetzt werden können. Wird kein Arbeitsschritt angelegt, entfallen die folgenden Fragen. Je Skriptreferenz in der Skriptmenge kann kein oder genau ein Arbeitsschritt eines Vorgangs angelegt werden. Der Vorgang und der Arbeitsschritt werden für den ASYS-Nutzdatensatz nur dann neu angelegt, wenn sie nicht schon als offener Vorgang oder Arbeitsschritt vorhanden sind (abgeschlossene oder stornierte Arbeitsschritte bzw. Vorgänge werden nicht beachtet).
      Neu mit ASYS7 hinzugekommen ist die Möglichkeit, einen Arbeitsschritt mehrfach für unterschiedliche Bearbeiter anzulegen. Diese müssen hierzu entsprechend gekennzeichnet und mit einer Bearbeiterermittlung versehen werden.
    • Soll der Arbeitsschritt manuell oder automatisch ausgeführt werden? Für automatische Arbeitsschritte ist noch zu unterscheiden zwischen sofortiger oder verzögerter Ausführung (Batch-Job).
    • Wann soll der Arbeitsschritt fällig werden? Jeder Arbeitsschritt muss mit einem Soll-Datum versehen werden, bis zu dem der Arbeitsschritt abgeschlossen sein soll. Das Datum kann auf unterschiedliche Weise berechnet werden.
    • Wer ist für die Erledigung des Arbeitsschrittes zuständig? Jeder Arbeitsschritt muss einem Bearbeiter (oder einer Arbeitsgruppe) zugeordnet werden. Hierfür gibt es in der Perspektive 'Standorte, Nutzer…' die Möglichkeit der Definition von Arbeitsgruppen, Nummernkreisen und Verteilungen, auf die in den Skriptreferenzen zurückgegriffen werden kann. Kann kein Bearbeiter ermittelt werden, ist ein Standard-Nutzer zu benennen (z.B. der Fachadministrator).
    • Soll bei Abschluss des Arbeitsschrittes mit einer Folgeskriptmenge geprüft werden, ob bzw. welche weiteren Arbeitsschritte angelegt werden müssen? Wenn in der Folge der Erledigung des Arbeitsschrittes im Skript weitere Arbeitsschritte angelegt werden sollen, muss eine Folgeskriptmenge zugeordnet werden.
    • Soll für einen oder mehrere Datensätze einer anderen Maske mit Vorgangssteuerung ein Arbeitsschritt angelegt werden? Es besteht die Möglichkeit des Maskenwechsels, d.h. aus der Skriptmenge einer Maske heraus werden ein Vorgang und ein Arbeitsschritt für einen Datensatz einer anderen Maske angelegt.
  • Skriptdefinitionen: Skriptdefinitionen werden vergleichbar zu den Prüfregeldefinitionen erstellt. Jedes Skript kann ein- oder mehrfach in einer oder mehreren Skriptmengen referenziert werden. Ein Skript ist ein 'Miniprogramm' in JavaScript, in welchem die aus Prüfregeldefinitionen und Abfragen bekannten Platzhalter für Inhalte des jeweiligen Datensatzes verwendet werden können. Skripte für die Skriptmengen liefern als Ergebnis einen logischen Wert, also entweder true oder false (bzw. das Ergebnis wird als logischer Wert interpretiert). Skripte für die Nutzung als Parameter von Aktionen können auch andere Werte als Ergebnis haben (s. auch Ausdrücke in Skripten).

Einige weitere grundlegende Eigenschaften der Vorgangssteuerung:

  • Die in den Vorgängen definierten Arbeitsschritte, welche aus den Skriptmengen heraus angelegt werden, landen in speziellen Vorgangssteuerungstabellen der ASYS-Datenbank und sind dort mit ihrem jeweiligen ASYS-Nutzdatensatz (z.B. einem Begleitscheindatensatz) verknüpft.
  • Für jeden ASYS-Nutzdatensatz, zu dessen Maske eine Vorgangssteuerung definiert ist, wird in den Vorgangssteuerungstabellen eine komplette Liste der Vorgänge, ihrer Arbeitsschritte und deren Aktionen protokolliert.
  • Die Vorgangssteuerungsdefinition im Repository beschreibt die möglichen Arbeitsschritte zu einem Datensatz der Maske. Die Vorgangssteuerungstabellen der ASYS-Datenbank enthalten den tatsächlich Ablauf der Vorgänge für jeden betroffenen ASYS-Nutzdatensatz. Die Unterschiede resultieren aus der Prüfung von Bedingungen in den Ablaufskripten der Vorgangssteuerung, so dass je nach Skriptkonfiguration nur bestimmte Arbeitsschritte erstellt werden.
  • Zu jedem ASYS-Nutzdatensatz kann es beliebig viele Vorgänge geben. Bei mehreren gleichen Vorgängen kann es zu einem ASYS-Nutzdatensatz immer nur einen nicht abgeschlossen Vorgang geben - die Gleichheit von Vorgängen ergibt sich aus dem Vergleich der Vorgangsnamen.
  • Zu jedem ASYS-Nutzdatensatz kann es beliebig viele Arbeitsschritte geben. Bei mehreren gleichen Arbeitsschritten in einem Vorgang kann es zu einem ASYS-Nutzdatensatz immer nur einen nicht abgeschlossen Arbeitsschritt geben - die Gleichheit von Arbeitsschritten ergibt sich aus dem Vergleich der Arbeitsschrittnamen.
    • Neu in ASYS7 hinzugekommen ist die Möglichkeit, entsprechend konfigurierte Arbeitsschritte mehrfach anzulegen, sofern für jeden dieser Arbeitsschritte ein anderer Nutzer als Bearbeiter eingetragen ist.
  • Vorgänge und Arbeitsschritte können als Kette von aufeinander folgenden Teilaufgaben definiert werden. Hierzu müssen den vorhergehenden Arbeitsschritten Folgeskriptmengen zugeordnet werden, aus denen heraus die nachfolgenden Arbeitsschritte angelegt werden.
  • Alternativ kann auch in der Startskriptmenge ein komplettes Set aller Arbeitsschritte eines Vorgangs angelegt werden (über entsprechend viele Skriptreferenzen). Ein derartiges Set von Arbeitsschritten stellt damit eher eine Art 'Checkliste' dar, aus der die benötigten Arbeitsschritte durch den Sachbearbeiter ausgewählt werden.
  • Mischformen dieser beiden Varianten lassen sich ebenfalls konfigurieren.
  • Als automatisch konfigurierte Arbeitsschritte werden sofort ausgeführt, d.h. unabhängig vom Soll-Datum werden sofort alle Aktionen des Arbeitsschritts nacheinander ohne Nutzereingriff ausgeführt (die Reihenfolge der Aktionen eines Arbeitsschritts ist jedoch nicht definierbar!) und der Arbeitsschritt wird auf abgeschlossen gesetzt. Eine dem Arbeitsschritt zugeordnete Folgeskriptmenge wird ausgeführt.
  • Mit dem Aktionstyp 'Änderung von Datensätzen' lassen sich beliebige Datensätze in der ASYS-Datenbank ändern. Wirkt die Änderung auf Datensätze einer Maske mit eigener Vorgangssteuerungsdefinition, so wird für alle diese Datensätze deren Startskriptmenge ausgeführt.
2014/03/12 12:59 · eflor

Tab-Reiter einer Skriptdefinition im Bearbeitungsbereich

Zuoberst befinden sich auf dem Tab-Reiter eine Zeile mit zwei Buttons und der Möglichkeit, eine Maske temporär zuzuordnen:

  • Button Tochteranwendung Der Button Tochteranwendung startet die Administrator-Tochteranwendung und übergibt ihr die Skriptdefinition für einen Test mit Daten aus der ASYS-Datenbank.
  • Button Syntaxcheck Der Button Syntaxcheck startet eine formale Prüfung des Skriptcodes. Dabei wird nur geprüft, ob der Skriptcode den formalen Regeln von JavaScript gehorcht. Geprüft wird, ob der JavaScript-Interpreter Fehler zurückmeldet. Diese werden dem Admin angezeigt. Ob das Skript im Kontext von Vorgangsabläufen, Masken, oder Datensätzen technisch und fachlich sinnvoll arbeitet, kann dieser Test nicht ermitteln.
  • Das Feld Maske dient der temporären2) Zuordnung einer Maske/eines Aufgabenbereichs zur Prüfregel. Durch diese Zuordnung können im Regelcode kontextsensitive Hilfestellungen für den Zugriff auf Datensatzfelder gegeben werden. Die Zuordnung in diesem Feld erfolgt über den Button Maskenauswahl (Button Maskenauswahl), welcher einen Dialog 'Auswahl Maske' öffnet. Der Name der Maske wird als Link angezeigt. Ein Strg+Linksklick auf den Namen wechselt zur Perspektive 'Masken, Prüfpläne…' und öffnet die Maskendefinition im Bearbeitungsbereich.

Der darunter befindliche Berech des Tab-Reiters eines Repository-Standortes im Bearbeitungsbereich des Administrators gliedert sich in vier Abschnitte:

  • Name: Die erste Zeile in diesem Abschnitt enthält den Namen der Skriptdefinition. Dieser wurde bei der Erstellung der Skriptdefinition vom Admin vergeben und kann nachträglich nicht mehr verändert werden.

Im Abschnitt Eigenschaften lässt sich vor allem der Verwendungszweck3) der Skriptdefinition eintragen:

  • Standardskript: Das Ankreuzfeld wird für alle Skriptdefinitionen gesetzt, die zum Standard-Auslieferungsumfang von ASYS gehören. Diese Eigenschaft kann nicht verändert werden und schränkt die Möglichkeiten zur Anpassung einer Skriptdefinition weitgehend ein.
  • Steuerskript: Mit dem Ankreuzfeld werden Skripte gekennzeichnet, die der Ablaufsteuerung in den Skriptmengen dienen (häufig mit Gruppen- oder Gesamtabbruch) und keine neue Arbeitsschritte anlegen. Derartige Skripte liefern nur ein logisches Ergebnis (true oder false) bzw. ihr Ergebnis wird entsprechend interpretiert.
  • für Arbeitsschritterstellung: Mit dem Ankreuzfeld werden Skripte gekennzeichnet, die in den Skriptmengen im Positivfall (Skriptergebnis liefert true) einen neuen Arbeitsschritt anlegen. Derartige Skripte liefern nur ein logisches Ergebnis (true oder false) bzw. ihr Ergebnis wird entsprechend interpretiert.
  • für Wertermittlung: Mit dem Ankreuzfeld werden Skripte gekennzeichnet, die nicht in den Abläufen, sondern in der Vorgangsgrundkonfiguration der Arbeitsschritte und ihrer Aktionen verwendet werden. Diese Skripte können Ergebnisse beliebigen Typs zurückliefern. Bei der Verwendung der Skriptdefinitionen ist daher auf die Typenverträglichkeit zu achten4)!
  • für Default-Vorbelegung im VARIABLES-Abschnitt der Abfragen: Diese Skripte sind für die Nutzung in freien Abfragen vorgesehen, um flexiblere Möglichkeiten zur Defaultwert-Ermittlung von Parametern (zur Laufzeit durch den Nutzer einzugebende Filter-/Suchkriterien) bereitzustellen.
  • Info: Dieses Feld ist ein Textfeld für Freitext und kann für eine interne Dokumentation genutzt werden.

Der Abschnitt Skriptcode enthält die eigentliche Skriptdefinition als JavaScript-Code.

Auf die Bestandteile des Skriptcodes wird an dieser Stelle nicht eingegangen, hierzu gibt es eine gesonderte Seite über den Skriptcode.

  • inverse Logik: Das Ankreuzfeld kann dazu genutzt werden, dass Ergebnis des Skriptcodes immer in sein Gegenteil zu verwandeln (aus true wird false und umgekehrt). Hintergrund ist, dass es immer wieder einmal vorkommt, dass sich das Gegenteil einer Aussage leichter formulieren lässt bzw. dass ein positives Ergebnis auf eine durch das Skript formulierte Frage der Fehlerfall ist, welcher aber nur durch false ausgedrückt sein kann (siehe hierzu auch die Beispielerläuterung bei der Prüfregeldefinition).
  • Schriftgröße: Das Feld ist ein Drop-Down-Auswahlliste, die keinen Einfluss auf das Verhalten der Skriptdefinition hat, sondern ausschließlich die Größe der Textdarstellung des Skriptcodes beeinflusst.

Das Textfeld mit dem Skriptcode

Die Unterstützung der Skriptdefinition gleicht der Unterstützung der Prüfregeldefinition. Da die dortigen Erläuterung hier genauso gelten, werden sie an dieser Stelle erneut wiedergegeben. Der Begriff (Prüf)regel oder (Prüf)regelcode ist jeweils sinngemäß auf die Skriptdefinition anzuwenden.


Das Textfeld mit dem Regelcode

Die nachfolgenden Abbildungen zu den Eingabehilfen stellen nur das Prinzip dar. Welche Eingabehilfen angeboten werden, ist abhängig von der jeweils eingesetzten Programmversion des Repository-Administrators. Der Umfang der auswählbaren Funktionen kann sich daher mit der Zeit ändern, weshalb die Abbildungen einen älteren Versionsstand wiedergeben können.

Im Textfeld des Regelcodes wird mit Syntaxhighlighting gearbeitet, d.h. bestimmte für die Formulierung ausführbaren Codes wichtige Sonderzeichen werden im Fenster in roter Schrift angezeigt (z.B. Klammern, Anführungszeichen, Prozentzeichen, Zeichen für logische Operatoren). Die beiden von der ASYS-Mittelschicht bereitgestellten Systemklassenobjekte Sessionkontext (sc.) und Datenkontext (dc.) werden in Magenta angezeigt.

Wird eine dieser beiden Zeichenketten gefolgt von einem Punkt eingegeben, öffnen sich Auswahlfenster mit einer Liste der zum jeweiligen Objekt verfügbaren Funktionen (die Auswahl aus allen nachfolgenden kontextsensitiven Auswahlfenstern erfolgt per Doppelklick):

Auswahlfenster der Funktionen der Klasse dc Auswahlfenster der Funktionen der Klasse sc

Gibt es keinen Kontext, so wird mit Strg+Leerzeichen eine Auswahlliste allgemeiner Funktionen geöffnet (die nachfolgenden Abbildung zeigt nur einen Teil der angebotenen Funktionen):

Auswahl allgemeiner Funktionen/Klassen außerhalb eines Kontextes

Ist im Feld Maske ganz oben im Bearbeitungsbereich der Prüfregel eine Maske eingetragen, so kennt der Administrator den Kontext, in dem die Prüfregel eingesetzt werden soll. Sobald im Textfenster die Zeichenkette {% eingetragen wird öffnet sich eine Auswahlliste aller Datenfelder der Maske:

Auswahl der Maskenfelder bei definiertem Maskenkontext

Wird unter den gleichen Voraussetzungen die eingegebene Zeichenkette zu {%* verlängert, so erscheint eine Auswahlliste der Abfragen, die als 'Interne Abfrage' für 'Prüfregeln' gekennzeichnet sind und der zuoberst ausgewählten Maske zugeordnet sind:

Auswahl der Abfragen und -ergebnisattribute bei definiertem Maskenkontext

Ist ein Datenfeld einer Maske ausgewählt (s. zuvor), so kann das Ergebnis als JavaScript-Objekt mit weiteren Funktionen verarbeitet werden. Wird hinter dem Maskenfeldplatzhalter ein Punkt eingegeben, öffnet sich eine Auswahlliste möglicher JavaScript-Funktionen:

Auswahl von JavaScript-Funktionen zur Verarbeitung eines Maskenfeldinhalts

Nach Auswahl eines Eintrags schließen sich die Auswahlfenster und der Code wird passend vervollständigt. Bei der Auswahl von Funktionen werden häufig aber noch weitere Inhalte in die übernommenen Codebestandteile als Übergabeparameter eingetragen werden müssen, um den Code funktionstüchtig zu machen.

Bei der Auswahl einer Abfrage (via {%* ) erscheint der Name der Abfrage anschließend unterstrichen und in blauer Schrift als Link. Mittels Strg+Linksklick kann die Abfrage im Bearbeitungsbereich auf einem eigenen Tab-Reiter geöffnet oder nach vorne geholt werden, um sie dort zu bearbeiten. Kann unter dem eingegebenen Namen keine Abfrage gefunden werden (weil z.B. bei manueller Eingabe des Abfragenames ein Tippfehler übersehen wurde) passiert nichts.

Rechts neben den Auswahlfenstern öffnet sich i.d.R. ein weiteres Fenster mit einem Erklärungstext zum jeweils links in der Auswahlliste markierten Eintrag (falls vorhanden). Die beiden Fenster lassen sich auch ohne Auswahl mit der Esc-Taste schließen. Sie können wieder geöffnet werden, wenn sich die Schreibmarke im Code unmittelbar hinter der Zeichenkette befindet, die den Kontext festlegt (also z.B. hinter dc. oder {%) und Strg+Leertaste gedrückt wird.

Sie können den Prüfregelcode natürlich auch vollständig manuell eingeben und auf die Unterstützung durch die Hilfsfunktionen verzichten. Das Syntaxhighlighting wird unabhängig davon ausgeführt.

2013/12/16 14:12 · eflor

Den unteren Teil des Bearbeitungsbereichs nimmt ein Abschnitt mit zwei Tab-Reitern ein. Hier wird die Verwendung der Skriptdefinition angezeigt.

Vorgangsabläufe

In der Tabelle der Vorgangsabläufe werden alle Skripte in Skriptmengen angezeigt, in denen die Skriptdefinition genutzt wird.

Ein Doppelklick auf einen Tabelleneintrag öffnet das Skript an der entsprechenden Fundstelle in der Skriptmenge im Bearbeitungsbereich.

Vorgänge

In der Tabelle der Vorgänge werden alle Skripte in Aktionen der Arbeitsschritte angezeigt, in denen die Skriptdefinition genutzt wird.

Ein Doppelklick auf einen Tabelleneintrag öffnet die Aktion im Bearbeitungsbereich, in welcher das Skript verwendet wird.

Abfragen

In der Tabelle der Abfragen werden alle Abfragen gelisten, bei denen das Skript im Variables-Abschnitt der Abfragendefinition verwendet wird.

Ein Doppenklick auf einen Tabelleneintrag wechselt zur Perspektive Prüfregeln, Abfragen ... und öffnet die entsprechende Abfrage im Bearbeitungsbereich.


Weitere Informationen zu dieser Maske
keine
landesspezifische Zusatzinformationen: SH HH NI HB NW HE RP BW BY SL BE MV ST BB TH SN

Zurück zum Seitenanfang


1)
Der ursprüngliche Name lautete Vorgangssteuerung und wurde erst nachträglich ergänzt. Wenn in dieser Online-Hilfe die Perspektive 'Vorgangssteuerung' genannt ist, so ist immer 'Vorgangssteuerung, Skripte' gemeint.
2)
Diese Information bleibt nur solange erhalten, wie der Tab-Reiter der Prüfregel während einer Administrator-Sitzung nicht geschlossen wird.
3)
Diese Angaben dienen insbesondere der Filterung der Skriptdefinitionen in Auswahllisten und -masken, damit keine für den jeweiligen Kontext voraussichtlich irrelevanten Definitionen zur Auswahl angeboten werden.
4)
Einem numerischen Datenfeld dürfen z.B. keine Zeichenketten zugewiesen werden, die sich nicht als Zahl interpretieren lassen.
  • adm6/vgs/skriptdefinition.txt
  • Zuletzt geändert: 2019/10/11 12:43
  • von eflor