Konfiguration der Fabasoft eGov

Transcrição

Konfiguration der Fabasoft eGov
Konfiguration der
Fabasoft egov-Suite
Andreas Hofmann
ISBN: 978-3-902495-23-5
Alle Rechte der Verbreitung, auch durch fotomechanische Wiedergabe, Tonträger
jeder Art, auszugsweisen Nachdruck oder Einspeicherung und Rückgewinnung in
Datenverarbeitungsanlagen aller Art, sind vorbehalten.
Es wird darauf verwiesen, dass alle Angaben in diesem Fachbuch trotz
sorgfältiger Bearbeitung ohne Gewähr erfolgen und eine Haftung der Autoren oder
des Verlages ausgeschlossen ist.
Aus Gründen der einfacheren Lesbarkeit wird auf die geschlechtsspezifische
Differenzierung, z.B. Benutzer/-innen, verzichtet. Entsprechende Begriffe gelten im
Sinne der Gleichbehandlung grundsätzlich für beide Geschlechter.
Fabasoft und das Fabasoft Logo sind registrierte Warenzeichen der Fabasoft AG.
Microsoft, MS-DOS, Windows, das Windows-Logo, Windows 95, Windows 98,
Windows Me, Windows XP, Windows NT, Windows 2000, Windows Server,
Active Directory, Outlook, Excel, Word, PowerPoint, Visual Studio, Visual Basic,
Visual C++ sind entweder registrierte Warenzeichen oder Warenzeichen der
Microsoft Corporation.
Alle anderen verwendeten Hard- und Softwarenamen sind
Handelsnamen und/oder Marken der jeweiligen Hersteller.
© Fabasoft International Services GmbH, Linz 2007
Honauerstraße 4, 4020 Linz
Tel.: +43 (732) 606162
http://www.fabasoft.at
Konfiguration der Fabasoft eGov-Suite
Andreas Hofmann
Inhaltsverzeichnis
2007
Konfiguration der Fabasoft eGov-Suite
1
Einführung
__________________________________________________________________________________________________________________
__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
1.1 Zweck der Konfiguration
________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
1
9
9
1.2 Länderspezifische Begriffe ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 10
1.3 Länderspezifische Standards ______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 12
DOMEA ______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 12
ELAK ______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 15
GEVER ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 16
2
Grundlagen
__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
19
2.1 Allgemeines zum Aufbau der eGov-Konfiguration __________________________________________________________________________________________________________________________________________________________________________________ 19
Hierarchie der eGov-Konfigurationen ______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 20
Auswertung der Objektklasse ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 22
Einschränken der dargestellten Eigenschaften ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 23
2.2 TriStep ________________________________________________________ 23
Konstruktorformular ______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 25
2.3 Tracing in Fabasoft Components Expressions ______________________________________________________________________________________________________________________________________________________________________________________________________________ 25
3
Initialisierung und Anpassung von Werten
__________________________________________________________
29
3.1 Initialisierung von Werten ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 29
TriStep-Initialisierungen ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 35
Initialisierungsinhalte ______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 37
5
3.2 Formatierung von Werten
________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
37
Objektklassenformatierungen ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 38
Einfache Wertformatierungen __________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 44
3.3 Anpassungen der Benutzerschnittstelle ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Formularkonfiguration ______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Menüanpassungen ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Referenzierung von Eigenschaften ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
54
3.4 Auswertung von Ausdrücken ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Ausdrücke für Auslöser ______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Werteverzeichnisse für Auslöser ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Vordefinierter Cache ______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Filtern von Objektlisten anhand des Gültigkeitsdatums __________________________________________________________________________________________________________________________________________________________________________________
Kontext-Symbole ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Integrität __________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
80
54
72
74
80
84
87
88
90
94
3.5 Verwendung der eGov-Konfiguration zur Anpassung
des Adressaten-Controls
4
____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Regeln, ACLs und Unterschriften
________________________________________________________________________________________________________________________________________________________________
98
103
4.1 Regeln __________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 103
Auswertungsreihenfolge der Regeln ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 103
Auswertung der Regeln ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 105
Aktion zum dynamischen Ermitteln ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 106
Übersicht über vordefinierte Regeln ______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 110
4.2 ACL-Einstellungen und ACL-Übergänge ______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 114
ACL-Übergänge ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 121
4.3 Unterschriften ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 122
Unterschriftenart ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 123
Unterschriftenregelung ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 128
Unterschrifteneinstellungen in der eGov-Konfiguration __________________________________________________________________________________________________________________________________________________________________________________ 129
5
Workflow
______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
137
5.1 Arbeitsschritt-Wrapper ______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 137
Einfache Arbeitsschritt-Wrapper __________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 138
Arbeitsschritt-Wrapper mit Erzeugen ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 139
Arbeitsschritt-Wrapper mit Selektion ______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 141
5.2 Unterschriften-Wrapper
5.3 Abstrakte Teilnehmer
__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
143
__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
144
5.4 Einfügen von Ad-hoc-Aktivitäten
6
________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Dokumenteigenschaften und Serienbriefe
6.1 Dokumenteigenschaften
146
________________________________________________________
151
______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
151
6.2 Serienbriefe ______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 155
7
Übersichten
________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
161
7.1 Allgemeine Informationen zu Übersichten ______________________________________________________________________________________________________________________________________________________________________________________________________________________________ 165
7.2 Definition einer Übersicht
____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
169
7.3 Verwendung von Ausdrücken in einer Übersicht __________________________________________________________________________________________________________________________________________________________________________________ 169
Deklaration der verwendeten Softwarekomponenten ____________________________________________________________________________________________________________________________________________________________________________________________ 169
Unformatierte Ausgabe von Eigenschaften ______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 170
Aufruf von Aktionen __________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 171
Weitere Funktionen ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 172
7.4 Einbindung von Metadaten in eine Übersicht ______________________________________________________________________________________________________________________________________________________________________________________________________________ 173
Einfache Wertformatierungen __________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 173
Komplexe Dokumentdarstellung ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 178
Textmarken ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 182
7
8
VApp-Anpassungen
8.1 Schritte
________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
191
__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
191
8.2 Verzweigungsanpassungen
__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
197
__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
201
9
Glossar
10
Abbildungsverzeichnis
11
Literaturverzeichnis
______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
205
____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
209
1
9
1 Einführung
Die mit der Fabasoft eGov-Suite mitgelieferte eGov-Konfiguration umfasst gegenwärtig 124 Konfigurationseigenschaften. Einige davon werden in den folgenden Kapiteln kurz vorgestellt …
Es sei vorweg darauf hingewiesen, dass dieses Buch keinen Anspruch auf Vollständigkeit erhebt. Da eine umfassende Abhandlung der vielfältigen Konfigurationsmöglichkeiten der Fabasoft eGov-Suite den Rahmen dieses
Buches ohne große Mühe sprengen würde, werden lediglich die wichtigsten Aspekte aufgegriffen und in kompakter Form vorgestellt.
Der Fokus dieses Buchs liegt auf der Anpassung der Elemente der Benutzerschnittstelle, der Initialisierung von
Akten und Geschäftsstücken, sowie der Konfiguration und Anpassung von ACLs, elektronischen Unterschriften,
Regeln und Übersichten unter Verwendung der eGov-Konfiguration.
Ein weiterer bedeutender Aspekt der Konfiguration der Fabasoft eGov-Suite, die Anpassung der Finalisierungsund Abfertigungsschritte, wurde bewusst ausgeklammert, da dieses Themengebiet bereits ausführlich in
[Kast05] behandelt wurde.
Dieses Buch sei gleichermaßen Consultants wie Administratoren empfohlen, da die Grundzüge der Konfiguration der Fabasoft eGov-Suite prägnant erörtert und durch zahlreiche Praxisbeispiele illustriert werden.
Als Ausgangsbasis für den Großteil der Beispiele im Buch dient der DOMEA-Standard, der die deutsche Ausprägung des Verwaltungshandelns beschreibt. Es wurde jedoch versucht, die vorgestellten Inhalte und Beispiele so allgemeingültig wie möglich zu halten.
1.1
zweck der konfiguration
Die Fabasoft eGov-Suite bietet eine Reihe von Mechanismen zur Anpassung der Standardfunktionalität der
Fabasoft eGov-Suite an anwender- und projektspezifische Gegebenheiten durch das Verändern oder Hinzufügen
von Konfigurationseinstellungen zur Umsetzung behördenspezifischer Vorgaben und Geschäftsregeln.
Die eGov-Konfiguration der Fabasoft eGov-Suite ist das zentrale Instrument, um auf einfache Weise Einstellungen unterschiedlichster Art vorzunehmen und so die Fabasoft eGov-Suite an die projektseitigen Anforderungen
anzupassen.
Die Verwendung der eGov-Konfiguration zur Anpassung der Fabasoft eGov-Suite an projektspezifische Anforderungen bietet zahlreiche Vorteile:
1.2
°
Weitgehende Vermeidung von Code: Projektspezifische Anforderungen müssen nicht „ausprogrammiert“
werden
°
Vermeidung von Redundanzen: Gleiche oder ähnliche Funktionalitäten müssen nicht in jedem Projekt neu
implementiert werden, wie etwa das Formatieren von Geschäftszahlen
°
°
Vermeidung potenzieller Fehlerquellen
Zeit- und Kostenersparnis bei der Umsetzung projektspezifischer Anforderungen
Länderspezifische Begriffe
In Deutschland, Österreich und der Schweiz haben sich im Laufe der Jahre eigene Ausprägungen des Verwaltungshandelns entwickelt, wodurch sich teilweise voneinander abweichende Begriffswelten gebildet haben. Um
die Leserlichkeit des Buches zu verbessern, bietet Tabelle 1 eine Gegenüberstellung der im Text verwendeten
Begriffe und der jeweiligen länderspezifischen Pendants.
BEGRIFF IM TEXT
DOMEA (DE)
ELAK (AT)
GEVER (CH)
Ablegen
Z.d.A.
Abgelegt
Abschliessen
Akte
Akte
Akt
Dossier
Aktennotiz
Aktennotiz
Aktennotiz
Dossier-Notiz
Aktenplan
Aktenplan
Aktenplan
Ordnungssystem
1. Einführung
1.1 Zweck der Konfiguration
1.2 Länderspezifische Begriffe
BEGRIFF IM TEXT
DOMEA (DE)
ELAK (AT)
GEVER (CH)
Aktenplaneintrag
Aktenplaneintrag
Sachgebiet
Ordnungsposition
Beilagen
Dokumente
Beilagen
Unterlagen
Eingangsstück
Eingangsdokument
Eingangsstück
Eingang
Erledigung
Ausgangsdokument
Erledigung
Ausgang
Geschäftsstücktyp
Dokumenttyp
Erledigungsgruppe
Vorlagenkategorie
Geschäftsstück
Dokument
Geschäftsstück
Unterlage
Internes Stück
Internes Dokument
Internes Stück
Intern
Protokollieren
Zuordnen
Protokollieren
Registrieren
Registrieren
Erfassen
Registrieren
Vorregistrieren
Schriftstück
Schriftstück
Schriftstück
Dokument
Umprotokollieren
Umschreiben
Umprotokollieren
Umregistrieren
Unterschrift
Zeichnung
Unterschrift
Unterschrift
Vertraulichkeitsstufe
Vertraulichkeitsstufe
Verschluss
Verschluss
Tabelle 1: Länderspezifische Begriffe
Weiters wird aus Gründen der einfacheren Lesbarkeit von einer strikten Unterscheidung der Objektklassen für
Akten abgesehen. Deshalb wird in diesem Buch der Begriff Akte zumeist synonym für Instanzen der Objektklassen Akte ([email protected]:File), Sachakt ([email protected]:SubjectAreaFile),
Sachakte ([email protected]:SubjectAreaFile) und Dossier ([email protected]:
Dossier) verwendet.
11
1.3
länderspezifische Standards
Dieser Abschnitt bietet eine kurze Übersicht über die Hierarchien der im deutschsprachigen Raum relevanten
Standards zur Akten- und Vorgangsbearbeitung.
DOMEA
Abbildung 1
Objekthierarchie des
DOMEA-Standards
Abbildung 1 stellt die Objekthierarchie des DOMEA-Standards schematisch dar. Die Elemente der Objekthierarchie des DOMEA-Standards werden in den folgenden Abschnitten kurz vorgestellt.
1. Einführung
1.3 Länderspezifische Standards
Aktenplan
Der Aktenplan ([email protected]:Fileplan) ist das zentrale Element zur hierarchischen Gliederung
der Akten nach ihrem sachlichen Inhalt. Durch den Aktenplan wird das anfallende Schriftgut in Gruppen zusammengefasst [KBSt05, Knaa99].
Aktenplaneintrag
Ein Aktenplaneintrag ([email protected]:SubjectArea) dient zur weiteren Untergliederung des
Aktenplans in Gruppen gleichartiger sachlicher Inhalte.
Sachakte
Eine Sachakte ([email protected]:SubjectAreaFile) ist eine sachbezogene, prozessgenerierte
Zusammenfassung von Vorgängen zu einer Sache oder einer Einzelmaßnahme einer Behörde, die aus der Bearbeitung entsteht und der zukünftigen Bearbeitung dient [KBSt05, Knaa99].
Vorgang
Im DOMEA-Standard steht der Vorgang ([email protected]:Procedure) im Mittelpunkt der informationstechnischen und organisatorischen Überlegungen [Knaa99].
In der Terminologie der öffentlichen Verwaltung wird der Begriff Vorgang in zwei unterschiedlichen Bedeutungen verwendet:
°
Stehen die einzelnen Objekte der Bearbeitung des Vorgangs im Mittelpunkt der Betrachtung, beschreibt der
Begriff Vorgang die Gesamtheit des diese Einzelmaßnahme betreffenden Schriftguts. Inhaltlich zusammengehörende Dokumente werden in einem Vorgang chronologisch geordnet zusammengefasst [KBSt05].
°
Aus der Prozesssicht wird ein Vorgang als die kleinste operationalisierte Einheit einer Verwaltungsmaßnahme mit einem abgeschlossenen, maßnahmebezogenen Arbeitsergebnis betrachtet. Im Vordergrund dieser Sichtweise steht der Ablauf bzw. der Bearbeitungsprozess des Vorgangs [Knaa99].
13
Die Doppeldeutigkeit des Begriffs ist den Mitarbeitern in der öffentlichen Verwaltung zumeist nicht bewusst und
auch nicht von Bedeutung. Erst mit der IT-Unterstützung der Vorgangsbearbeitung kommt der Unterscheidung
von Prozess- und Objektsicht Bedeutung zu, da aufgrund der Abkehr vom Papier und dem Beginn der elektronischen Bearbeitung erstmals eine Trennung von Objekt und Prozess erfolgt.
Band
Ein Band ([email protected]:Volume) ermöglicht die chronologische Aufteilung der Vorgänge einer
Akte. Bei umfangreichen Akten sind innerhalb der Akte Bände zu bilden, in denen die Vorgänge eines bestimmten Zeitraums chronologisch abgelegt werden [Knaa99].
Dokument
Ein Dokument ([email protected]:Document) bildet die Grundlage der Bearbeitung von Geschäftsvorfällen. Im DOMEA-Standard wird zwischen zwei Arten von Dokumenten unterschieden:
°
°
Eingangsdokument ([email protected]:Incoming)
Ausgangsdokument ([email protected]:Settlement)
Schriftstück
Schriftstücke bilden als Träger des Inhalts die kleinste Einheit des Schriftguts [Knaa99]. Dabei kann es sich zum
Beispiel um Microsoft Word-Dokumente oder PDF-Dokumente handeln. Im Rahmen der Vorgangsbearbeitung
werden ein oder mehrere Schriftstücke einem Dokument zugeordnet.
1. Einführung
1.3 Länderspezifische Standards
ELAK
Abbildung 2 zeigt die Objekthierarchie des ELAK-Standards, der in den österreichischen Bundesministerien eingesetzt wird. Auf die einzelnen Ebenen der Objekthierarchie des ELAK-Standards wird an dieser Stelle nicht
näher eingegangen.
Abbildung 2
Objekthierarchie des
ELAK-Standards
15
GEVER
Abbildung 3 zeigt die Objekthierarchie des in der Schweiz verwendeten GEVER-Standards. Auf die Hierarchieebenen des GEVER-Standards wird in diesem Buch nicht näher eingegangen.
Abbildung 3
Objekthierarchie des
GEVER-Standards
1. Einführung
1.3 Länderspezifische Standards
17
2
19
2 Grundlagen
In diesem Kapitel werden dem Leser grundlegende Informationen zum Aufbau der eGov-Konfiguration vermittelt. Weiters wird die für das Verständnis der folgenden Kapitel wichtige, von der Fabasoft eGov-Suite zur Verfügung gestellte Funktionalität kurz beleuchtet.
2.1
Allgemeines zum Aufbau der eGov-Konfiguration
Objekte der Objektklasse eGov-Konfiguration ([email protected]:ELAKConfigurationClass)
dienen zur Anpassung der Fabasoft eGov-Suite an projektseitige Erfordernisse.
Mit der Softwarekomponente [email protected] werden bereits zwei Instanzen der Objektklasse eGovKonfiguration ([email protected]:ELAKConfigurationClass) mitgeliefert:
Das Objekt Konfiguration ([email protected]:ELAKConfiguration) ist das Standardkonfigurationsobjekt der Fabasoft eGov-Suite und dient zur allgemeinen Konfiguration.
Das Objekt Konfiguration für Geschäftsstücke ([email protected]:SubFileConfig) dient zur
Konfiguration der Formatierung des Namens von Geschäftsstücken.
Für jeden Fabasoft Components Mandanten gibt es zu jedem Zeitpunkt genau eine aktive allgemeine eGovKonfiguration sowie eine aktive eGov-Konfiguration für Geschäftsstücke.
Die aktive allgemeine eGov-Konfiguration wird im Objekt Aktuelle Domäne bzw. im Fabasoft Components
Mandanten in der Eigenschaft eGov-Konfiguration ([email protected]:clientdomconf) eingetragen. Die aktive eGov-Konfiguration für Geschäftsstücke wird in der Eigenschaft eGov-Konfiguration für
Geschäftsstücke ([email protected]:clientdomsubconf) hinterlegt.
Hierarchie der eGov-Konfigurationen
Instanzen der Objektklasse eGov-Konfiguration können auf anderen eGov-Konfigurationen basieren und
beschreiben somit eine Hierarchie. Die Eigenschaft Basis-Konfiguration ([email protected]:
confbaseconf) einer eGov-Konfiguration speichert einen Zeiger auf deren übergeordnete eGov-Konfiguration. Derartige Konfigurationshierarchien können mehrere Ebenen umfassen, wie schematisch in Abbildung 4
dargestellt.
Abbildung 4
Hierarchie der
eGov-Konfigurationen
Die Auswertung der Konfigurationshierarchie erfolgt ausgehend von der aktiven eGov-Konfiguration, die bei der
aktuellen Domäne eingetragen ist. Diese gilt als die speziellste eGov-Konfiguration, sodass darin definierte Einstellungen die Einstellungen übergeordneter eGov-Konfigurationen überschreiben.
2. Grundlagen
2.1 Allgemeines zum Aufbau der eGov-Konfiguration
In übergeordneten eGov-Konfigurationen definierte Einstellungen werden also von den Einstellungen in den
untergeordneten eGov-Konfigurationen übersteuert. Wenn bei der Auswertung in einer untergeordneten eGovKonfiguration kein passender Eintrag gefunden werden kann, werden die Werte aus den übergeordneten eGovKonfigurationen herangezogen. Auf diese Weise werden bestehende Einstellungen aus den Basis-Konfigurationen geerbt, diese können jedoch bei Bedarf durch die untergeordneten eGov-Konfigurationen überschrieben
werden.
Beispiel
Beim Registrieren eines Schriftstücks zu einem neuen Geschäftsstück werden die angebotenen Objektklassen durch eine Objektzeiger-Referenzierung für den Auslöser ([email protected]:
usagetriggers) [email protected]:AcceptObject bestimmt.
Nun ist sowohl in der mit der Softwarekomponente [email protected] mitgelieferten Standardkonfiguration Konfiguration ([email protected]:ELAKConfiguration) als auch in der Vorkonfiguration (DOMEA) ([email protected]:DOMEAPreConfiguration) in der Eigenschaft Referenzierung von Eigenschaften ([email protected]:viewusage) ein Eintrag für die
Objektklasse Objekt ([email protected]:Object) und den Auslöser [email protected]:
AcceptObject definiert.
Da in einer DOMEA-Lösung üblicherweise die Vorkonfiguration (DOMEA) oder eine davon abgeleitete
Projektkonfiguration in der Eigenschaft eGov-Konfiguration der aktuellen Domäne hinterlegt wird, überschreibt in dieser Lösung der Eintrag in der Vorkonfiguration (DOMEA) den Eintrag in der Konfiguration
von [email protected]. Dies ist dadurch begründet, dass die eGov-Konfigurationen ausgehend von der
bei der aktuellen Domäne hinterlegten eGov-Konfiguration schrittweise „nach oben“ ausgewertet werden,
bis ein passender Eintrag gefunden wird. Der erste passende Eintrag in der Konfigurationshierarchie wird
für die Weiterverarbeitung verwendet.
21
Weiters ist zu beachten, dass die jeweilige mandantenspezifische eGov-Konfiguration in jedem Fabasoft Components Mandanten einzutragen ist. Wird in einem Fabasoft Components Mandanten keine mandantenspezifische eGov-Konfiguration hinterlegt, wird die mit der Fabasoft eGov-Suite mitgelieferte eGov-Konfiguration verwendet. Die in der aktuellen Domäne referenzierte eGov-Konfiguration wird nicht für Fabasoft Components
Mandanten herangezogen.
Auswertung der Objektklasse
Der Großteil der Konfigurationseigenschaften der eGov-Konfiguration besteht aus zusammengesetzten Eigenschaften, deren erster Schlüssel die Eigenschaft Objektklasse ([email protected]:objclass) ist.
Die Auswertung dieser Konfigurationseigenschaften erfolgt stets in der gleichen Weise:
°
Als Objektklasse wird die Objektklasse des Objekts verwendet, auf das die Aktion zur Auswertung der
eGov-Konfiguration angestoßen wurde.
°
Die Aktion zur Auswertung der eGov-Konfiguration versucht, aus der entsprechenden Konfigurationseigenschaft den speziellsten Eintrag für die Objektklasse zu ermitteln.
°
Kann in der aktuellen eGov-Konfiguration für die Objektklasse des Objekts kein passender Eintrag ermittelt
werden, wird nach Konfigurationseinträgen für eine der Basisklassen der Objektklasse des Objekts gesucht.
°
Wenn auch für die Basisklassen kein passender Eintrag gefunden wird, werden die Basis-Konfigurationen
durchsucht, wobei wiederum versucht wird, die speziellsten Einträge für die Objektklasse des Objekts zu
ermitteln.
Die Verwendung der Objektklasse Objekt ([email protected]:Object) als Objektklasse
([email protected]:objclass) bietet die generischste Möglichkeit, Konfigurationseinstellungen zu
definieren, da jedes Objekt in Fabasoft Components indirekt von der Objektklasse Objekt abgeleitet ist.
Bei der Definition von Konfigurationseinträgen empfiehlt es sich jedoch zumeist, diese so speziell wie möglich
zu halten, um nicht unabsichtlich generische Konfigurationseinträge der Basis-Konfigurationen zu überschreiben.
2. Grundlagen
2.1 Allgemeines zum Aufbau der eGov-Konfiguration
2.2 TriStep
Einschränken der dargestellten Eigenschaften
Da sich die eGov-Konfiguration – samt den von den Softwarekomponenten [email protected],
[email protected] usw. hinzugefügten Erweiterungen – aus über 120 Konfigurationseigenschaften aufbaut,
gibt es die Möglichkeit, die dargestellten Eigenschaften einzuschränken, sodass nur das Subset an Konfigurationseigenschaften angezeigt wird, das im jeweiligen Fall auch tatsächlich benötigt wird.
Hierfür sind die anzuzeigenden Eigenschaften in der eGov-Konfiguration auf der Registerkarte Eigenschaften
in der Eigenschaft Sichtbare Eigenschaften ([email protected]:visibleattrs) einzutragen. Die
nicht benötigten Konfigurationseigenschaften werden dann ausgeblendet.
Beispiel
Für ein Projekt wird eine neue Instanz der Objektklasse eGov-Konfiguration erzeugt, welche auf der Vorkonfiguration (DOMEA) aufbaut. Da für das Projekt lediglich die Formatierung des Namens der Akten
angepasst werden muss, ist es ausreichend, die Eigenschaft Objektklassenformatierungen
([email protected]:objclassformatlist) der eGov-Konfiguration anzuzeigen. Daher wird
die Eigenschaft Objektklassenformatierungen in der neu erzeugten eGov-Konfiguration in der Eigenschaft Sichtbare Eigenschaften eingetragen.
2.2
TriStep
TriStep bezeichnet eine spezielle, von der Softwarekomponente [email protected] zur Verfügung gestellte Methodenimplementierung des Objektkonstruktors [email protected]:ObjectConstructor.
Die TriStep-Methodenimplementierung wurde aufgrund folgender Anforderungen entwickelt:
°
Vor der Anzeige des Konstruktorformulars soll das neue Objekt bereits mit Metadaten initialisiert werden.
°
Ein Benutzer soll die Möglichkeit haben, schon im Rahmen des Erzeugens eines neuen Objekts, Metadaten
in einem Konstruktorformular zu erfassen.
23
°
Nach Abschluss der Beabeitung durch den Benutzer sollen weitere automatische Berechnungen ermöglicht
werden.
Um den Objektkonstruktor einer Objektklasse als TriStep zu implementieren, muss die Aktion
[email protected]:ObjectConstructor mit der Methodendefinition [email protected]:
TriStepMethod überschrieben werden.
Die Objektkonstruktoren einer Vielzahl von Objektklassen sind bereits standardmäßig als TriStep implementiert,
unter anderem auch die Objektkonstruktoren der Objektklassen Aktenplaneintrag ([email protected]:
SubjectArea), Akte ([email protected]:File) und Geschäftsstück ([email protected]:
SubFile).
Abbildung 5
Aufbau eines TriSteps
2. Grundlagen
2.2 TriStep
2.3 Tracing in Fabasoft Components Expressions
Ist der Objektkonstruktor einer Objektklasse als TriStep implementiert, werden im Rahmen des Erzeugens einer
neuen Instanz der Objektklasse die folgenden Aktionen (wie in Abbildung 5 dargestellt) aufgerufen:
°
°
°
Die Aktion [email protected]:PreGUI führt vorbereitende Initialisierungsschritte aus.
Die Aktion [email protected]:DispGUI sorgt für die Anzeige des Konstruktorformulars.
Die Aktion [email protected]:PostGUI führt abschließende Initialisierungsschritte zur Verwertung
der vom Benutzer eingegebenen Informationen aus. Diese Informationen werden zum Beispiel für die Initialisierung von Prozessen herangezogen.
Konstruktorformular
Im Rahmen der TriStep-Methodenimplementierung wird beim Erzeugen eines neuen Objekts das Konstruktorformular angezeigt. Hierbei handelt es sich um das Formular, das bei der Objektklasse des erzeugten Objekts in
der zusammengesetzten Eigenschaft Formulare ([email protected]:classviews) für die Aktion
([email protected]:viewaction) [email protected]:ObjectConstructor in der Eigenschaft
Formular ([email protected]:viewformsobjs) eingetragen wurde.
2.3
Tracing in Fabasoft Components Expressions
In vielen Fällen erfordert die Konfiguration der Fabasoft eGov-Suite die Anpassung eines Ausdrucks in der eGovKonfiguration.
Um die Erstellung und Verwendung von Ausdrücken zu vereinfachen, stellt die Softwarekomponente
[email protected] eine Reihe von hilfreichen Aktionen, unter anderem für das Tracing von Variablen, zur
Verfügung.
25
Quelltext 1 zeigt einige Beispiele für das Tracing von Variablen in Ausdrücken. Die entsprechenden Werte werden im Fabasoft Components Tracer ausgegeben.
/* @myvar im Tracer ausgeben */
@myvar = "Hello world!"; [email protected]:TraceValue(@myvar);
/* Lokalen Scope im Tracer ausgeben */
[email protected]:TraceValue(this);
/* Globalen Scope im Tracer ausgeben */
[email protected]:TraceValue(::this);
/* Transaktionsvariablen im Tracer ausgeben */
[email protected]:TraceTransaction();
Quelltext 1: Tracing in Fabasoft Components Expressions
An dieser Stelle sei die Lektüre von [KlWi04] empfohlen, die eine vertiefende Einführung in die Fabasoft
Components Expression Language und den Umgang mit Ausdrücken bieten.
2. Grundlagen
2.3 Tracing in Fabasoft Components Expressions
27
3
Initialisierung und
3 Anpassung von Werten
In diesem Kapitel werden die umfangreichen zur Initialisierung und Formatierung von Werten zur
Verfügung gestellten Möglichkeiten der eGov-Konfiguration betrachtet.
3.1
Initialisierung von Werten
Die eGov-Konfiguration bietet einen mächtigen Mechanismus zur Initialisierung von Werten in Abhängigkeit von
vordefinierten Auslösern.
In der eGov-Konfiguration können auf der Registerkarte Allgemein in der Eigenschaft Initialisierung
([email protected]:objinitconfig) konfigurierbare Initialisierungsschritte hinterlegt werden, die in
definierten Situationen von der als Regel implementierten Aktion [email protected]:InitObj ausgewertet werden.
Für jede in der Eigenschaft Initialisierung hinterlegte Initialisierungsdefinition sind folgende Eigenschaften
auszufüllen:
°
Die Eigenschaft Quelle ([email protected]:initsrcclass) definiert die Objektklasse des
Objekts, von dem die Initialisierungswerte stammen.
°
Die Eigenschaft Ziel ([email protected]:inittargetclass) bestimmt die Objektklasse des zu
initialisierenden Objekts.
°
Die Eigenschaft Auslöser ([email protected]:inittrigger) legt fest, für welchen Kontext die
Initialisierungsdefinition gilt.
°
Die zusammengesetzte Eigenschaft Schritte ([email protected]:initwork) enthält die auszuführenden Initialisierungsschritte.
Tabelle 2 gibt einen Überblick, in welchen Situationen die Aktion [email protected]:InitObj auf ein zu
initialisierendes Objekt aufgerufen wird. Im ersten Parameter wird der Aktion das Quellobjekt übergeben, im
zweiten Parameter der Auslöser, für den die Initialisierung erfolgen soll.
29
AKTION/AUSLÖSER
BESCHREIBUNG
[email protected]:AttachObj
Initialisierung eines Objekts, wenn dieses einer Akte
oder einem Geschäftsstück zugeordnet wird.
[email protected]:
RemoveAttachedObj
Initialisierung eines Objekts, wenn dieses aus einer
Akte oder einem Geschäftsstück entfernt wird.
[email protected]:
CreateInstance
Initialisierung eines aus einer Dokumentvorlage erzeugten Schriftstücks.
[email protected]:
CreateInstances
Initialisierung eines Geschäftsstücks beim Instanzieren
eines Schriftstücks aus einer Dokumentvorlage des
Geschäftsstücks.
[email protected]:
CreateReturnReceipts
Initialisierung eines im Rahmen der Finalisierung neu
erzeugten Rückscheins.
[email protected]:
CreateOutgoingEnvelope
Initialisierung beim Erzeugen eines Ausgangsstücks,
wenn ein Mail-Objekt per Drag & Drag auf einen Verteiler gezogen wird.
[email protected]:
CreateOutgoingFromIncoming
Arbeitsschritt-Wrapper zur Initialisierung eines Ausgangsstücks aus einem Eingangsstück.
[email protected]:
GetAddresseeFromEMail
Initialisierung eines neu erzeugten Adressaten aus
einer E-Mail.
3. Initialisierung und Anpassung von Werten
3.1 Initialisierung von Werten
AKTION/AUSLÖSER
BESCHREIBUNG
[email protected]:
InitAfterChange
Initialisierung nach einer Änderung eines Objekts
(sofern die Aktion [email protected]:
InitAfterChange bei der betreffenden Eigenschaft als Set-Aktion eingetragen ist); zum Beispiel
wenn sich der Bearbeitungsstatus
([email protected]:fileprocstate) ändert.
[email protected]:
InitAfterCopy
Initialisierung nach dem Duplizieren eines Objekts.
[email protected]:InitFile
Initialisierung einer neuen Akte aus einem Quellobjekt.
[email protected]:InitNew
Initialisierung einer in einem Aktenplaneintrag neu
erzeugten Akte bzw. Initialisierung eines in einer Akte
oder einem Geschäftsstück neu erzeugten Geschäftsstücks.
[email protected]:PreGUI
Initialisierung von Objekten im Rahmen von
[email protected]:PreGUI.
[email protected]:
ObjectConstructor
Initialisierung von Objekten im Rahmen von
[email protected]:PostGUI.
[email protected]:
ReAssignObject
Initialisierung beim Umprotokollieren einer Akte bzw.
eines Geschäftsstücks.
[email protected]:
PropagateReAssignObject
Initialisierung eines Objekts beim Weiterführen der
Unterschriftenart [email protected]:
SIGN_REASSIGN.
Tabelle 2: Auslöser von Initialisierungen
31
Wird in der eGov-Konfiguration in der Eigenschaft Initialisierung eine Initialisierungsdefinition gefunden, für
die sowohl die Objektklassen von Quell- und Zielobjekt, als auch der Auslöser mit den an die Aktion
[email protected]:InitObj übergebenen Werten übereinstimmen, wird die Initialisierungsdefinition
ausgewertet. Bei der Auswertung werden auch die von Quell- und Zielobjektklasse abgeleiteten Objektklassen
berücksichtigt. Wird kein Eintrag gefunden, werden die übergeordneten eGov-Konfigurationen nach einer
passenden Initialisierungsdefinition durchsucht.
Wenn bei der Auswertung eine gültige Initialisierungsdefinition ermittelt werden kann, werden die in der zusammengesetzten Eigenschaft Schritte hinterlegten Initialisierungsschritte ausgeführt:
°
Der Ausdruck in der Eigenschaft Ausdruck (Quelle) ([email protected]:initstepsrcexpr)
gibt an, mit welchem Wert das Ziel befüllt werden soll. Dabei ist Folgendes zu beachten:
°
°
°
°
Das zu initialisierende Objekt steht im lokalen Scope this zur Verfügung.
Das Quellobjekt liegt im globalen Scope unter dem Schlüssel ::source, das Zielobjekt unter dem
Schlüssel ::target.
Auf den Auslöser kann unter dem Schlüssel ::trigger zugegriffen werden.
Der Schlüssel ::info enthält die aktuell ausgewertete Zeile der Initialisierungsschritte.
Nach der Auswertung von Ausdruck (Quelle) zur Ermittlung eines Quellwerts wird der in der Eigenschaft Ausdruck (Ziel) ([email protected]:initsteptargetexpr) hinterlegte Ausdruck ausgewertet. Der
Quellwert wird im globalen Scope unter dem Schlüssel ::value zur Verfügung gestellt.
In der Eigenschaft Pfad ([email protected]:initsteppath) kann ein Eigenschaftspfad hinterlegt
werden, in dem der durch Auswertung von Ausdruck (Quelle) ermittelte Wert gespeichert wird.
3. Initialisierung und Anpassung von Werten
3.1 Initialisierung von Werten
Die boolesche Eigenschaft Ersetzen ([email protected]:initstepreplace) gibt an, ob ein eventuell bereits vorhandener Wert überschrieben werden soll. Wenn die Eigenschaft auf den Wert „Ja“ gesetzt
wird, werden existierende Werte in der Zieleigenschaft mit dem ermittelten Wert überschrieben. Wird die
Eigenschaft auf den Wert „Nein“ gesetzt, wird der Wert einer skalaren Zieleigenschaft nicht geändert, wenn
bereits ein Wert für die Eigenschaft definiert wurde. Handelt es sich bei der Zieleigenschaft um eine Listeneigenschaft, wird der ermittelte Wert zu den existierenden Werten hinzugefügt.
Abbildung 6
Initialisierungsdefinitionen
33
Beispiel
Anforderung
Wenn in einer Akte ein neuer Vorgang erzeugt wird, sollen die Eigenschaften Zuständiger Referent
([email protected]:fileresponsible) und Zuständige OE ([email protected]:
fileresporg) von der Akte in den Vorgang übernommen werden.
Lösungsansatz
Im Rahmen des Erzeugens eines Vorgangs in einer Akte wird die Aktion [email protected]:
InitNew aufgerufen, welche die in der eGov-Konfiguration eingetragenen Initialisierungsdefinitionen
auswertet.
Wenn die Aktion in den Initialisierungsdefinitionen einen passenden Eintrag für den Auslöser
[email protected]:InitNew findet, werden die in der zusammengesetzten Eigenschaft Schritte
definierten Initialisierungsschritte ausgeführt. Bei der Auswertung der Ausdrücke stehen als Quelle die
Akte unter dem Schlüssel ::source und als Ziel der Vorgang unter ::target im globalen Scope zur
Verfügung.
Abbildung 6 zeigt den entsprechenden Eintrag in den Initialisierungsdefinitionen der Eigenschaft Initialisierung. Dieser Eintrag sorgt für die Initialisierung der Eigenschaften Zuständiger Referent und Zuständige OE, wenn ein neuer Vorgang in einer Akte erzeugt wird.
Um die in der eGov-Konfiguration hinterlegten Initialisierungsschritte möglichst generisch und flexibel definieren zu können, stellt die eGov-Konfiguration zusätzlich zur Eigenschaft Initialisierung auch noch die Eigenschaften Ausdrücke für die Initialisierung ([email protected]:initctxexprs) und Werteverzeichnisse für die Initialisierung ([email protected]:initctxdicts) zur Verfügung. Diese Eigenschaften ermöglichen die Verwendung einer zusätzlichen Abstraktionsebene bei der Definition der Ausdrücke für
die Initialisierungsschritte. Weitere Informationen hierzu finden Sie im Kapitel „Auswertung von Ausdrücken“
auf Seite 80.
3. Initialisierung und Anpassung von Werten
3.1 Initialisierung von Werten
TriStep-Initialisierungen
Wenn der Objektkonstruktor einer Objektklasse als TriStep implementiert ist, erfolgen im Rahmen des Erzeugens
einer neuen Instanz der Objektklasse eine PreGUI- und eine PostGUI-Initialisierung.
Die PreGUI-Initialisierung findet vor der Anzeige des Konstruktorformulars statt. Die initialisierten Werte sind
also für den Benutzer im Konstruktorformular bereits sichtbar, wenn dieses im Rahmen des Aufrufs von
[email protected]:DispGUI angezeigt wird. Als Auslöser für die PreGUI-Initialisierung wird die
Aktion [email protected]:PreGUI verwendet. Tabelle 3 zeigt die Schlüssel, die während der PreGUIInitialisierung im globalen Scope ::this zur Verfügung stehen.
Nach dem Schließen des Konstruktorformulars durch Betätigen der Schaltfläche Weiter bzw. nach dem Betätigen der Schaltfläche Übernehmen wird die PostGUI-Initialisierung angestoßen, wobei als Auslöser jedoch die
Aktion [email protected]:ObjectConstructor verwendet wird. Tabelle 3 zeigt die Schlüssel, die
während der PostGUI-Initialisierung im globalen Scope ::this zur Verfügung stehen.
SCHLÜSSEL
BESCHREIBUNG
source
Die unter diesen Schlüsseln abgelegten Werte referenzieren das erzeugte
Objekt.
target
trigger
Der Wert dieses Schlüssels enthält die die PostGUI-Initialisierung auslösende
Aktion, also [email protected]:PreGUI bzw. [email protected]:
ObjectConstructor.
replace
Dieser Schlüssel speichert den in der eGov-Konfiguration in der
Initialisierungsdefinition in der Eigenschaft Ersetzen festgelegten Wert.
Tabelle 3: Globaler Scope bei der PreGUI- und PostGUI-Initialisierung
35
Beispiel
Anforderung
Die
Frist
([email protected]:offltdeadline),
der
Aussonderungsstatus
([email protected]:offltdispstate) und der Aufbewahrungsort ([email protected]:
offltrepository) für die Aussonderung einer Akte sollen vom Aktenplaneintrag
([email protected]:apentry) übernommen werden, wenn der Benutzer beim Erzeugen der Akte im
Konstruktorformular keine entsprechenden Werte definiert.
Lösungsansatz
Beim Erzeugen einer Akte muss der Benutzer im Konstruktorformular einen Aktenplaneintrag auswählen.
Da der Wert der Eigenschaft Aktenplaneintrag also erst zum Zeitpunkt des Aufrufs von
[email protected]:PostGUI feststeht, empfiehlt sich eine PostGUI-Initialisierung zur Übernahme
der Werte für die Aussonderung vom Aktenplaneintrag in die Akte.
Hierzu muss in der eGov-Konfiguration in der Eigenschaft Initialisierung eine Initialisierungsdefinition für
den Auslöser [email protected]:ObjectConstructor eingetragen werden, wobei als Quelle
die Objektklasse Aktenplaneintrag ([email protected]:SubjectArea) und als Ziel die Objektklasse Akte ([email protected]:SubjectAreaFile) zu verwenden sind.
In der Eigenschaft Schritte sind Initialisierungsschritte zu definieren, die die Werte der Eigenschaften
Frist, Aussonderungsstatus und Aufbewahrungsort vom Aktenplaneintrag in die entsprechenden
Eigenschaften der Sachakte übernehmen. Der Aktenplaneintrag steht während der Auswertung der Initialisierungsschritte unter dem Schlüssel ::source im globalen Scope zur Verfügung.
Der Wert der Eigenschaft Ersetzen muss auf „Nein“ gesetzt werden, damit vom Benutzer im Konstruktorformular für die neue Akte definierte Werte nicht überschrieben werden, sondern die Initialisierung nur
erfolgt, wenn der Benutzer keine Werte angegeben hat.
3. Initialisierung und Anpassung von Werten
3.1 Initialisierung von Werten
3.2 Formatierung von Werten
Initialisierungsinhalte
Die eGov-Konfiguration ermöglicht die Hinterlegung von Initialisierungsinhalten für Eigenschaften des Typs
[email protected]:Content auf der Registerkarte Inhalte/Text-Dokumente in der Eigenschaft Initialisierungsinhalte ([email protected]:initcontents).
In der zusammengesetzten Eigenschaft Initialisierungsinhalte ist die zu initialisierende Eigenschaft als Auslöser ([email protected]:initcontctx) einzutragen. Der Initialisierungsinhalt ist in der Eigenschaft
Inhalt ([email protected]:initcontent) zu hinterlegen. Da die Eigenschaft Inhalt mehrsprachige
Initialisierungsinhalte unterstützt, ist überdies die Sprache ([email protected]:language) des Initialisierungsinhalts festzulegen.
Die Initialisierung von Inhalten wird von der Aktion [email protected]:GetInitContent durchgeführt, die als Pre-Wrapper der Aktion [email protected]:AttrContentGet eingehängt ist. Daher ist
dafür zu sorgen, dass die Aktion [email protected]:AttrContentGet bei der zu initialisierenden
Eigenschaft als Get-Aktion eingetragen wurde, wie dies unter anderem bei der Eigenschaft Hauptinhalt
([email protected]:content) der Fall ist.
Weiters ist zu beachten, dass die Initialisierung von Inhalten nur durchgeführt wird, wenn die Regel
[email protected]:GetInitContent aktiviert ist. Weitere Informationen hierzu finden Sie im Kapitel „Regeln“ auf Seite 103.
3.2
Formatierung von Werten
Die eGov-Konfiguration stellt umfangreiche Funktionalitäten zur Formatierung von Werten zur Verfügung:
°
°
Objektklassenformatierungen dienen vor allem zur Bildung des Namens von Objekten.
Einfache Wertformatierungen werden zur Formatierung von Dokumenteigenschaften, Seriendruckfeldern,
Fehlermeldungen und anderen Zeichenketten verwendet.
37
°
Komplexe Dokumentdarstellungen basieren auf XML und dienen zur Formatierung großer, komplexer Datenstrukturen. Weitere Informationen hierzu finden Sie im Kapitel „Übersichten“ auf Seite 161.
In den folgenden Abschnitten wird ein kompakter Überblick über die vielfältigen Möglichkeiten zur Formatierung
von Werten unter Verwendung der eGov-Konfiguration gegeben.
Objektklassenformatierungen
Objektklassenformatierungen legen fest, wie die Namen von Objekten gebildet werden sollen. Darüber hinaus
können Objektklassenformatierungen zur Formatierung beliebiger anderer Zeichenketteneigenschaften verwendet werden.
Die Formatierungseinstellungen sind in der eGov-Konfiguration auf der Registerkarte Formatierung
in der zusammengesetzten Eigenschaft Objektklassenformatierungen ([email protected]:
objclassformatlist) zu definieren:
°
In der Eigenschaft Eigenschaft ([email protected]:formatattr) ist die zu formatierende Eigenschaft einzutragen.
°
Die Formatierungseinstellungen sind in der zusammengesetzten Eigenschaft Eigenschaftsformatierungen ([email protected]:attrformatlist) zu hinterlegen:
°
In der Eigenschaft Zugriffspfad ([email protected]:formatattrlist) ist ein Eigenschaftspfad zur Ermittlung des zu formatierenden Werts zu definieren.
°
Zur Formatierung der Werte des in der Eigenschaft Zugriffspfad referenzierten Eigenschaftspfades
können in der Eigenschaft Format ([email protected]:formatstring) die in Tabelle 4 angeführten Platzhalter verwendet werden.
3. Initialisierung und Anpassung von Werten
3.2 Formatierung von Werten
PLATZHALTER
BESCHREIBUNG
%s
Der Platzhalter %s dient zur Ausgabe von Zeichenketteneigenschaften.
%ld
Der Platzhalter %ld dient zur Ausgabe von Zahleneigenschaften.
%f
Der Platzhalter %f dient zur Ausgabe von Gleitkommazahleneigenschaften.
<d>
Der Platzhalter <d> dient zur Ausgabe des Datums von Eigenschaften mit
Datum und Zeit. Einzelne Datumskomponenten können unter Verwendung der
Platzhalter dd, MM und yyyy ausgegeben werden.
<t>
Der Platzhalter <t> dient zur Ausgabe der Zeit von Eigenschaften mit Datum
und Zeit. Einzelne Zeitkomponenten können unter Verwendung der Platzhalter
hh, mm und ss ausgegeben werden.
Tabelle 4: Platzhalter für die Formatierung von Eigenschaftswerten
Beispiele
Um die Zahleneigenschaft Laufende Nummer ([email protected]:ordinal) als vierstellige Zahl
mit führenden Nullen auszugeben, ist folgender Format-Platzhalter zu verwenden: %04ld
Zur Berechnung der Eigenschaft Jahr ([email protected]:year) wird folgender Format-Platzhalter
verwendet: <d>yyyy
39
Anstelle der Eigenschaftsformatierungen kann in der Eigenschaft Formatierung dynamisch ermitteln
([email protected]:getfmtact) eine Aktion zum Ermitteln der Formatierung eingehängt werden, die
dann zur Berechnung der Formatierungseinstellungen aufgerufen wird.
Die Auswertung der Objektklassenformatierungen erfolgt durch die Aktion [email protected]:
VirtualValueGet, die basierend auf den in der Eigenschaft Objektklassenformatierungen hinterlegten Einstellungen eine formatierte Zeichenkette berechnet.
Formatierung des Namens von Objekten
Zum Speichern des Namens eines Objekts wird in Fabasoft Components die Aktion
[email protected]:AttrObjNameSet aufgerufen, die als Set-Aktion bei der Eigenschaft Name
([email protected]:objname) eingetragen ist.
Die Implementierung der Aktion [email protected]:AttrObjNameSet wird von der Softwarekomponente [email protected] für die Objektklassen Akte ([email protected]:File), Geschäftsstück
([email protected]:SubFile) und Aktenplaneintrag ([email protected]:SubjectArea)
sowie für einige andere Objektklassen überschrieben, sodass beim Speichern des Namens von Instanzen der
angeführten Objektklassen die Aktion [email protected]:VirtualValueGet aufgerufen wird.
Die Aktion [email protected]:VirtualValueGet wertet die in der eGov-Konfiguration in der Eigenschaft Objektklassenformatierungen eingetragenen Formatierungseinstellungen aus. Sofern ein passender
Eintrag gefunden werden kann, wird daraus der Objektname gebildet.
3. Initialisierung und Anpassung von Werten
3.2 Formatierung von Werten
Abbildung 7
Objektklassenformatierungen
Beispiel
Anforderung
Die Eigenschaft Name ([email protected]:objname) einer Sachakte soll aus der Eigenschaft
Aktenführende Organisationseinheit ([email protected]:fileouobj), dem Aktenplankennzeichen ([email protected]:apentry) und der Eigenschaft Laufende Nummer
([email protected]:ordinal) gebildet werden.
41
Lösungsansatz
In der eGov-Konfiguration muss in der Eigenschaft Objektklassenformatierungen ein entsprechender
Eintrag für die Eigenschaft Name definiert werden, der in der Liste der Eigenschaftsformatierungen Formatierungszeilen für die Zugriffspfade Aktenführende Organisationseinheit, Aktenplankennzeichen und Laufende Nummer enthält.
Im in Abbildung 7 dargestellten Beispiel wird die Laufende Nummer fünfstellig mit führenden Nullen formatiert und mit einem Schrägstrich vom Aktenplankennzeichen abgegrenzt, das wiederum mit einem
Bindestrich von Aktenführende Organisationseinheit abgegrenzt wird.
Formatierung des Namens von Geschäftsstücken
Ebenso wie für Akten, wird auch beim Speichern des Namens von Objekten der Objektklasse Geschäftsstück
([email protected]:SubFile) die Aktion [email protected]:VirtualValueGet aufgerufen,
die die Objektklassenformatierungen zur Bildung des Objektnamens auswertet.
Für die mit der eGov-Konfiguration standardmäßig mitgelieferten Formatierungseinstellungen für Geschäftsstücke ist in der Eigenschaft Formatierung dynamisch ermitteln die Aktion [email protected]:
GetAlternateFormat hinterlegt, die zum dynamischen Ermitteln des Objektnamens von Geschäftsstücken unter Verwendung der eGov-Konfiguration für Geschäftsstücke dient.
Die Aktion [email protected]:GetAlternateFormat durchsucht die Eigenschaft Objektklassenformatierungen der eGov-Konfiguration für Geschäftsstücke nach einem passenden Formatierungseintrag.
Wurde ein Geschäftsstück noch nicht zu einer Akte protokolliert, wird die Eigenschaft Name
([email protected]:objname) von der Aktion [email protected]:GetAlternateFormat als
Eigenschaft zur Ermittlung des Formatierungseintrags herangezogen. Für bereits protokollierte Geschäftsstücke wird stattdessen die Eigenschaft Name des Geschäftsstücks ([email protected]:subfilename) zur Ermittlung des passenden Eintrags verwendet.
3. Initialisierung und Anpassung von Werten
3.2 Formatierung von Werten
Die Implementierung der Aktion [email protected]:AttrObjNameSet für Geschäftsstücke sorgt überdies auch für die Neuberechnung des Namens der untergeordneten Objekte, wenn sich der Name eines
Geschäftsstücks ändert. Dieses Verhalten kann jedoch durch eine Regel deaktiviert werden. Genauere Informationen hierzu finden Sie im Kapitel „Regeln“ auf Seite 103.
Formatierung des Namens sonstiger Objektklassen
Wird die Aktion [email protected]:AttrObjNameSet in einer Objektklasse mit der externen Methode
ELAK.ELAKGenericSet überschrieben, wird der Name von Instanzen der betreffenden Objektklasse
unter Berücksichtigung der in der eGov-Konfiguration definierten Objektklassenformatierungen gebildet.
Es gilt zu beachten, dass die Aktion [email protected]:AttrObjNameSet nur aufgerufen wird, wenn
die Eigenschaft Name ([email protected]:objname) geändert wird.
Formatierung abhängiger Eigenschaften
In manchen Fällen ist es notwendig, den Wert einer mithilfe der Objektklassenformatierungen formatierten
Eigenschaft neu zu berechnen, wenn sich eine der Eigenschaften ändert, die zur Bildung des formatierten Werts
herangezogen werden. In einem derartigen Szenario ist die formatierte Eigenschaft abhängig von den Eigenschaften, die zur Bildung des formatierten Werts verwendet werden.
Um zu gewährleisten, dass der Wert einer abhängigen Eigenschaft neu berechnet wird, wenn sich eine zur Bildung des formatierten Werts verwendete Eigenschaft ändert, ist die Aktion [email protected]:
GenericDependentSet als Set-Aktion bei den für die Bildung des formatierten Werts herangezogenen
Eigenschaften einzutragen.
43
Beispiel
Die Eigenschaft Laufende Nummer ([email protected]:ordinal) ist Bestandteil des Namens
von Sachakten. Folglich muss der Name einer Sachakte neu gebildet werden, wenn sich die Eigenschaft
Laufende Nummer ändert. Daher ist die Aktion [email protected]:GenericDependentSet
als Set-Aktion bei der Eigenschaft Laufende Nummer eingetragen. Ändert sich die Laufende Nummer,
sorgt die Aktion [email protected]:GenericDependentSet dafür, dass die Aktion
[email protected]:VirtualValueGet aufgerufen und der Name der Sachakte neu gebildet
wird.
Einfache Wertformatierungen
Die Fabasoft eGov-Suite stellt Entwicklern und Administratoren in Form von einfachen Wertformatierungen ein
mächtiges, generisches Instrument zur Formatierung von Zeichenketten zur Verfügung.
Wertformatierungen vereinfachen die Formatierung von Zeichenketten erheblich, da sie eine sprachspezifische
Formatierung, die Verwendung von Präfixes und Suffixes, Platzhaltern zur Formatierung, Teilzeichenketten und
Listen sowie ein automatisches HTML-Escaping erlauben. Ein weiterer Vorteil ist, dass die Formatierungen
mandantenspezifisch definiert und zentral in einer Konfiguration abgelegt werden können.
Zur Formatierung von Werten unter Verwendung der eGov-Konfiguration ist die Aktion
[email protected]:FormatValue aufzurufen. [email protected]:FormatValue wertet die
in der eGov-Konfiguration in einer Eigenschaft des Typs [email protected]:ValueFormat hinterlegten
Formatierungseinstellungen aus und generiert daraus eine Zeichenkette, die die Aktion im vierten Parameter als
STRING zurückliefert.
Tabelle 5 enthält eine Übersicht über die Parameter der Aktion [email protected]:FormatValue.
3. Initialisierung und Anpassung von Werten
3.2 Formatierung von Werten
#
PARAMETER
TYP
BESCHREIBUNG
1
ctx
OBJECT
In Parameter 1 kann ein Kontext
([email protected]:valformctx) zur Ermittlung der gewünschten Zeile in der Liste der Formatierungseinstellungen übergeben werden.
2
trigger
OBJECT
In Parameter 2 muss ein Auslöser
([email protected]:valformtrigger)
zur Ermittlung der gewünschten Zeile in der Liste der
Formatierungseinstellungen übergeben werden.
3
value
beliebiger Typ
In Parameter 3 muss der zu formatierende Wert übergeben werden, der während der Auswertung der Formatierungsausdrücke unter dem Schlüssel
::value im globalen Scope zur Verfügung steht.
4
result
STRING
Parameter 4 liefert eine Zeichenkette bzw. eine Zeichenkettenliste als Ergebnis der Auswertung zurück.
5
scope
DICTIONARY
In Parameter 5 kann ein DICTIONARY übergeben
werden, das während der Auswertung der Formatierungsausdrücke als globaler Scope zur Verfügung
gestellt wird.
45
#
PARAMETER
TYP
BESCHREIBUNG
6
attrdef
OBJECT
Parameter 6 bestimmt die Eigenschaft der eGov-Konfiguration, die ausgewertet werden soll. Es muss sich
dabei um eine Eigenschaft des Typs
[email protected]:ValueFormat handeln.
7
escape
BOOLEAN
Die in Parameter 3 zurückgegebene Zeichenkette
wird HTML-escaped, wenn in
Parameter 7 der Wert „true“ übergeben wird.
Tabelle 5: Parameter der Aktion [email protected]:FormatValue
Kontext und Auslöser dienen zur eindeutigen Identifizierung einer Zeile in der Eigenschaft mit den Formatierungseinstellungen.
Durch den sechsten Parameter wird gesteuert, welche Eigenschaft der eGov-Konfiguration die auszuwertenden
Formatierungseinstellungen enthält, wobei standardmäßig die Eigenschaft Wertformatierungen
([email protected]:valueformat) der Registerkarte Inhalte/Text-Dokumente herangezogen wird. Jede
der eGov-Konfiguration zugeordnete Eigenschaft des Typs [email protected]:ValueFormat kann von
der Aktion [email protected]:FormatValue ausgewertet werden.
3. Initialisierung und Anpassung von Werten
3.2 Formatierung von Werten
Abbildung 8
Einfache
Wertformatierungen
Wenn in der in Parameter 6 definierten Eigenschaft ein Eintrag gefunden werden kann, der mit dem an die
Aktion übergebenen Kontext und dem Auslöser übereinstimmt, werden die in der in Abbildung 8 dargestellten,
zusammengesetzten Eigenschaft Format ([email protected]:valformbuild) definierten Formatierungseinstellungen ausgewertet:
In der Eigenschaft Ausdruck ([email protected]:formatvalueexpr) kann ein Ausdruck zur Berechnung des zu formatierenden Werts hinterlegt werden. Während der Auswertung steht im lokalen Scope das
Objekt zur Verfügung, auf das die Aktion [email protected]:FormatValue aufgerufen wurde. Standardmäßig werden im globalen Scope die in Tabelle 6 ersichtlichen Schlüssel zur Verfügung gestellt.
47
°
In der Eigenschaft Format ([email protected]:formatstring) können die in Tabelle 4 auf
Seite 39 angeführten Platzhalter zur formatierten Ausgabe des durch den Ausdruck berechneten Werts
verwendet werden.
°
In der Eigenschaft Präfix ([email protected]:formatprefix) kann eine Zeichenkette hinterlegt
werden, die vor dem formatierten Wert ausgegeben wird. Die Eigenschaft Präfix (mehrsprachig)
([email protected]:formatmlprefix) erlaubt die Angabe eines mehrsprachigen Präfixes.
°
In der Eigenschaft Suffix ([email protected]:formatsuffix) kann eine Zeichenkette hinterlegt
werden, die nach dem formatierten Wert ausgegeben wird. Die Eigenschaft Suffix (mehrsprachig)
([email protected]:formatmlsuffix) erlaubt die Angabe eines mehrsprachigen Suffixes.
°
Mithilfe der zusammengesetzten Eigenschaft Liste ([email protected]:formatlist) kann die Formatierung von Wertelisten beeinflusst werden:
°
In der Eigenschaft Richtung ([email protected]:listdirection) kann festgelegt werden,
ob eine Liste in aufsteigender oder absteigender Reihenfolge aufgebaut werden soll. Standardmäßig
werden Listen in absteigender Reihenfolge formatiert, was zur Folge hat, dass die Werte in der
Reihenfolge dargestellt werden, in der sie in der Datenbank gespeichert sind. Wird eine Liste in aufsteigender Reihenfolge formatiert, werden die Werte ausgehend vom letzten aufsteigend bis zum ersten
in der Datenbank gespeicherten Listeneintrag ausgegeben.
°
Die Eigenschaft Anzahl der Zeilen ([email protected]:listcount) kann zur Beschränkung
der Anzahl der Zeilen einer Liste verwendet werden.
°
Zwischen den einzelnen Zeilen der zu formatierenden Liste wird das in der Eigenschaft Trennzeichen
([email protected]:listseparator) festgelegte Trennzeichen eingefügt.
3. Initialisierung und Anpassung von Werten
3.2 Formatierung von Werten
SCHLÜSSEL
BESCHREIBUNG
value
Dieser Schlüssel enthält den in Parameter 3 an die Aktion
[email protected]:FormatValue übergebenen Wert.
ctx
Dieser Schlüssel enthält den in Parameter 1 an die Aktion
[email protected]:FormatValue übergebenen Kontext.
trigger
Dieser Schlüssel enthält den in Parameter 2 an die Aktion
[email protected]:FormatValue übergebenen Auslöser.
build
Dieser Schlüssel enthält die aktuell ausgewertete Zeile
der Formatierungseinstellungen.
Tabelle 6: Globaler Scope beim Auswerten der Formatierungsausdrücke
Jede Zeile der Format-Liste wird separat ausgewertet. Als Ergebnis der Auswertung liefert der Ausdruck
([email protected]:formatvalueexpr) eine Zeichenkette, die mit den Ergebnissen der vorhergehenden Zeilen ohne Trennzeichen zusammengeführt wird. Liefert der Ausdruck jedoch den Wert „null“, wird
die betreffende Format-Zeile ignoriert und mit der Auswertung der nächsten Zeile fortgefahren.
Formatierung von Dokumenteigenschaften und Seriendruckfeldern
Detailierte Informationen zur Formatierung von Dokumenteigenschaften und Seriendruckfeldern finden Sie im
Kapitel „Dokumenteigenschaften und Serienbriefe“ auf Seite 151.
49
Formatierung von Werten in Übersichten
In XSL-Stylesheets zur Berechnung von Übersichten kann die Aktion [email protected]:
GetSimpleDocRepresentation aufgerufen werden, um Formatierungen aus der Eigenschaft Wertformatierungen ([email protected]:valueformat) der eGov-Konfiguration auszulesen.
Detailierte Informationen hierzu finden Sie im Kapitel „Übersichten“ auf Seite 161.
Formatierung von Fehlermeldungen
Die Eigenschaft Wertformatierungen (Fehler) ([email protected]:errvalueformat) der eGovKonfiguration dient zur Formatierung von Fehlermeldungen.
Beispiel
Die Aktion [email protected]:ValidateProperty erlaubt die Validierung eines von einem
Benutzer für eine Eigenschaft eingegebenen Werts. Genaue Informationen hierzu finden Sie im Kapitel
„Validierung von Eigenschaften“ auf Seite 69.
Wenn die Validierung einer Eigenschaft durch Aufruf der Aktion [email protected]:
ValidateProperty fehlschlägt, kann folgender Ausdruck zur Generierung einer Fehlermeldung verwendet werden:
[email protected]:FormatValue(::ctx,
::trigger,
::this, #[email protected]:errvalueformat)[4]
::value,
null,
Die unter den Schlüsseln ::trigger und ::value gespeicherten Werte werden der Aktion
[email protected]:ValidateProperty als Eingabeparameter übergeben. Diese beiden Parameter enthalten den Auslöser der Validierung, sowie den Wert, der nicht validiert werden konnte. Der Ausdruck liefert eine Zeichenkette, die dem Benutzer als Fehlermeldung angezeigt wird.
3. Initialisierung und Anpassung von Werten
3.2 Formatierung von Werten
Wenn in einem Arbeitsschritt-Wrapper ([email protected]:SimpleWorkflowWrapper) in der
Eigenschaft Fehler ([email protected]:actwferr) die Fehlermeldung [email protected]:
ERR_FMTSTR hinterlegt wird, erfolgt implizit ein Aufruf der Aktion [email protected]:
FormatValue zur Formatierung der Fehlermeldung.
Formatierung der Spaltendarstellung von Eigenschaften
Bei einer Eigenschaftsdefinition kann in der Eigenschaft Aktion zum Lesen der Darstellung der Eigenschaft
([email protected]:attractgetdisp) eine Aktion eingetragen werden, die die Zeichenkette
berechnet, die für den Wert der Eigenschaft in der Spaltendarstellung angezeigt wird.
Mit der Softwarekomponente [email protected] werden zwei generische Aktionen zur Formatierung der
Spaltendarstellung von Eigenschaften mitgeliefert:
°
[email protected]:FormatDispValue verwendet die Aktion [email protected]:
FormatValue, um eine Zeichenkette für die Spaltendarstellung einer Eigenschaft zu berechnen. Die
entsprechenden Formatierungseinstellungen sind in der eGov-Konfiguration in der Eigenschaft Wertformatierung (Spalten) ([email protected]:dispvalueformat) zu definieren. Die Parameter der
Aktion [email protected]:FormatDispValue sind in Tabelle 7 ersichtlich.
°
[email protected]:GetDispName verwendet die Aktion [email protected]:
VirtualValueGet zur Berechnung der Zeichenkette für die Spaltendarstellung. In diesem Fall werden
die in der eGov-Konfiguration in der Eigenschaft Objektklassenformatierungen hinterlegten Einstellungen ausgewertet.
51
#
PARAMETER
TYP
BESCHREIBUNG
1
attrdef
OBJECT
In Parameter 1 muss die Eigenschaft übergeben werden, für die die Zeichenkette zur Darstellung berechnet werden soll. Diese Eigenschaft wird in Parameter
2 an die Aktion [email protected]:
FormatValue weitergereicht.
2
display
STRING
In Parameter 2 wird der formatierte Wert zur Darstellung der Eigenschaft zurückgeliefert.
3
value
beliebiger Typ
In Parameter 3 kann ein Wert übergeben werden, der
an die Aktion [email protected]:
FormatValue weitergereicht wird. Wenn in
Parameter 3 kein Wert übergeben wird, wird der
Wert der Eigenschaft an die Aktion
[email protected]:FormatValue
übergeben.
Tabelle 7: Parameter der Aktion [email protected]:FormatDispValue
Beispiel
Anforderung
Die einzelnen Zeilen des Betreffs einer Akte sollen in der Spaltendarstellung durch ein Semikolon voneinander abgegrenzt, in aufsteigender Reihenfolge dargestellt werden.
3. Initialisierung und Anpassung von Werten
3.2 Formatierung von Werten
Lösungsansatz
Bei der Eigenschaft Betreff/Ergänzungen ([email protected]:filesubj) ist
[email protected]:GetDispName als Aktion zum Lesen der Darstellung der Eigenschaft
eingetragen. Daher wird die Eigenschaft Objektklassenformatierungen der eGov-Konfiguration ausgewertet, wenn die Eigenschaft Betreff/Ergänzungen als Spalte einer Objektliste eingeblendet wird.
Abbildung 9 zeigt die entsprechenden Formatierungseinstellungen, um die Anforderung zu erfüllen.
Abbildung 9
Formatierung der
Spaltendarstellung
53
3.3
Anpassungen der Benutzerschnittstelle
Die Fabasoft eGov-Suite erlaubt die einfache Anpassung einer Vielzahl von Elementen der Benutzerschnittstelle:
°
°
°
°
Einschränken der verwendbaren Formulare einer Objektklasse
Verändern oder Ausblenden von Seitenelementen einer Formularseite
Dynamisches Ein- und Ausblenden von Menüs
Verändern der zulässigen Objektklassen von Objektzeigereigenschaften
Formularkonfiguration
Allgemeine Informationen zum Fabasoft Formularsystem
Formulare und die darin referenzierten Formularseiten definieren, welche Eigenschaften eines Objekts im Attributeditor angezeigt, und wie diese dargestellt werden sollen.
Die Formulare, die für eine Objektklasse verfügbar sein sollen, sind bei der betreffenden Objektklasse auf der
Registerkarte Benutzerschnittstelle in der Eigenschaft Formulare ([email protected]:classviews)
zu hinterlegen.
Für jedes der definierten Formulare ist eine Aktion ([email protected]:viewaction) einzutragen, die
zur Zuordnung des anzuzeigenden Formulars herangezogen wird. Beim Aufruf einer Aktion wird die Eigenschaft
Formulare der Objektklasse nach einem der Aktion zugeordneten Formular durchsucht. Kann kein passender
Eintrag gefunden werden, werden die der betreffenden Objektklasse direkt zugeordneten Eigenschaften auf
einer generischen Formularseite dargestellt und die Basisklassen der Objektklasse nach der aufgerufenen
Aktion zugeordneten Formularen durchsucht. Wird bei einer Basisklasse ein passendes Formular gefunden, werden dessen Formularseiten als ererbte Formularseiten nach der generischen Formularseite dargestellt.
3. Initialisierung und Anpassung von Werten
3.3 Anpassungen der Benutzerschnittstelle
Formulare der Objektklasse Formular zum Bearbeiten und Suchen von Objekten
([email protected]:FormPage) werden immer dann verwendet, wenn Eigenschaften eines Objektes
gelesen oder bearbeitet werden sollen oder eine Suche gestartet wird.
Formulare der Objektklasse Formular für Explorer für Objekte ([email protected]:DeskForm)
werden als sogenannte Schreibtisch-Formulare bezeichnet und immer dann verwendet, wenn ein Objekt durch
Aufruf des Menübefehls Explore geöffnet wird. Werden Instanzen zusammengesetzter Objektklassen durch
einen Doppelklick geöffnet, wird standardmäßig ebenfalls das Schreibtisch-Formular zur Anzeige verwendet.
Dieses Standardverhalten kann jedoch durch Überschreiben der Methode [email protected]:OpenObject
geändert werden.
Wenn bestehende Formulare durch eigene Formularseiten erweitert werden, ist darauf zu achten, die Softwarekomponente des erweiterten Formulars in der Eigenschaft Erweiterte Komponenten ([email protected]:
compextents) bei der eigenen Softwarekomponente einzutragen.
Ebenso können bestehende Formularseiten durch eigene Elemente ([email protected]:
formpageitems) erweitert werden, wobei auch in diesem Fall die Softwarekomponente der erweiterten
Formularseite in der Eigenschaft Erweiterte Komponenten der eigenen Softwarekomponente eingetragen
werden muss.
Weiterführende Informationen zum Fabasoft Formularsystem finden Sie in [KlWi04].
Anpassung von Formularen mit der eGov-Konfiguration
Einschränken der verwendbaren Formulare einer Objektklasse
Wenn bei einer Objektklasse auf der Registerkarte Benutzerschnittstelle in der Eigenschaft Formulare
([email protected]:classviews) von mehreren Softwarekomponenten Formular-Sets eingetragen
wurden, kann es vorkommen, dass für die gleiche Aktion ([email protected]:viewaction) mehrere Formulare definiert sind. Beim Auswerten der Formulareinstellungen wird dann der erste passende Eintrag in der
55
Liste zur Ermittlung des anzuzeigenden Formulars herangezogen, auf dessen Formular der aktuelle Benutzer das
Zugriffsrecht Objekt suchen ([email protected]:AccTypeSearch) besitzt.
Dies hat zur Folge, dass nicht gewährleistet werden kann, dass das gewünschte Formular verwendet wird, wenn
mehrere Softwarekomponenten die gleiche Objektklasse um eigene Formular-Sets erweitern, da sich die
Reihenfolge der Einträge in der Eigenschaft Formulare von der Reihenfolge, in der die erweiternden Softwarekomponenten geladen werden, ableitet.
Daher bietet die eGov-Konfiguration die Möglichkeit, die für eine Objektklasse verwendbaren Formulare auf
der Registerkarte Formulare in der Eigenschaft Verfügbare Formulare (COOELAK@1001:
availableforms) zu definieren, um die Liste der bei der Objektklasse hinterlegten Formulare einzuschränken.
Damit dieser Mechanismus zur Einschränkung der verwendbaren Formulare funktioniert, muss jedoch bei allen
Einträgen in der Eigenschaft Formulare die Aktion [email protected]:UseForm in der Eigenschaft
Aktion zum Auswerten ([email protected]:condaction) der zusammengesetzten Eigenschaft Verwendet wenn ([email protected]:viewcondition) hinterlegt werden.
Die Aktion [email protected]:UseForm erlaubt die Verwendung eines Formulars nur, wenn für dieses
Formular auch ein entsprechender Eintrag für die betreffende Objektklasse in der Eigenschaft Verfügbare
Formulare der eGov-Konfiguration vorhanden ist. In diesem Fall liefert die Aktion den Wert „true“ und das
ermittelte Formular wird angezeigt.
Andernfalls wird mit der Auswertung des nächsten Eintrags in der Eigenschaft Formulare der Objektklasse des
anzuzeigenden Objekts fortgefahren, bis ein passender Eintrag gefunden werden kann, für den keine Aktion
zum Auswerten definiert ist oder diese den Wert „true“ als Ergebnis der Auswertung liefert.
Damit der von der eGov-Konfiguration bereitgestellte Mechanismus zur Einschränkung der verwendbaren
Formulare korrekt funktioniert, ist von Softwarekomponenten-Entwicklern darauf zu achten, die Aktion
[email protected]:UseForm als Aktion zum Auswerten einzutragen, wenn eine Objektklasse um
eigene Formular-Sets erweitert wird.
3. Initialisierung und Anpassung von Werten
3.3 Anpassungen der Benutzerschnittstelle
Wird in der Eigenschaft Verfügbare Formulare der eGov-Konfiguration für eine Objektklasse ein Eintrag
hinterlegt, überschreibt dieser Eintrag die von der übergeordneten eGov-Konfiguration für diese Objektklasse
definierten verwendbaren Formulare. Das hat zur Folge, dass für eine Objektklasse immer sämtliche verwendbaren Formulare angegeben werden müssen, da die in übergeordneten Konfigurationen definierten verwendbaren Formulare nur dann berücksichtigt werden, wenn in der aktuellen eGov-Konfiguration für die betreffende
Objektklasse kein passender Eintrag gefunden werden kann.
Beispiel
Anforderung
In einem Fabasoft Components Mandanten soll anstelle des mit der Vorkonfiguration mitgelieferten Standard-Formulars ein selbst definiertes Formular angezeigt werden, wenn ein Vorgang zum Lesen oder Bearbeiten geöffnet wird.
Lösungsansatz
Es wird ein neues Formular erzeugt und in der Eigenschaft Formulare der Objektklasse Vorgang
([email protected]:Procedure)
für
die
Aktionen
[email protected]:
EditObjectAttributes und [email protected]:ReadObjectAttributes eingetragen. Als Aktion zum Auswerten wird [email protected]:UseForm hinterlegt.
Der bestehende Eintrag in der Eigenschaft Verfügbare Formulare für die Objektklasse Vorgang wird von
der übergeordneten eGov-Konfiguration kopiert und in der Eigenschaft Verfügbare Formulare der
mandantenspezifischen eGov-Konfiguration eingefügt. In dem kopierten Konfigurationseintrag wird in der
Eigenschaft Formulare ([email protected]:availforms) das alte Formular durch das neue
Formular ersetzt.
57
Verändern von Formularseiten
Die eGov-Konfiguration erlaubt die dynamische Veränderung von Formularseiten zur Laufzeit – unter
anderem das Ausblenden oder Ersetzen sowie die Veränderung der Darstellung von Eigenschaften. Hierfür
ist die Aktion [email protected]:GetFormPage in der Eigenschaft Filteraktion für Elemente
([email protected]:formpageitemaction) der betreffenden Formularseite einzutragen.
Ist bei einer Formularseite die Aktion [email protected]:GetFormPage hinterlegt, versucht diese
Aktion einen passenden Eintrag in der Eigenschaft Einstellung für Formulare
([email protected]:formconfiglist) der eGov-Konfiguration zu finden, bevor die Formularseite
angezeigt wird.
Bei der Auswertung der Formulareinstellungen werden sowohl die anzuzeigende Formularseite als auch das
zugehörige Formular berücksichtigt, da eine Formularseite mehreren Formularen zugeordnet sein kann.
Beispielsweise kann die Formularseite Schriftstücke ([email protected]:PageSubFile
Attachment) sowohl im Konstruktorformular als auch im Bearbeiten-Formular eines Vorgangs verwendet
werden, wobei für diese beiden Fälle jedoch verschiedene Formulareinstellungen gelten sollen.
Daher kann in der Eigenschaft Formular ([email protected]:formconfigform) eine Liste von
Formularen hinterlegt werden, sodass der betreffende Formularkonfigurationseintrag nur dann berücksichtigt
wird, wenn die in der Eigenschaft Seite ([email protected]:formconfigpage) referenzierte
Formularseite im Kontext eines der angegebenen Formulare angezeigt wird.
Wenn ein Formularkonfigurationseintrag für alle Formulare verwendet werden soll, in denen die angegebene
Seite referenziert wird, so ist das Kontextobjekt [email protected]:WildcardForm als Formular einzutragen.
Wird bei der Auswertung der Formulareinstellungen in der aktuellen eGov-Konfiguration ein passender Eintrag
für Formular und Seite gefunden, überschreibt dieser standardmäßig die Formulareinstellungen der übergeordneten eGov-Konfiguration. Wird jedoch für den ermittelten Konfigurationseintrag die Eigenschaft Inkludieren
(Basis) ([email protected]:formconfiginclude) auf den Wert „Ja“ gesetzt, werden auch die For-
3. Initialisierung und Anpassung von Werten
3.3 Anpassungen der Benutzerschnittstelle
mulareinstellungen aus der übergeordneten eGov-Konfiguration berücksichtigt, wobei die Konfigurationseinstellungen aus der aktuellen eGov-Konfiguration gegenüber den Konfigurationseinstellungen aus übergeordneten eGov-Konfigurationen bevorzugt behandelt werden.
Wenn bei der Auswertung der Formulareinstellungen kein passender Eintrag in der aktuellen eGov-Konfiguration gefunden werden kann, werden die übergeordneten eGov-Konfigurationen nach einem passenden Eintrag
durchsucht.
Wird in den Formulareinstellungen ein passender Eintrag gefunden, werden diese folgendermaßen ausgewertet:
1. Auflösen der auszuwertenden Eigenschaften
2. Entfernen von Eigenschaften
3. Ersetzen von Eigenschaften
4. Verändern der Darstellung von Eigenschaften
Auflösen der auszuwertenden Eigenschaften
Auflösen bezeichnet das Ersetzen einer auf einer Formularseite ursprünglich referenzierten Eigenschaft durch
die Eigenschaften, die in den Objektklassenformatierungen ([email protected]:
objclassformatlist) zur Berechnung des Werts der Ausgangseigenschaft definiert wurden.
Die
in
der
Eigenschaft
Auszuwertende
Eigenschaften
([email protected]:
formconfigevallist) definierten Eigenschaften und Formularseitenelemente werden durch Auswertung
der Eigenschaft Objektklassenformatierungen der Registerkarte Formatierung für die Anzeige aufgelöst,
sofern ein entsprechender Eintrag in der Eigenschaft Objektklassenformatierungen existiert und für diesen die
Eigenschaft Für Anzeige auflösen ([email protected]:displayevaluation) auf den Wert „Ja“
gesetzt wurde. Die Formulareinstellungen werden dann auf die aufgelösten Eigenschaften angewendet.
Detailierte Informationen zu Objektklassenformatierungen finden Sie im Kapitel „Objektklassenformatierung“
auf Seite 38.
59
Beispiel
Anforderung
Für die Objektklasse Sachakte ([email protected]:SubjectAreaFile) wird ein neues Formular definiert, das als erste Formularseite [email protected]:PageFileReference anzeigt.
Diese Formularseite referenziert die Eigenschaft Name ([email protected]:objname).
Die Eigenschaft Name einer Sachakte soll aus dem Organisationskennzeichen ([email protected]:
grshortname) der aktenführenden Organisationseinheit, dem Aktenplankennzeichen
([email protected]:apentry) und der Eigenschaft Laufende Nummer ([email protected]:
ordinal) gebildet werden.
Lösungsansatz
Die Eigenschaft Name wird auf der Formularseite [email protected]:PageFileReference
standardmäßig bereits als erstes Element angezeigt.
Damit die Eigenschaft Name in die Komponenten Aktenführende Organisationseinheit, Aktenplankennzeichen und Laufende Nummer aufgelöst wird, muss ein entsprechender Eintrag in der Eigenschaft
Objektklassenformatierungen der eGov-Konfiguration existieren. Für diesen Eintrag muss die Eigenschaft Für Anzeige auflösen auf den Wert „Ja“ gesetzt werden.
Um sicherzustellen, dass die Objektklassenformatierungseinstellungen für die Eigenschaft Name bei der
Anzeige des Formulars auch ausgewertet werden, muss für das Formular und die Formularseite ein neuer
Eintrag in der Eigenschaft Einstellungen für Formulare in der eGov-Konfiguration hinzugefügt werden,
für den die Eigenschaft Name in der Liste Auszuwertende Eigenschaften eingetragen wird.
Der Vorteil dieses Lösungsansatzes ist, dass die Formularseite [email protected]:
PageFileReference, die lediglich die Eigenschaft Name referenziert, wiederverwendet werden
kann. Vor der Anzeige der Formularseite wird die Eigenschaft Name durch die projektspezifisch festgelegten Eigenschaften zur Bildung des Namens einer Sachakte ersetzt.
3. Initialisierung und Anpassung von Werten
3.3 Anpassungen der Benutzerschnittstelle
Entfernen von Eigenschaften
Wenn Eigenschaften bedingungslos von einer Formularseite entfernt werden sollen, sind diese in die Eigenschaft Zu entfernende Eigenschaften ([email protected]:formconfigremovelist) der betreffenden Zeile der Formulareinstellungen einzutragen.
Die in der Eigenschaft Zu entfernende Eigenschaften (VAPP) ([email protected]:
formconfigremoveifvapp) referenzierten Eigenschaften werden nur im Fabasoft Webbrowser-Client
und im Fabasoft Windows-Client ausgeblendet, nicht jedoch im Fabasoft Win32-Client der Version 6.
Weiters erlaubt die eGov-Konfiguration das Entfernen von Eigenschaften in Abhängigkeit von einem Ausdruck
oder einer zu überprüfenden Eigenschaft. Hierzu ist ein entsprechender Eintrag in der zusammengesetzten
Eigenschaft
Zu
entfernende
Eigenschaften
(abhängige)
([email protected]:
formconfigremoveifdef) vorzunehmen.
Wird in der Eigenschaft Ausdruck ([email protected]:formconfigremoveexpr) ein Ausdruck
hinterlegt, der als Rückgabewert „true“ liefert, werden die in der Eigenschaft Zu entfernende Eigenschaften
([email protected]:formconfigremoveelems) referenzierten Eigenschaften ausgeblendet.
Anstelle eines Ausdrucks kann auch eine Zu überprüfende Eigenschaft ([email protected]: formconfigremoveattrdef) hinterlegt werden. Wenn diese einen gültigen Wert enthält, werden die zu entfernenden Eigenschaften von der betreffenden Formularseite entfernt.
61
Beispiel
Anforderung
Die Eigenschaften Federführung ([email protected]:incharge) und Prozessdefinition
([email protected]:fileprocdef) eines Vorgangs sollen nur im Konstruktorformular, also beim
Erzeugen des Vorgangs, angezeigt werden. Beim Lesen oder Bearbeiten der Eigenschaften eines bereits
erzeugten Vorgangs sollen die Eigenschaften nicht mehr angezeigt werden.
Lösungsansatz
Sowohl das Konstruktorformular [email protected]:ViewExProcedureCtor als auch das
Formular [email protected]:ViewExProcedure zum Lesen und Bearbeiten der Metadaten
des Vorgangs referenzieren die Formularseite [email protected]:PageProcedure, die die
Eigenschaften Federführung und Prozessdefinition enthält.
Damit die beiden Eigenschaften Federführung und Prozessdefinition im Formular zum Lesen und Bearbeiten der Metadaten aus der Formularseite [email protected]:PageProcedure entfernt, im
im Konstruktorformular jedoch weiterhin angezeigt werden, muss in der eGov-Konfiguration in den Formulareinstellungen für das Formular [email protected]:ViewExProcedure und die Formularseite [email protected]:PageProcedure ein Eintrag definiert werden: Abbildung 10 zeigt den
Eintrag in der Eigenschaft Zu entfernende Eigenschaften der Formulareinstellungen.
3. Initialisierung und Anpassung von Werten
3.3 Anpassungen der Benutzerschnittstelle
Abbildung 10
Entfernen von Eigenschaft
Ersetzen von Eigenschaften
Die zusammengesetzte Eigenschaft Zu ersetzende Eigenschaften ([email protected]:
formconfigreplace) ermöglicht das Ersetzen einer Eigenschaft auf einer Formularseite durch eine
andere Eigenschaft.
Hierzu ist die zu ersetzende Eigenschaft als Eigenschaft ([email protected]:formconfigrpl) und
die Eigenschaft, durch die diese ersetzt werden soll in der Eigenschaft Ersetzen mit
([email protected]:formconfigrplwith) in der zusammengesetzten Eigenschaft Zu ersetzende
Eigenschaften einzutragen.
Falls in der Eigenschaft Ersetzen, wenn ([email protected]:formconfigrplif) ein Ausdruck hinterlegt wird, wird die Ersetzung nur durchgeführt, wenn der Ausdruck den Rückgabewert „true“ liefert.
63
Beispiel
Anforderung
Wenn die Regel [email protected]:FreetextAddressees aktiviert ist, soll es möglich sein,
die Metadaten der Adressaten ([email protected]:addressees) einer Erledigung als Freitext zu
erfassen.
Weiters sollen nach der Finalisierung der Erledigung in der Eigenschaft Adressaten die abgefertigten
Schriftstücke für jeden Empfänger angezeigt werden.
Lösungsansatz
Wie in Abbildung 11 gezeigt, werden vier Einträge in der Eigenschaft Zu ersetzende Eigenschaften der
betreffenden Zeile der Formulareinstellungen hinzugefügt:
°
Wenn die Regel [email protected]:FreetextAddressees deaktiviert ist und die Erledigung noch nicht finalisiert wurde, wird die Eigenschaft Adressaten durch das Formularseiten-Element
Empfänger ([email protected]:ItemAddresseeSettlement) ersetzt.
°
Wenn die Regel [email protected]:FreetextAddressees deaktiviert ist und die
Erledigung bereits finalisiert wurde, wird die Eigenschaft Adressaten durch das FormularseitenElement
Empfänger
(finalisiert)
([email protected]:
ItemAddresseeSettlementFinalized) ersetzt.
°
Wenn die Regel [email protected]:FreetextAddressees aktiviert ist und die Erledigung
noch nicht finalisiert wurde, wird die Eigenschaft Adressaten durch das Formularseiten-Element Freitextempfänger ([email protected]:ItemFreetextSettlement) ersetzt.
°
Wenn die Regel [email protected]:FreetextAddressees aktiviert ist und die Erledigung
bereits finalisiert wurde, wird die Eigenschaft Adressaten durch das Formularseiten-Element
Freitextempfänger
(finalisiert)
([email protected]:
ItemFreetextSettlementFinalized) ersetzt.
3. Initialisierung und Anpassung von Werten
3.3 Anpassungen der Benutzerschnittstelle
Abbildung 11
Ersetzen von Eigenschaften
Verändern der Darstellung von Eigenschaften
Neben dem Ersetzen und Entfernen von Eigenschaften ermöglicht die eGov-Konfiguration auch das Verändern
bestehender Formularelemente, wie zum Beispiel die Anpassung des Führungstexts einer Eigenschaft.
Dazu ist ein entsprechender Eintrag in der zusammengesetzten Eigenschaft Veränderte Eigenschaften
(Anzeigen) ([email protected]:formconfigoverridelist) einzufügen. Die zu verändernde
Eigenschaft ist als Eigenschaft ([email protected]:overrideitem) zu hinterlegen. Wird in der
Eigenschaft Verwenden, wenn ([email protected]:overrideitemexpr) ein Ausdruck definiert,
werden die Einstellungen in der betreffenden Zeile nur angewendet, wenn der Ausdruck den Rückgabewert
„true“ liefert.
65
Die Eigenschaft Elementdarstellungen ([email protected]:overriderepresentation)
ermöglicht die Hinterlegung eines Built-In-Controls zur Darstellung einer Eigenschaft.
Abbildung 12
Darstellung von
Eigenschaften (1)
Beispiel
Anforderung
Beim Erzeugen eines Vorgangs soll das Hierarchie-Control zur Darstellung der Eigenschaft Akte
([email protected]:referrednumber) im Konstruktorformular verwendet werden, damit ein
Benutzer bei Bedarf die gewünschte Akte aus dem Aktenplan auswählen kann.
3. Initialisierung und Anpassung von Werten
3.3 Anpassungen der Benutzerschnittstelle
Lösungsansatz
Der Eintrag für das Konstruktorformular eines Vorgangs in den Formulareinstellungen in der eGov-Konfiguration wird wie in Abbildung 12 dargestellt angepasst.
In der zusammengesetzten Eigenschaft Veränderte Eigenschaften (Anzeigen) wird ein Eintrag für die
Eigenschaft Akte eingefügt und das Hierarchie-Control ([email protected]:CTRLObjNav) in den
Elementdarstellungen hinterlegt. In der Eigenschaft Argument 2 ([email protected]:
controlargument) werden die Ausdrücke zur Berechnung der vom Hierarchie-Control anzuzeigenden
Wurzel, sowie der hierarchisch darzustellenden Eigenschaften referenziert.
Durch Anpassen der Eigenschaft Formatierung ([email protected]:overridelayout) kann der
Führungstext und die Darstellung der Eigenschaft verändert werden. Die entsprechenden Einstellungen in der
Eigenschaft Formatierung ermöglichen es beispielsweise, dass zwei Eigenschaften auf einer Formularseite
nebeneinander, in einer Zeile dargestellt werden.
Mithilfe der Eigenschaft Muss definiert sein ([email protected]:overridemustbedef) kann eine
optionale Eigenschaft in ein Mussfeld umgewandelt werden, sodass ein Benutzer gezwungen ist, in der Eigenschaft einen Wert einzutragen. Hierfür ist die Eigenschaft Muss definiert sein auf den Wert „Ja“ zu setzen.
Ebenso kann eine als Mussfeld definierte Eigenschaft in eine optionale Eigenschaft umgewandelt werden,
indem Muss definiert sein auf den Wert „Nein“ gesetzt wird.
Gleichermaßen kann die Eigenschaft Änderbar in Benutzerschnittstelle ([email protected]:
overrideuichangeable) dazu verwendet werden, eine ursprünglich vom Benutzer nicht änderbare
Eigenschaft änderbar zu machen und umgekehrt.
Die Eigenschaft Folgendes Element ([email protected]:overrideitembefore) ermöglicht die
Beeinflussung der Reihenfolge der auf einer Formularseite dargestellten Eigenschaften. Um zu erzwingen, dass
die angegebene Eigenschaft vor einer anderen Eigenschaft auf der Formularseite angezeigt wird, ist die
nachfolgende Eigenschaft als Folgendes Element einzutragen.
67
Wird in der zusammengesetzten Eigenschaft Veränderte Eigenschaften (Anzeigen) in den Formulareinstellungen der eGov-Konfiguration ein Wert für eine der Eigenschaften Elementdarstellungen, Formatierung,
Muss definiert sein, Änderbar in Benutzerschnittstelle oder Folgendes Element definiert, überschreibt
dieser den in der Liste der Elemente der Formularseite bzw. direkt bei der Eigenschaft definierten Wert. Auf diese Weise können vordefinierte Einstellungen mithilfe der eGov-Konfiguration übersteuert werden.
Beispiel
Anforderung
Die Eigenschaft Akte ([email protected]:referrednumber) eines Vorgangs soll nur solange
sie noch keinen Wert hat vom Benutzer geändert werden können. Wurde ein Vorgang bereits einer Akte
zugeordnet, darf die Eigenschaft vom Benutzer nicht mehr geändert werden.
Lösungsansatz
Der Eintrag für das Formular zum Bearbeiten eines Vorgangs in den Formulareinstellungen in der eGovKonfiguration wird wie in Abbildung 13 gezeigt angepasst.
Wenn ein Vorgang bereits einer Akte zugeordnet ist, liefert der Ausdruck in der Eigenschaft Verwendet,
wenn den boolschen Rückgabewert „true“. Dies hat zur Folge, dass die Eigenschaft Änderbar in Benutzerschnittstelle auf den Wert „Nein“ gesetzt wird. Die Eigenschaft Akte ist somit vom Benutzer nicht
mehr änderbar.
3. Initialisierung und Anpassung von Werten
3.3 Anpassungen der Benutzerschnittstelle
Abbildung 13 Darstellung
von Eigenschaften (2)
Validierung von Eigenschaften
Für jede Eigenschaft kann auf der Registerkarte Wert der Eigenschaftsdefinition ein Ausdruck zur Prüfung
des Werts ([email protected]:attrvalidateexpr) hinterlegt werden, der für die Validierung der
Benutzereingaben herangezogen wird.
Während der Auswertung stehen der zu validierende Wert als lokaler Scope this und das validerte Objekt
unter dem Schlüssel ::root im globalen Scope zur Verfügung. Ist die validierte Eigenschaft Teil eines Aggregats, wird der Wert des Aggregats unter dem Schlüssel ::parent zur Verfügung gestellt. Andernfalls enthält ::parent ebenso das validerte Objekt.
69
Der Rückgabewert „true“ bedeutet, dass die Eingaben des Benutzers erfolgreich validiert werden konnten. Liefert der Ausdruck den Rückgabewert „false“ oder einen benutzerdefinierten Fehler, wird eine Fehlermeldung
angezeigt und dem Benutzer die Möglichkeit gegeben, seine Eingaben zu korrigieren.
Um die Validierung von Eigenschaften zu vereinfachen, stellt die eGov-Konfiguration die Eigenschaft Validierung ([email protected]:propvalidation) zur Verfügung. Die Definition von Validierungsschritten
in der eGov-Konfiguration dient nicht nur der besseren Übersichtlichkeit, sondern bietet auch größere Flexibilität und ermöglicht unter anderem die Verwendung mandantenspezifischer Validierungsschritte.
Für die Auswertung der Validierungsschritte ist die Aktion [email protected]:ValidateProperty
verantwortlich. Anstatt die Validierungslogik direkt als Ausdruck zur Prüfung des Werts bei der jeweiligen
Eigenschaft zu implementieren, ist lediglich [email protected]:ValidateProperty aufzurufen und
die zu validierende Eigenschaft im ersten Parameter an die Aktion zu übergeben.
Sofern in der eGov-Konfiguration in der Eigenschaft Validierung ein Eintrag existiert, für den die an
[email protected]:ValidateProperty
übergebene
Eigenschaft
als
Auslöser
([email protected]:valdeftrigger) hinterlegt wurde, werden die in der Eigenschaft Schritte
([email protected]:valdefsteps) definierten Validierungsschritte ausgewertet.
Die Einträge in der Eigenschaft Schritte werden sequentiell ausgewertet, wobei der Ausdruck
([email protected]:valstepexpr) zur Validierung nur dann evaluiert wird, wenn der in der Eigenschaft Validieren, wenn ([email protected]:valstepwhen) eingetragene Ausdruck den Rückgabewert „true“ liefert oder nicht definiert wurde.
Während der Auswertung stehen die zu validierende Eigenschaft unter dem Schlüssel ::trigger und der
Wert der Eigenschaft unter dem Schlüssel ::value im globalen Scope zur Verfügung.
Liefert der Ausdruck den Rückgabewert „true“, konnte der Wert erfolgreich validiert werden. Kann der Wert
nicht erfolgreich validiert werden, ist der Rückgabewert „false“ zu liefern. Um in diesem Fall eine benutzerdefinierte Fehlermeldung auszugeben, muss [email protected]:ERR_FMTSTR in der Eigenschaft Fehler
([email protected]:valsteperr) hinterlegt und der folgende Ausdruck als Fehlermeldung
([email protected]:valsteperrstr) eingetragen werden:
3. Initialisierung und Anpassung von Werten
3.3 Anpassungen der Benutzerschnittstelle
[email protected]:FormatValue(::ctx, ::trigger, ::value, null, ::this,
#[email protected]:errvalueformat, false)[4]
Wenn keine Fehlermeldung definiert wird, wird eine Standard-Fehlermeldung angezeigt, die den Benutzer
darauf hinweist, dass die Eigenschaft einen ungültigen Wert enthält.
Beispiel
Anforderung
Der Benutzer soll gezwungen werden, beim Ausleihen eines Vorgangs den Entleiher oder die entleihende
Organisationseinheit anzugeben.
Lösungsansatz
Beim Ausleihen eines Vorgangs wird ein neuer Eintrag in der Eigenschaft Verbleib
([email protected]:fileborrowitem) erzeugt. Damit die Validierungsschritte der eGov-Konfiguration ausgewertet werden, wird in der Eigenschaft Verbleib folgender Ausdruck zur Prüfung des
Werts eingetragen:
::[email protected]:ValidateProperty(#[email protected]:
fileborrowitem, this)
Weiters ist in der eGov-Konfiguration in der Eigenschaft Validierung ein neuer Eintrag hinzuzufügen und
die Eigenschaft Verbleib als Auslöser zu definieren. In den Validierungsschritten ist folgender Ausdruck
einzutragen:
::[email protected]:borrowuserstr IS NULL &&
::[email protected]:borrowuser IS NULL &&
::[email protected]:borrowou IS NULL &&
::[email protected]:borrowouobj IS NULL?
false : true
71
Menüanpassungen
In manchen Fällen ist es erforderlich, Menübefehle aus einem Menü aus der Menüleiste oder aus dem Kontextmenü dynamisch ein- oder auszublenden. Die Fabasoft eGov-Suite stellt hierfür einen einfach anzuwendenden
Mechanismus zur Verfügung.
Um ein Menü ([email protected]:Menu) in Abhängigkeit vom Ergebnis der Auswertung eines Ausdrucks dynamisch ein- oder auszublenden, muss die Aktion [email protected]:GetDynamicMenu in der Eigenschaft Aktion für dynamische Menüs ([email protected]:menugetaction) des Menüs eingetragen
werden.
Ferner ist in der zusammengesetzten Eigenschaft Menüeinstellungen ([email protected]:menudefs)
auf der Registerkarte Menü der eGov-Konfiguration eine entsprechende Konfigurationszeile hinzuzufügen.
Als Auslöser ([email protected]:menudeftrigger) ist das betreffende dynamische Menü einzuhängen. In der Eigenschaft Menüelemente ([email protected]:menudefitems) kann eine Liste von
Menüeinträgen definiert werden, die anstelle des dynamischen Menüs angezeigt werden.
Wenn der in der Eigenschaft Verwenden, wenn ([email protected]:menuitemif) hinterlegte Ausdruck den Rückgabewert „true“ liefert, wird der in der Eigenschaft Menü ([email protected]:
menuitemobj) referenzierte Menübefehl eingeblendet. Der Ausdruck wird für jedes markierte Objekt ausgewertet. Während der Auswertung steht im lokalen Scope this das jeweils aktuelle Objekt zur Verfügung.
3. Initialisierung und Anpassung von Werten
3.3 Anpassungen der Benutzerschnittstelle
Abbildung 14
Menüanpassungen
Beispiel
Anforderung
Der Menübefehl Reinschrift stornieren ([email protected]:MenuUnfinalizeObject) soll
nur angezeigt werden, wenn das markierte Objekt bereits finalisiert wurde.
Lösungsansatz
In der eGov-Konfiguration wird in der zusammengesetzten Eigenschaft Menüeinstellungen der in Abbildung 14 dargestellte Eintrag für den Auslöser Reinschrift stornieren hinzugefügt.
73
Referenzierung von Eigenschaften
Die Referenzierung von Eigenschaften ist einer der vielseitigsten von der eGov-Konfiguration zur Verfügung
gestellten Konfigurationsmechanismen.
Anpassen der zulässigen Objektklassen und Filter-Ausdrücke
Mithilfe der zusammengesetzten Eigenschaft Referenzierung von Eigenschaften ([email protected]:
viewusage) auf der Registerkarte Objektzeiger der eGov-Konfiguration können die zulässigen Objektklassen und die Filter-Ausdrücke von Objektzeigereigenschaften angepasst werden, ohne die betreffenden Objektzeigereigenschaften selbst verändern zu müssen.
Dabei wird so vorgegangen, dass die Einstellungen einer referenzierten Objektzeigereigenschaft für andere
Objektzeigereigenschaften übernommen werden. Diese Vorgehensweise wird „Objektzeiger-Referenzierung“
genannt.
Ein Vorteil von Objektzeiger-Referenzierungen ist, dass eine mandantenspezifische Einschränkung der für einen
Objektzeiger zulässigen Objektklassen ermöglicht wird. Auch Filter-Ausdrücke können mandantenspezifisch definiert werden. Ebenso können dadurch die Probleme umgangen werden, die entstehen, wenn verschiedene Softwarekomponenten die zulässigen und nicht zulässigen Objektklassen der gleichen Objektzeigereigenschaft zu
erweitern versuchen. Überdies können mithilfe von Objektzeiger-Referenzierungen für die gleiche Eigenschaft
verschiedene zulässige Objektklassen und Filter-Ausdrücke definiert werden, wenn die Eigenschaft in mehreren
Objektklassen verwendet wird.
Aus den genannten Gründen sollten stets Objektzeiger-Referenzierungen verwendet werden, um die für eine
Objektzeigereigenschaft zulässigen Objektklassen zu verändern, anstatt die Objektzeigereigenschaft selbst zu
erweitern.
Um eine Objektzeiger-Referenzierung zu definieren, ist in der Eigenschaft Referenzierung von Eigenschaften
ein neuer Eintrag einzufügen. Die zu verändernde Objektzeigereigenschaft ist als Auslöser
([email protected]:usagectx) einzutragen. Es besteht auch die Möglichkeit, mehrere Objektzeiger-
3. Initialisierung und Anpassung von Werten
3.3 Anpassungen der Benutzerschnittstelle
eigenschaften als Auslöser zu hinterlegen. Für die als Auslöser hinterlegten Objektzeigereigenschaften ist in
der Eigenschaft Eigenschaft(en) ([email protected]:usageview) genau eine Ziel-Eigenschaft zu definieren, welche die zulässigen Objektklassen und Filter-Ausdrücke der als Auslöser definierten Quell-Eigenschaften übersteuert.
Anstelle der Eigenschaft(en) kann in der Eigenschaft Ausdruck (Ziel) ([email protected]:
usageexpr) ein Ausdruck eingetragen werden, der als Rückgabewert eine Objektzeigereigenschaft liefern
muss. Wenn sowohl Ausdruck (Ziel) als auch Eigenschaft(en) definiert werden, überschreibt Ausdruck
(Ziel) die Eigenschaft(en). Liefert Ausdruck (Ziel) keinen Wert, werden die Eigenschaft(en) verwendet.
Die folgenden Eigenschaftswerte der Quell-Eigenschaft werden von der Ziel-Eigenschaft übersteuert:
°
°
°
°
Mögliche Objektklasse ([email protected]:attruseableclass)
Zulässige Klassen von Objekten ([email protected]:attrallowed)
Nicht zulässige Klassen von Objekten ([email protected]:attrnotallowed)
Filter-Ausdruck für Werte ([email protected]:attrfilterexpr)
Diese Übersteuerung erfolgt durch die Aktion [email protected]:RedirectFilter,
die als Pre-Wrapper der Aktionen [email protected]:AllowedObjectsFilter,
[email protected]:
AllowedClassesFilter,
[email protected]:
AllowedClassesGet und [email protected]:LocalObjectsGet eingehängt ist.
Mithilfe der Referenzierung von Eigenschaften kann also für jede Objektzeigereigenschaft im System definiert
werden, welche Objektklassen erlaubt sind und welche nicht. Zusätzlich kann in der zusammengesetzten Eigenschaft Zulässige Klassen von Objekten definiert werden, ob in der betreffenden Eigenschaft auch neue
Instanzen der zulässigen Objektklassen erzeugt werden dürfen.
Alle anderen bei der Ziel-Eigenschaft definierten Werte bleiben unberücksichtigt. So kann beispielsweise die Eigenschaft Nur nach erlaubten Objektklassen suchen ([email protected]:
attrsearchallowed) nicht durch eine Objektzeiger-Referenzierung übersteuert werden. Ebenso kann ein
eventuell bei der Quell-Eigenschaft in der Eigenschaft Darstellungen ([email protected]:
75
attrrepresentation) eingetragenes Control nur mithilfe der Formulareinstellungen und nicht mittels
Objektzeiger-Referenzierung übersteuert werden.
Beispiel
Anforderung
In den Beilagen ([email protected]:subfileattachments) eines Vorgangs sollen ausschließlich Objekte der Objektklassen Eingangsstück ([email protected]:Incoming) und Erledigung ([email protected]:Settlement) abgelegt werden dürfen, und nur dann, wenn diese noch
keinem anderen Vorgang zugeordnet sind.
Lösungsansatz
In der eGov-Konfiguration muss in der Eigenschaft Referenzierung von Eigenschaften ein neuer Eintrag
für die Objektklasse Vorgang und den Auslöser Beilagen eingefügt werden. Weiters muss eine neue
Objektzeigereigenschaft erzeugt und in der Eigenschaft Eigenschaft(en) hinterlegt werden. Abbildung 15
zeigt die entsprechenden Konfigurationseinträge und die neue Objektzeigereigenschaft.
In der Eigenschaft Mögliche Objektklasse ([email protected]:attruseableclass) der neuen Objektzeigereigenschaft ist die Objektklasse Dokument ([email protected]:Document) auszuwählen, da diese in einer DOMEA-Lösung die gemeinsame Basisklasse der Objektklassen Eingangsstück und Erledigung darstellt. Ferner sind die beiden Objektklassen in der Eigenschaft Zulässige Klassen von Objekten ([email protected]:attrallowed) einzutragen.
Um zu gewährleisten, dass bei einem Vorgang in der Eigenschaft Beilagen keine bereits einem anderen
Vorgang zugeordneten Objekte hinzugefügt werden können, muss der folgende Ausdruck in der Eigenschaft
Filter-Ausdruck für Werte ([email protected]:attrfilterexpr) der neuen Objektzeigereigenschaft hinterlegt werden:
[email protected]:referrednumber == null
3. Initialisierung und Anpassung von Werten
3.3 Anpassungen der Benutzerschnittstelle
Abbildung 15
Referenzierung von
Eigenschaften
Weitere Anwendungsmöglichkeiten der Referenzierung von Eigenschaften
Neben dem Übersteuern der für Objektzeigereigenschaften zulässigen Objektklassen und Filter-Ausdrücke, kann
die Referenzierung von Eigenschaften auch für eine Reihe von anderen Anwendungsfällen eingesetzt werden.
Unter anderem wird die Referenzierung von Eigenschaften zur Definition der in den Übersichten angezeigten
Metadaten verwendet. Weitere Informationen hierzu finden Sie im Kapitel „Übersichten“ auf Seite 161.
Um die Anwendungsmöglichkeiten der Referenzierung von Eigenschaften möglichst vielseitig zu gestalten, kann
als Auslöser ein beliebiges Komponentenobjekt verwendet werden. Es muss nicht unbedingt eine Objektzeigereigenschaft angegeben werden.
Tabelle 8 gibt einen Überblick über wichtige Konfigurationsmöglichkeiten mithilfe von Referenzierungen von
Eigenschaften.
77
AUSLÖSER
BESCHREIBUNG
[email protected]:AcceptObject
Die referenzierte Eigenschaft definiert die zulässigen Objektklassen, zu denen ein Schriftstück registriert werden kann.
[email protected]:RegisterObject
Die referenzierte Eigenschaft definiert die zulässigen Objektklassen, zu denen ein Geschäftsstück
protokolliert werden kann.
[email protected]:PrintContents
Die referenzierten Eigenschaften definieren die
Inhalte, die gedruckt werden, wenn der Menübefehl Inhalt drucken auf ein Objekt aufgerufen
wird.
[email protected]:GetTextDocMenu
Diese Objektzeiger-Referenzierung erlaubt die Einschränkung der im Menü Text-Dokumente angezeigten Einträge. Die referenzierten Eigenschaften
definieren die dynamisch generierten Menüeinträge, die im Menü Text-Dokumente aufscheinen.
[email protected]:objmasterview
Die referenzierte Eigenschaft definiert, welche
Übersicht in der Hauptübersicht angezeigt werden
soll.
[email protected]:addressees
mit Kontext [email protected]:
CopyAddressees
Beim Kopieren der zusammengesetzten Eigenschaft Adressaten werden nur die definierten
Eigenschaften der einzelnen Adressatenzeilen
kopiert.
3. Initialisierung und Anpassung von Werten
3.3 Anpassungen der Benutzerschnittstelle
AUSLÖSER
BESCHREIBUNG
[email protected]:
CtxCreateIncoming
Die referenzierte Eigenschaft definiert die
erzeugbaren Objektklassen für die Registerkarte
Dokumente im Posteingang.
[email protected]:CtxPickAddress
Diese Objektzeiger-Referenzierung erlaubt die
Anpassung der vom Control
[email protected]:CTRLAddressee
angezeigten Eigenschaften zur Datenübernahme
in die Freitexteigenschaften eines Adressaten.
Tabelle 8: Spezielle Auslöser für die Referenzierung von Eigenschaften
Zur Auswertung der in der eGov-Konfiguration hinterlegten Referenzierungen dient die Aktion
[email protected]:GetView. Im ersten Parameter ist der Aktion die Quell-Eigenschaft bzw. das Komponentenobjekt zu übergeben, das mit dem Auslöser der in der Eigenschaft Referenzierung von Eigenschaften der eGov-Konfiguration definierten Referenzierungseinträge verglichen wird. Wird ein passender Eintrag
gefunden, so liefert die Aktion im zweiten Parameter die in Eigenschaft(en) hinterlegten bzw. durch Auswertung des Ausdrucks in Ausdruck (Ziel) ermittelten Ziel-Eigenschaften.
79
Beispiel
Anforderung
Beim Duplizieren einer Erledigung sollen von den Einträgen in der zusammengesetzten Eigenschaft
Adressaten ([email protected]:addressees) nur die Eigenschaften Adressat
([email protected]:addressee)
und
Versandart
([email protected]:
addrtransmedia) kopiert werden. Sofern Werte in den Freitexteigenschaften definiert wurden,
sollen diese nicht kopiert werden.
Lösungsansatz
In der Eigenschaft Referenzierung von Eigenschaften der eGov-Konfiguration wird ein Eintrag für den
Kontext [email protected]:CopyAddressees und den Auslöser Adressaten hinterlegt. In der
Eigenschaft Eigenschaft(en) werden die beiden zu kopierenden Eigenschaften Adressat und Versandart eingetragen.
3.4 Auswertung von Ausdrücken
Die Fabasoft eGov-Suite stellt eine Reihe von hilfreichen Aktionen für die Arbeit mit Fabasoft Components
Expressions zur Verfügung.
Ausdrücke für Auslöser
Die Softwarekomponente [email protected] bietet mit der Aktion [email protected]:
GetExprContextValue einen vielseitig einsetzbaren Mechanismus zur Auswertung von in der eGovKonfiguration vordefinierten Ausdrücken.
Dieser Mechanismus bietet vor allem den Vorteil, dass beträchtliche Teile der eGov-Konfiguration in Form von
vordefinierten Ausdrücken mitgeliefert werden können, die dann in einer projekt- bzw. mandantenspezifischen
3. Initialisierung und Anpassung von Werten
3.3 Anpassungen der Benutzerschnittstelle
3.4 Auswertung von Ausdrücken
eGov-Konfiguration auf einfache Weise mit projekt- bzw. kundenspezifischen Ausdrücken überschrieben werden
können.
Die eGov-Konfiguration enthält eine Reihe zusammengesetzter Eigenschaften des Typs [email protected]:
ContextExpression, in denen in der Eigenschaft Ausdruck ([email protected]:ctxeexpr)
vordefinierte Ausdrücke hinterlegt werden können. In der folgenden Aufzählung werden die am häufigsten verwendeten zusammengesetzten Eigenschaften zur Hinterlegung von vordefinierten Ausdrücken kurz dargestellt:
°
Ausdrücke für Auslöser ([email protected]:knownctxexprs) dient zur Definition von allgemeinen Ausdrücken, die an verschiedensten Stellen ausgewertet werden.
°
Ausdrücke
für
Vorbedingungen
von
Unterschriften
([email protected]:
signprecondctxexprs) speichert Ausdrücke zur Berechnung der Vorbedingungen, die erfüllt sein
müssen, bevor eine elektronische Unterschrift auf einem bestimmten Objekt angebracht werden darf.
°
Ausdrücke für den Workflow ([email protected]:wfctxexprs) dient zur Hinterlegung von
workflowspezifischen Ausdrücken und erlaubt unter anderem eine generische Definition von ArbeitsschrittWrappern.
°
Ausdrücke für die Initialisierung ([email protected]:initctxexprs) bietet die Möglichkeit
zur Hinterlegung von Ausdrücken, die im Rahmen der Initialisierungsschritte ausgewertet werden sollen.
Die Initialisierungsschritte werden in der eGov-Konfiguration in der Eigenschaft Initialisierung
([email protected]:objinitconfig) definiert.
°
Ausdrücke für das Versenden von Objekten ([email protected]:dispctxexprs) erlaubt
die Hinterlegung von Ausdrücken zur weiteren Anpassung der Abfertigungsschritte beim Versenden von
Objekten.
Standardmäßig wird von der Aktion [email protected]:GetExprContextValue die Eigenschaft
Ausdrücke für Auslöser ([email protected]:knownctxexprs) ausgewertet.
Tabelle 9 zeigt die für die Aktion [email protected]:GetExprContextValue zulässigen Parameter.
81
#
PARAMETER
TYP
BESCHREIBUNG
1
context
OBJECT
Parameter 1 enthält den Auslöser
([email protected]:ctxectx) zur Ermittlung
der gewünschten Zeile in der Liste der Ausdrücke.
2
scope
DICTIONARY
Parameter 2 enthält ein optionales DICTIONARY,
das während der Auswertung des Ausdrucks als globaler Scope zur Verfügung gestellt wird.
3
items
beliebiger Typ
Parameter 3 liefert das Ergebnis der Auswertung des
Ausdrucks.
4
attrdef
OBJECT
Parameter 4 bestimmt die Eigenschaft der eGovKonfiguration, die ausgewertet werden soll; dabei
muss es sich um eine Eigenschaft des Typs
[email protected]:
ContextExpression handeln.
5
extctx
OBJECT
Parameter 5 entält einen optionalen Kontext
([email protected]:ctxectxex) zur Ermittlung der gewünschten Zeile in der Liste der
Ausdrücke.
Tabelle 9: Parameter der Aktion [email protected]:GetExprContextValue
3. Initialisierung und Anpassung von Werten
3.4 Auswertung von Ausdrücken
Beispiel
Anforderung
In einem Arbeitsschritt einer Aktivität sollen die ausgewählten Beilagen eines Eingangsstücks durch
Anbringen der elektronischen Unterschrift Genehmigt ([email protected]:SIGN_APPROVED)
vom Benutzer genehmigt werden.
Die Beilagen von Eingangsstücken werden im Fabasoft Components Mandanten A in der Eigenschaft
Schriftstücke ([email protected]:subfileattachments) gespeichert und im Fabasoft Components Mandanten B in der Eigenschaft Elektronische Beilagen ([email protected]:
incattachmentobjs).
Lösungsansatz
Zur Auswahl der Beilagen wird ein neuer Arbeitsschritt-Wrapper mit Selektion erzeugt, der für die Anbringung der Unterschrift Genehmigt auf den ausgewählten Beilagen sorgt.
Die betroffenen Objekte ([email protected]:actwfobjs) des Arbeitsschritt-Wrappers werden
unter Verwendung der Aktion [email protected]:GetExprContextValue ermittelt:
[email protected]:GetExprContextValue(::ctx,
::this,,#[email protected]:wfctxexprs)[3]
In der eGov-Konfiguration für Fabasoft Components Mandant A wird in der Eigenschaft Ausdrücke für
den Workflow eine entsprechende Zeile mit dem Arbeitsschritt-Wrapper als Auslöser und dem Ausdruck [email protected]:subfileattachments hinzugefügt. Analog dazu wird in der eGovKonfiguration für Fabasoft Components Mandant B der Ausdruck [email protected]:
incattachmentobjs verwendet.
83
Werteverzeichnisse für Auslöser
Ein Werteverzeichnis entspricht einer Liste von Werten, die unter definierten Schlüsseln abgelegt sind [KlWi04].
In einem Werteverzeichnis kann eine beliebige Anzahl von Einträgen gespeichert werden. Jeder Eintrag besteht
aus einer eindeutigen Zeichenkette, die als Schlüssel dient, und einer Liste von Werten eines beliebigen Typs.
Ein Eintrag in einem Werteverzeichnis ist also ein Tupel aus einem Schlüssel und einem Wert.
Die Aktion [email protected]:GetContextDictionary dient zur Ermittlung von vordefinierten
Werteverzeichnissen, die in der eGov-Konfiguration in zusammengesetzten Eigenschaften des Typs
[email protected]:ContextDictionary hinterlegt werden können.
Standardmäßig wird von der Aktion [email protected]:GetContextDictionary die Eigenschaft
Werteverzeichnisse für Auslöser ([email protected]:knownctxdicts) ausgewertet.
Die für die Aktion [email protected]:GetContextDictionary zulässigen Parameter sind in
Tabelle 10 zusammengefasst.
3. Initialisierung und Anpassung von Werten
3.4 Auswertung von Ausdrücken
#
PARAMETER
TYP
BESCHREIBUNG
1
attrdef
OBJECT
Parameter 1 bestimmt die Eigenschaft der
eGov-Konfiguration, die ausgewertet werden
soll; dabei muss es sich um eine Eigenschaft
des Typs [email protected]:
ContextDictionary handeln.
2
trigger
OBJECT
In Parameter 2 wird der Auslöser
([email protected]:ctxdctx) zur
Ermittlung der gewünschten Zeile in der Liste
der Konfigurationseinträge übergeben.
3
scope
DICTIONARY
In Parameter 3 wird ein optionales
DICTIONARY, das während der Auswertung
als globaler Scope zur Verfügung gestellt wird,
übergeben.
4
dict
DICTIONARY
Parameter 4 liefert ein Werteverzeichnis als
Ergebnis.
Tabelle 10: Parameter der Aktion [email protected]:GetContextDictionary
Beispiel
Wenn von einem Benutzer im Postkorb das Importieren der Dateien eines Verzeichnisses angestoßen wird,
erfolgt implizit ein Aufruf der Aktion [email protected]:GetContextDictionary zur Ermittlung der zu importierenden Dateitypen und der zugehörigen Objektklassen. Hierfür wird in der eGov-Konfiguration in der Eigenschaft Werteverzeichnisse für Auslöser ein Werteverzeichnis hinterlegt. Als Auslöser wird die Aktion [email protected]:ImportFolderContents verwendet.
85
Vordefinierter Cache
Der vordefinierte Cache dient vorrangig zur Initialisierung des Caches von Objektzeigereigenschaften – also im
Wesentlichen zur Einschränkung der in Objektzeigereigenschaften auswählbaren Objekte.
Die Berechnung des vordefinierten Caches erfolgt durch Aufruf der Aktion [email protected]:
GetPredefinedCache, die die Eigenschaft Vordefinierter Cache ([email protected]:
confpredefcache) auswertet. Die Parameter der Aktion sind in Tabelle 11 ersichtlich.
#
PARAMETER
TYP
BESCHREIBUNG
1
trigger
OBJECT
In Parameter 1 muss ein Auslöser
([email protected]:
predefcachetrigger) zur Ermittlung der
gewünschten Konfigurationszeile übergeben werden.
2
cache
beliebiger Typ
Die in Parameter 2 an die Aktion übergebenen Werte
stehen während der Auswertung des Ausdrucks zur
Berechnung des Caches unter dem Schlüssel
::value im globalen Scope zur Verfügung. Das
Ergebnis der Auswertung wird ebenso in Parameter 2
zurückgeliefert.
Tabelle 11: Parameter der Aktion [email protected]:GetPredefinedCache
Um den vordefinierten Cache einer Objektzeigereigenschaft zu befüllen, ist in der eGov-Konfiguration auf der
Registerkarte Objektzeiger in der zusammengesetzten Eigenschaft Vordefinierter Cache ein entsprechender
Eintrag zu erstellen:
°
In der Eigenschaft Auslöser ([email protected]:predefcachetrigger) ist die Objektzeigereigenschaft einzutragen, für die der Cache verwendet werden soll.
3. Initialisierung und Anpassung von Werten
3.4 Auswertung von Ausdrücken
°
Der in der Eigenschaft Ausdruck (Cache) ([email protected]:predefcacheexpr) eingetragene Ausdruck muss als Rückgabewert eine Objektliste liefern.
°
Um die in einer Objektzeigereigenschaft auswählbaren Objekte zu filtern, ist die Aktion
[email protected]:GetPredefinedCache
im
Filter-Ausdruck
für
Werte
([email protected]:attrfilterexpr) der Objektzeigereigenschaft zu verwenden (siehe Abbildung 16). Ebenso kann die Aktion auch im Ausdruck zur Berechnung des Werts
([email protected]:attrvalueexpr) Verwendung finden.
Beispiel
Anforderung
Beim Erzeugen einer Akte sollen in der Eigenschaft Zuständiger Referent ([email protected]:
fileresponsible) nur Mitglieder der Organisationseinheit ausgewählt werden können, die in der
Eigenschaft Zuständige OE ([email protected]:fileresporg) angegeben wurde. Wenn keine
Zuständige OE definiert wurde, sollen die in der Eigenschaft Zuständiger Referent auswählbaren
Werte jedoch nicht eingeschränkt werden.
Lösungsansatz
Für die Eigenschaft Zuständiger Referent wird folgender Filter-Ausdruck für Werte definiert:
[email protected]:OBJECTLIST([email protected]:
GetPreDefinedCache(#[email protected]:fileresponsible, ::this)[2])
Weiters wird in der eGov-Konfiguration in der Eigenschaft Vordefinierter Cache ein entsprechender Eintrag für den Auslöser Zuständiger Referent hinzugefügt und folgender Ausdruck (Cache) eingetragen:
OBJECTLIST([email protected]:fileresporg != null?
[email protected]:[email protected]:grmembers : ::value)
87
Abbildung 16
Vordefinierter Cache
Filtern von Objektlisten anhand des Gültigkeitsdatums
Die Aktion [email protected]:FilterValidObjects ermöglicht das Filtern einer Objektliste, die
der Aktion in Parameter 2 übergebenen wurde. Die Filterung erfolgt anhand des Gültigkeitszeitraums der in der
Objektliste enthaltenen Objekte. Wenn in Parameter 2 keine Objektliste an die Aktion übergeben wird, wird im
Zuge der Ausführung die Aktion [email protected]:GetPredefinedCache aufgerufen, um eine
Liste von Objekten zum Filtern zu ermitteln.
Ein Objekt der Objektliste wird dann als gültig betrachtet, wenn die Eigenschaften Gültig von
([email protected]:objvalidfrom) und Gültig bis ([email protected]:objvalidto) innerhalb
des in den Parametern 3 und 4 an die Aktion übergebenen Gültigkeitszeitraums liegen bzw. nicht definiert sind.
Wenn in Parameter 3 und 4 keine Werte an die Aktion übergeben werden, wird das aktuelle Datum für die
3. Initialisierung und Anpassung von Werten
3.4 Auswertung von Ausdrücken
Prüfung des Gültigkeitszeitraums verwendet. Als Ergebnis liefert die Aktion in Parameter 2 diejenigen Objekte
zurück, die dem übergebenen Gültigkeitszeitraum entsprechen.
Beispiel
Anforderung
In der Eigenschaft Geschäftsstücktyp ([email protected]:subfiletype) sollen nur gültige
Geschäftsstücktypen auswählbar sein. Geschäftsstücktypen, deren Gültigkeitszeitraum abgelaufen ist, sollen beim Erzeugen einer Erledigung vom Benutzer nicht mehr ausgewählt werden können.
Lösungsansatz
Für die Eigenschaft Geschäftsstücktyp wird folgender
([email protected]:attrfilterexpr) definiert:
Filter-Ausdruck
für
Werte
OBJECTLIST([email protected]:FilterValidObjects(#[email protected]:
subfiletype,::this)[2])
In der eGov-Konfiguration wird in der Eigenschaft Vordefinierter Cache von der Softwarekomponente
[email protected] zur Ermittlung der Geschäftsstücktypen standardmäßig ein Eintrag für den Auslöser Geschäftsstücktyp hinterlegt.
89
Kontext-Symbole
Die Fabasoft eGov-Suite bietet eine Funktion für die kontextbasierte Berechnung des Symbols und des Minisymbols eines Objekts.
In der eGov-Konfiguration können auf der Registerkarte Regeln in der Eigenschaft Kontext-Symbole
([email protected]:knownctxsymbols) kontextabhängige Symbole und Minisymbole hinterlegt
werden:
°
Als Auslöser ([email protected]:ctxsymtrigger) kann ein beliebiges Komponentenobjekt verwendet werden, das zur Ermittlung der gewünschten Konfigurationszeile dient.
°
Um ein vordefiniertes Symbol zu verwenden, ist dieses in der Eigenschaft Symbol
([email protected]:ctxsymicon) einzutragen. Analog dazu ist ein vordefiniertes Minisymbol in
der Eigenschaft Minisymbol ([email protected]:ctxsymmini) zu hinterlegen.
°
In der Eigenschaft Ausdruck (::icon, ::mini) ([email protected]:ctxsymexpr) kann ein Ausdruck
zur Ermittlung eines Symbols und eines Minisymbols hinterlegt werden. Das ermittelte Symbol muss unter
dem Schlüssel ::icon und das Minisymbol unter dem Schlüssel ::mini im globalen Scope zurückgeliefert werden. Während der Auswertung des Ausdrucks stehen das aktuelle Objekt im lokalen Scope this
und der Auslöser unter dem Schlüssel ::trigger im globalen Scope zur Verfügung. Das durch den Ausdruck ermittelte Symbol bzw. Minisymbol überschreibt den in Symbol bzw. Minisymbol definierten Wert.
Die Aktion [email protected]:GetContextSymbols dient zur Auswertung der Kontext-SymbolKonfiguration. Tabelle 12 zeigt die Liste der Parameter der Aktion.
3. Initialisierung und Anpassung von Werten
3.4 Auswertung von Ausdrücken
#
PARAMETER
TYP
BESCHREIBUNG
1
attrdef
OBJECT
Parameter 1 bestimmt die Eigenschaft der
eGov-Konfiguration, die ausgewertet werden
soll; dabei muss es sich um eine Eigenschaft
des Typs [email protected]:
ContextSymbols handeln.
2
trigger
OBJECT
In Parameter 2 wird der Auslöser
([email protected]:
ctxsymtrigger) zur Ermittlung der
gewünschten Zeile in der Liste der
Konfigurationseinträge übergeben.
3
scope
DICTIONARY
In Parameter 3 wird ein optionales
DICTIONARY, das während der Auswertung
als globaler Scope zur Verfügung gestellt wird,
übergeben.
4
icon
OBJECT
Parameter 4 liefert das aus der eGov-Konfiguration ermittelte Symbol.
5
mini
OBJECT
Parameter 5 liefert das aus der
eGov-Konfiguration ermittelte Minisymbol.
Tabelle 12: Parameter der Aktion [email protected]:GetContextSymbols
Zum Setzen der in der eGov-Konfiguration definierten Kontext-Symbole kann die Aktion
[email protected]:ApplyContextSymbols verwendet werden. [email protected]:
ApplyContextSymbols ruft die Aktion [email protected]:GetContextSymbols auf, um
91
das für den übergebenen Kontext in der eGov-Konfiguration hinterlegte Symbol und Minisymbol zu ermitteln.
Wenn in der eGov-Konfiguration ein gültiger Eintrag in der Eigenschaft Kontext-Symbole gefunden wird,
ändert die Aktion [email protected]:ApplyContextSymbols das Symbol bzw. Minisymbol des
Objekts, auf das die Aktion aufgerufen wurde.
Die Parameter der Aktion [email protected]:ApplyContextSymbols werden in Tabelle 13
beschrieben. Wenn in Parameter 3 der Wert „true“ übergeben wird oder der Parameter nicht übergeben wird,
werden Symbol und Minisymbol des betreffenden Objekts zurückgesetzt, bevor die durch die Aktion
[email protected]:GetContextSymbols ermittelten Symbole gesetzt werden. Das hat zur Folge,
dass das Standardsymbol bzw. -minisymbol des Objekts verwendet wird, wenn für den an
[email protected]:ApplyContextSymbols übergebenen Auslöser in der eGov-Konfiguration kein
Symbol bzw. Minisymbol ermittelt werden kann.
#
PARAMETER
TYP
BESCHREIBUNG
1
trigger
OBJECT
In Parameter 1 wird der Auslöser
([email protected]:
ctxsymtrigger) zur Ermittlung der
gewünschten Zeile der Eigenschaft
Kontext-Symbole übergeben.
2
scope
DICTIONARY
In Parameter 2 wird ein optionales
DICTIONARY, das während der Auswertung
als globaler Scope zur Verfügung gestellt wird,
übergeben.
3
reset
BOOLEAN
Wird in Parameter 3 der Wert „false“ übergeben, werden Symbol und Minisymbol des
betreffenden Objekts nicht zurückgesetzt.
Tabelle 13: Parameter der Aktion [email protected]:ApplyContextSymbols
3. Initialisierung und Anpassung von Werten
3.4 Auswertung von Ausdrücken
Beispiel
Anforderung
Dringende Vorgänge sollen durch ihr Symbol und Minisymbol speziell gekennzeichnet werden.
Lösungsansatz
In der Set-Aktion der zusammengesetzten Eigenschaft Dringlichkeit ([email protected]:
fileurgency) erfolgt ein Aufruf der Aktion [email protected]:ApplyContextSymbols,
die die Kontext-Symbol-Konfiguration auswertet.
Um Symbol und Minisymbol eines Vorgangs in Abhängigkeit des Werts der Eigenschaft Vermerk
([email protected]:urgency) zu ermitteln, wird in der eGov-Konfiguration in der Eigenschaft
Kontext-Symbole der in Abbildung 17 dargestellte Eintrag eingefügt.
93
Abbildung 17
Kontext-Symbole
Integrität
Integritätsprüfungen werden verwendet, um das Vernichten oder Entfernen von Objekten aus Objektlisten aufgrund von in der eGov-Konfiguration vordefinierten Regeln einzuschränken. Ausgewertet werden diese Integritätsprüfungen von der Aktion [email protected]:EnforceIntegrity, die als Regel implementiert und als Pre-Wrapper bei folgenden Aktionen eingetragen ist:
°
°
[email protected]:ObjectDelete wird zum Vernichten eines Objekts aufgerufen.
°
[email protected]:DeleteObject wird aufgerufen, wenn ein Objekt in den Papierkorb
gelegt wird.
[email protected]:UnshareObject wird beim Entfernen eines Objekts aus einer Objektliste aufgerufen.
3. Initialisierung und Anpassung von Werten
3.4 Auswertung von Ausdrücken
°
[email protected]:DeleteWorkFlowObject wird zum Vernichten eines Objekts in einer Prozessinstanz aufgerufen.
Die Aktion [email protected]:EnforceIntegrity wertet die in der eGov-Konfiguration auf der
Registerkarte Regeln befindliche zusammengesetzte Eigenschaft Integrität ([email protected]:
integrityconf) aus:
°
Als Auslöser ([email protected]:intconfctx) wird die Aktion herangezogen, bei der
[email protected]:EnforceIntegrity als Wrapper-Aktion eingetragen ist, zum Beispiel
[email protected]:UnshareObject oder [email protected]:ObjectDelete.
°
In der Eigenschaft Verhindern, wenn ([email protected]:intconfexpr) kann ein Ausdruck definiert werden, um das Ausführen der von [email protected]:EnforceIntegrity gewrappten
Aktion zu verhindern. Während der Auswertung des Ausdrucks stehen im lokalen Scope this das aktuelle Objekt und im globalen Scope ::this die in Tabelle 14 aufgelisteten Schlüssel zur Verfügung. Wenn
der Ausdruck als Rückgabewert „false“ liefert, wird die Aktion ausgeführt. Liefert der Ausdruck den Rückgabewert „true“, wird die Ausführung der Aktion verhindert und dem Benutzer die Fehlermeldung
[email protected]:IntegrityViolation angezeigt. Der Text der Fehlermeldung wird durch
Aufruf der Aktion [email protected]:FormatValue ermittelt, die die Einstellungen in der Eigenschaft Wertformatierungen (Fehler) der eGov-Konfiguration auswertet.
°
Wenn der in der Eigenschaft Verhindern, wenn definierte Ausdruck den Rückgabewert „false“ liefert, wird
der in der Eigenschaft Version erzeugen, wenn ([email protected]:intconfversexpr) hinterlegte Ausdruck ausgewertet. Liefert dieser Ausdruck den Rückgabewert „true“, wird vor der Ausführung
der gewrappten Aktion eine Version von den durch Auswertung des Ausdrucks in der Eigenschaft Version
erzeugen von ([email protected]:intconfversobjs) ermittelten Objekten erzeugt.
°
Der in der Eigenschaft Ausdruck (Erfolgreiche Überprüfung) ([email protected]:
intconfexec) hinterlegte Ausdruck wird ausgeführt, wenn die Ausführung der von
[email protected]:EnforceIntegrity gewrappten Aktion erlaubt wird.
95
SCHLÜSSEL
BESCHREIBUNG
trigger
Dieser Schlüssel enthält die Aktion, die die Integritätsprüfung ausgelöst hat.
source
Dieser Schlüssel enthält das Objekt, aus dem das aktuelle Objekt entfernt
werden soll – also der Container des aktuellen Objekts.
view
Dieser Schlüssel enthält die Objektliste, aus der das aktuelle Objekt entfernt
werden soll.
Tabelle 14: Globaler Scope bei der Auswertung der Ausdrücke zur Integritätsprüfung
Abbildung 18
Integrität
3. Initialisierung und Anpassung von Werten
3.4 Auswertung von Ausdrücken
Beispiel
Anforderung
Das Entfernen von Objekten aus der Eigenschaft Beilagen ([email protected]:
fileattachments bzw. [email protected]:subfileattachments) einer Akte bzw.
eines Vorgangs soll verhindert werden. Es soll jedoch möglich sein, Objekte aus anderen definierten Objektzeigereigenschaften einer Akte bzw. eines Vorgangs, wie zum Beispiel der Eigenschaft Vorzahlen
([email protected]:fileprevfiles), zu entfernen.
Lösungsansatz
Der in Abbildung 18 dargestellte Konfigurationseintrag wird in die zusammengesetzte Eigenschaft Integrität der eGov-Konfiguration eingefügt.
Im in der Eigenschaft Verhindern, wenn angegebenen Ausdruck wird unter anderem die Aktion
[email protected]:GetView aufgerufen, um die Eigenschaften zu ermitteln, für die das Entfernen
von Beilagen erlaubt werden soll.
Hierfür ist eine Objektzeiger-Referenzierung für den Auslöser [email protected]:UnshareObject in
der Eigenschaft Referenzierung von Eigenschaften der eGov-Konfiguration zu definieren, in der die
Objektzeigereigenschaften hinterlegt werden, aus denen Objekte entfernt werden dürfen.
97
3.5
Verwendung der eGov-Konfiguration
zur Anpassung des Adressaten-Controls
In der Eigenschaft Darstellung ([email protected]:attrrepresentation) der Eigenschaft
Adressat ([email protected]:addressee) ist standardmäßig das Adressaten-Control
[email protected]:CTRLAddressee zur Darstellung der Eigenschaft eingetragen.
Das in Abbildung 19 dargestellte Adressaten-Control ermöglicht die Übernahme definierbarer Metadaten eines
in der Eigenschaft Adressat referenzierten Objekts in die Freitexteigenschaften einer Erledigung.
Wenn beispielsweise eine in der Eigenschaft Adressat referenzierte Person über mehrere E-Mail-Adressen verfügt, erlaubt das Adressaten-Control dem Benutzer die Auswahl der gewünschten E-Mail-Adresse, an die der
Versand der Erledigung erfolgen soll.
Abbildung 19
Adressaten-Control
3. Initialisierung und Anpassung von Werten
3.5 Verwendung der eGov-Konfiguration
zur Anpassung des Adressaten-Controls
Damit das Adressaten-Control verwendet werden kann, muss es zuerst in der eGov-Konfiguration aktiviert werden. Hierzu ist in der Eigenschaft Ausdrücke für Auslöser ([email protected]:knownctxexprs) für
den Auslöser ([email protected]:ctxectx) [email protected]:CtxUseAddresseeCtrl
ein Ausdruck ([email protected]:ctxeexpr) zu hinterlegen, der den Wert „true“ zurückliefert.
Um zu bestimmen, welche Eigenschaften des Adressaten-Objekts zur Auswahl angeboten werden, wertet das
Adressaten-Control die Einstellungen für den Auslöser ([email protected]:usagectx)
[email protected]:CtxPickAddress der zusammengesetzten Eigenschaft Referenzierung von
Eigenschaften der eGov-Konfiguration aus.
Zur Formatierung der im Adressaten-Control auswählbaren Eigenschaften werden die Einstellungen in der
Eigenschaft Wertformatierungen ([email protected]:valueformat) der eGov-Konfiguration ausgewertet. Als Auslöser ([email protected]:valformtrigger) wird [email protected]:
CtxPickAddress und als Kontext ([email protected]:valformctx) der Typ der zu formatierenden Eigenschaft verwendet.
Beispiel
Um mit dem Adressaten-Control eine Adresse aus der in der Eigenschaft Adresse
([email protected]:address) gespeicherten Liste von Adressen einer Person auswählen zu können, ist in der eGov-Konfiguration in der Eigenschaft Referenzierung von Eigenschaften ein Eintrag für
den Auslöser [email protected]:CtxPickAddress zu hinterlegen. In der Eigenschaft Eigenschaft(en) ist die Eigenschaft Adresse einzutragen.
Zur Formatierung der Darstellung der im Adressaten-Control auswählbaren Adressen kann folgender Ausdruck in den Wertformatierungen für den Auslöser [email protected]:CtxPickAddress
und den Kontext [email protected]:Address hinterlegt werden:
::[email protected]:
addrstreet + " " + ::[email protected]:
addrzipcode + " " + ::[email protected]:addrcity
99
Die Übernahme der ausgewählten Werte aus den Metadaten des Adressaten-Objekts in die Freitexteigenschaften der Erledigung erfolgt durch Auswertung eines in der eGov-Konfiguration in der Eigenschaft Ausdrücke für
Auslöser ([email protected]:knownctxexprs) definierten Ausdrucks. Als Auslöser
([email protected]:ctxectx) wird [email protected]:CtxPickAddress verwendet.
Während der Auswertung des in der Eigenschaft Ausdruck ([email protected]:ctxeexpr) hinterlegten Ausdrucks wird der im Adressaten-Control ausgewählte Wert im globalen Scope ::this unter dem
Schlüssel ::src zur Verfügung gestellt. Auf die Aggregatszeile der zusammengesetzten Eigenschaft Adressaten ([email protected]:addressees), in die die Werte übernommen werden sollen, kann unter dem
Schlüssel ::dst zugegriffen werden. Der Ausdruck muss die mit den übernommenen Werten initialisierte
Aggregatszeile als Rückgabewert liefern.
Beispiel
Folgender Ausdruck kann in der Eigenschaft Ausdrücke für Auslöser für den Auslöser
[email protected]:CtxPickAddress hinterlegt werden, um die Metadaten für eine mit dem
Adressaten-Control ausgewählte Adresse in die entsprechenden Freitexteigenschaften der zusammengesetzten Eigenschaft Adressaten einer Erledigung zu übernehmen:
(::src.GetTypeDefinition() == #[email protected]:Address)?
(::[email protected]:addrstreet = ::[email protected]:
addrstreet, ::[email protected]:addrzipcode =
::[email protected]:addrzipcode, ::[email protected]:
addrcity = ::[email protected]:addrcity) : null, ::dst
3. Initialisierung und Anpassung von Werten
3.5 Verwendung der eGov-Konfiguration
zur Anpassung des Adressaten-Controls
101
4
Regeln, ACLs
4 und Unterschriften
Die Anpassung der vordefinierten Einstellungen für Regeln, ACLs und Unterschriften an projektspezifische Anforderungen ist eine der häufigsten Formen der Konfiguration der Fabasoft eGov-Suite.
Dieses Kapitel bietet einen kompakten Überblick über die von der Fabasoft eGov-Suite dafür zur
Verfügung gestellten Mechanismen.
4.1
regeln
Die eGov-Konfiguration bietet einen Mechanismus zur dynamischen Aktivierung bzw. Deaktivierung von
Geschäftsregeln, um so das Standardverhalten der Fabasoft eGov-Suite an projektspezifische Anforderungen
anpassen zu können.
Geschäftsregeln können in der eGov-Konfiguration auf der Registerkarte Regeln in der Eigenschaft Regeln
([email protected]:ruleconfig) aktiviert bzw. deaktiviert werden.
Auswertungsreihenfolge der Regeln
Die zusammengesetzte Eigenschaft Regeln ist die einzige Eigenschaft in der eGov-Konfiguration, bei der die
Softwarekomponente ([email protected]:component) in die Auswertung miteinbezogen wird.
Die Eigenschaft Auswertungsreihenfolge der Regeln ([email protected]:rulevalprority)
dient zur Festlegung der Priorität, mit der die Einträge in der Eigenschaft Regeln ausgewertet werden. Je niedriger der Zahlenwert, desto höher ist die Priorität der Einträge der Softwarekomponente in der Eigenschaft
Regeln. Wenn für eine Softwarekomponente kein Eintrag in der Eigenschaft Auswertungsreihenfolge der
Regeln definiert ist, werden die Einträge der Softwarekomponente in der Eigenschaft Regeln ignoriert.
Die Priorität der Softwarekomponente zählt mehr als die definierte Objektklasse ([email protected]:
objclass). Wenn also in der Eigenschaft Regeln für den gleichen Auslöser mehrere Einträge verschiedener Softwarekomponenten existieren, werden die Einträge für die spezielleren Objektklassen ignoriert, wenn ein
allgemeinerer Eintrag von einer Softwarekomponente mit einer höheren Priorität existiert.
103
Standardmäßig ist der Softwarekomponente [email protected] die Priorität „1000“ zugeordnet. Die Regeln
von Softwarekomponenten mit einer niedrigeren Priorität werden vor den Regeln von [email protected]
ausgewertet, die mit einer höheren Priorität erst danach.
Abbildung 20
Auswertungsreihenfolge
der Regeln
4. Regeln, ACLs und Unterschriften
4.1 Regeln
Beispiel
Im Szenario in Abbildung 20 gibt es in der Eigenschaft Regeln zwei Einträge für die Objektklasse Objekt
und den Auslöser [email protected]:EnforceIntegrity: Einen der Softwarekomponente
[email protected] und einen der Softwarekomponente [email protected].
Da der Softwarekomponente [email protected] in der Eigenschaft Auswertungsreihenfolge der Regeln eine niedrigere Priorität („500“) zugewiesen wurde als der Softwarekomponente
[email protected] („1000“), wird bei der Auswertung der Regeln für den Auslöser
[email protected]:EnforceIntegrity der Eintrag von [email protected] verwendet und der Eintrag von [email protected] ignoriert. Die Regel [email protected]:
EnforceIntegrity würde im Beispiel somit nicht angewendet werden.
Auswertung der Regeln
Die Auswertung der Geschäftsregeln erfolgt durch Aufruf der Aktion [email protected]:ApplyRule,
die die Eigenschaft Regeln der eGov-Konfiguration auswertet. [email protected]:ApplyRule wird auf
das Objekt aufgerufen, für welches geprüft werden soll, ob eine bestimmte Regel anzuwenden ist. In Parameter
1 wird der Auslöser an die Aktion übergeben, der mit den in der eGov-Konfiguration in der zusammengesetzten Eigenschaft Regeln hinterlegten Auslösern verglichen wird. Die Aktion liefert in Parameter 2 einen boolschen Rückgabewert, der festlegt, ob die betreffende Regel angewendet werden soll. Liefert die Aktion den
Rückgabewert „true“, ist die entsprechende Regel aktiv und wird angewendet.
Wenn bei der Auswertung durch [email protected]:ApplyRule für eine Regel in der eGov-Konfigurationshierarchie in der Eigenschaft Regeln kein Eintrag gefunden werden kann, wird die betreffende Regel als
aktiv gewertet und angewendet. Regeln müssen also explizit deaktiviert werden, indem ein entsprechender Eintrag in die Eigenschaft Regeln der eGov-Konfiguration eingefügt wird.
Für Aktionen, die als Regeln implementiert werden, erfolgt ein impliziter Aufruf von
[email protected]:ApplyRule. Das Ergebnis der Auswertung der Eigenschaft Regeln der eGov-Kon-
105
figuration entscheidet dann, ob die Aktion ausführt wird. Wenn eine Regel deaktiviert ist, wird die entsprechende als Regel implementierte Aktion nicht ausgeführt.
Die zusammengesetzte Eigenschaft Regeln setzt sich aus folgenden Eigenschaften zusammen:
°
Auslöser ([email protected]:ruletriggers): In dieser Eigenschaft kann der Auslöser definiert
werden, durch den eine Regel ausgelöst wird. Für als Regel implementierte Aktionen ist das Aktionsobjekt
als Auslöser zu verwenden.
°
Softwarekomponente ([email protected]:component): Die in dieser Eigenschaft referenzierte
Softwarekomponente gibt die Priorität vor, mit der der betreffende Eintrag in der Eigenschaft Regeln ausgewertet werden soll.
°
Aktion zum dynamischen Ermitteln ([email protected]:ruledynapply): In dieser Eigenschaft
kann eine Aktion angegeben werden, die dynamisch ermittelt, ob die betreffende Regel angewendet werden soll.
°
Anwenden ([email protected]:ruleapply): Wird die Eigenschaft auf den Wert „Ja“ gesetzt,
wird die Regel angewendet.
°
Anwenden in Batch Mode ([email protected]:ruleapplybatchmode): Wird die Eigenschaft
auf den Wert „Ja“ gesetzt, wird die Regel im Batch Mode angewendet. Der Batch Mode wird unter
anderem für das Importieren von Daten mit Fabasoft Components/COLD verwendet. Um die Fabasoft
eGov-Suite in den Batch Mode zu versetzen, muss die Transaktionsvariable 1 der Softwarekomponente
[email protected] auf den Wert „true“ gesetzt werden.
°
Anwenden (GUI) ([email protected]:ruleapplygui): Erlaubt die explizite Deaktivierung einer
Regel für den Fabasoft Win32-Client der Version 6.
Aktion zum dynamischen Ermitteln
Wenn in einer Zeile der Eigenschaft Regeln eine Aktion zum dynamischen Ermitteln referenziert wird, kann
diese Aktion die statischen Einstellungen in den Eigenschaften Anwenden, Anwenden in Batch Mode und
Anwenden (GUI) übersteuern. Hierfür kann die Aktion in Parameter 3 einen boolschen Rückgabewert liefern,
4. Regeln, ACLs und Unterschriften
4.1 Regeln
der festlegt, ob die betreffende Regel angewendet werden soll. Wenn die Aktion in Parameter 3 keinen Rückgabewert liefert, gelten die statischen Einstellungen.
Eine Aktion zum dynamischen Ermitteln muss den Prototyp [email protected]:
ProtoGetApplyRule zugeordnet haben. Mit der Fabasoft eGov-Suite werden bereits die in Tabelle 15
aufgelisteten Aktionen zum dynamischen Ermitteln mitgeliefert.
AKTION
BESCHREIBUNG
[email protected]:
AdoptDescription
Die Regel wird angewendet, wenn die Eigenschaft In Gegenstand übernehmen ([email protected]:subjadoptdesc) eines
Aktenplaneintrags auf den Wert „Ja“ gesetzt
wurde.
[email protected]:AllowIncrement
Die Regel wird nur angewendet, wenn das Objekt
noch keine Subzahl zugewiesen hat.
[email protected]:
AllowUpdateReferred
Die Regel wird nur angewendet, wenn die Eigenschaft Gehört zu
([email protected]:referrednumber)
noch keinen gültigen Wert hat.
[email protected]:BotherUser
Der Benutzer wird gefragt, ob die Regel angewendet werden soll. Hierfür muss jedoch ein entsprechender Eintrag in der Eigenschaft Fragen
([email protected]:rulequestions)
der eGov-Konfiguration existieren.
107
AKTION
BESCHREIBUNG
[email protected]:ChangeProperty
Die Aktion [email protected]:
GetExprContextValue wird aufgerufen,
um die Eigenschaft Eigenschaften ändern
zulassen ([email protected]:
changeattrexprs) auszuwerten. Als Auslöser wird der Auslöser herangezogen, für den
die Regelauswertung aufgerufen wurde. Wenn in
der Eigenschaft Eigenschaften ändern zulassen für den Auslöser ein passender Eintrag
ermittelt werden kann, definiert der Rückgabewert des Ausdrucks, ob die Regel angewendet
wird.
[email protected]:IgnoreRestore
Die Regel wird nicht angewendet, wenn eine
Version eines Objekts wiederhergestellt wird.
Tabelle 15: Aktionen zum dynamischen Ermitteln
4. Regeln, ACLs und Unterschriften
4.1 Regeln
Beispiel
Anforderung
Wenn der Benutzer beim Erzeugen einer Akte im Konstruktorformular manuell einen Prozess für die neue
Akte initialisiert, soll das automatische Initialisieren eines Standardprozesses verhindert werden.
Lösungsansatz
Die automatische Initialisierung eines Prozesses auf einer Akte erfolgt im Rahmen von
[email protected]:PostGUI durch den Aufruf der Aktion [email protected]:
InitializeWorkFlow.
Um die automatische Initialisierung von Prozessen zu unterdrücken, muss die Ausführung der als Regel
implementierten Aktion [email protected]:InitializeWorkFlow verhindert werden. Hierzu
muss eine dynamische Regel in der eGov-Konfiguration hinterlegt werden.
Wie in Abbildung 21 ersichtlich, wird in der eGov-Konfiguration in der Eigenschaft Regeln ein Eintrag für
den Auslöser [email protected]:InitializeWorkFlow eingetragen. Als Aktion zum
dynamischen Ermitteln wird [email protected]:ChangeProperty ausgewählt.
Weiters wird in die Eigenschaft Eigenschaften ändern zulassen ein Eintrag für den Auslöser
[email protected]:InitializeWorkFlow eingefügt und der folgende Ausdruck hinterlegt:
[email protected]:workflow IS NULL
109
Abbildung 21
Auswertung von Regeln
Übersicht über vordefinierte Regeln
Dieser Abschnitt bietet eine kompakte Übersicht über die wichtigsten vordefinierten Regeln der Fabasoft
eGov-Suite.
[email protected]:EnforceIntegrity
Die Regel [email protected]:EnforceIntegrity prüft, ob das Vernichten bzw. Entfernen von Akten
und Geschäftsstücken erlaubt werden soll.
Wird die Regel [email protected]:EnforceIntegrity deaktiviert, erfolgt keine Integritätsprüfung
durch die Fabasoft eGov-Suite.
4. Regeln, ACLs und Unterschriften
4.1 Regeln
Weitere Informationen hierzu finden Sie im Kapitel „Integrität“ auf Seite 94.
[email protected]:ObjectDelete
Standardmäßig dürfen Akten und Geschäftsstücke nicht vernichtet werden. Es ist auch nicht erlaubt, in einer
Akte Objekte zu markieren und diese zu vernichten. Die Regel [email protected]:ObjectDelete prüft,
ob dieses Verhalten angewendet werden soll.
Wird die Regel [email protected]:ObjectDelete deaktiviert, wird das Vernichten von Akten und
Geschäftsstücken erlaubt – sofern dies nicht durch die Integritätsprüfung verhindert wird.
[email protected]:referrednumber
Standardmäßig wird die Eigenschaft Gehört zu ([email protected]:referrednumber) im Zuge der
Ausführung der Set-Aktion [email protected]:UpdateReferred geändert. Wenn zum Beispiel ein
neues Geschäftsstück zu einem Vorgang hinzugefügt wird, wird der Vorgang in der Eigenschaft Gehört zu des
Geschäftsstücks eingetragen.
Wird die Regel [email protected]:referrednumber deaktiviert, wird die Eigenschaft Gehört zu im
Rahmen der Ausführung der Aktion [email protected]:UpdateReferred nicht geändert.
[email protected]:GetNextOrdinal
Die Aktion [email protected]:GetNextOrdinal berechnet und setzt die Subzahl eines Objekts.
Durch die Deaktiverung dieser Regel kann verhindert werden, dass die Subzahl eines Objekts neu berechnet
wird.
[email protected]:TraverseObjName
Wenn die Regel [email protected]:TraverseObjName aktiviert ist, werden beim Setzen des
Namens eines Geschäftsstücks auch die Namen der Beilagen durch Aufruf von [email protected]:
VirtualValueGet formatiert und geändert.
111
[email protected]:SimpleRenameObject
Die Aktivierung der Regel [email protected]:SimpleRenameObject ermöglicht das manuelle
Ändern des Namens von Akten und Geschäftsstücken, zum Beispiel durch Aufruf des Menübefehls Umbenennen.
[email protected]:ObjectCopy
Die Aktion [email protected]:ObjectCopy ist als Copy-Aktion bei der Eigenschaft Beilagen
([email protected]:fileattachments bzw. [email protected]:subfileattachments)
einer Akte bzw. eines Geschäftsstücks eingetragen.
Wenn die Regel [email protected]:ObjectCopy aktiviert ist, werden die in der Eigenschaft Beilagen
referenzierten Objekte beim Kopieren einer Akte bzw. eines Geschäftsstücks mitkopiert.
Beispiel
Eine Akte referenziert in der Eigenschaft Beilagen zwei Vorgänge. Ist die Regel
[email protected]:ObjectCopy aktiviert, werden beim Duplizieren der Akte auch die beiden Vorgänge dupliziert. Die Kopie der Akte enthält dann in der Eigenschaft Beilagen Kopien der beiden Vorgänge der Originalakte.
Bei deaktivierter Regel [email protected]:ObjectCopy wird beim Duplizieren der Akte keine
Kopie der Vorgänge erzeugt.
[email protected]:AttrChildrenFixVersion
Die Aktion [email protected]:AttrChildrenFixVersion ist als Pre-Wrapper bei der Aktion
[email protected]:AttrChildrenFixVersion sowie als Aktion vor dem Speichern der Eigenschaft einer Version ([email protected]:attractfixver) bei den Eigenschaften Beilagen
([email protected]:fileattachments),
Primärinhalt
([email protected]:
4. Regeln, ACLs und Unterschriften
4.1 Regeln
subfilemasterdoc), Dokumentation ([email protected]:filedocumentation),
Referatsbogen ([email protected]:fileoverview), Kurzfassung ([email protected]:
filesummary) und Fristen ([email protected]:fileschedules) eingetragen.
Die Aktion [email protected]:AttrChildrenFixVersion sorgt dafür, dass die in der Objektzeigereigenschaft, bei der die Aktion [email protected]:AttrChildrenFixVersion als Aktion
vor dem Speichern der Eigenschaft einer Version eingetragen ist, gespeicherten Objekte mitversioniert
werden, wenn vom Container eine Version erzeugt wird.
[email protected]:GUIWhenCopied
Die Regel [email protected]:GUIWhenCopied steuert, ob beim Duplizieren eines Objekts eine
grafische Benutzerschnittstelle angezeigt werden soll.
[email protected]:DoNotAllowDuplPtrs
Wenn die Regel [email protected]:DoNotAllowDuplPtrs aktiviert ist, werden Objektzeiger, die
das gleiche Objekt referenzieren, jeweils bis auf einen automatisch aus jenen Objektlisten entfernt, für die die
Aktion [email protected]:AttachObjFilter als Set-Aktion eingetragen ist. Somit wird
gewährleistet, dass ein Objekt nicht mehrfach in einer der betreffenden Objektlisten enthalten ist.
[email protected]:CreateIfNotIdentified
Ist die Regel [email protected]:CreateIfNotIdentified aktiviert, wird bei der Übernahme der
Adressaten aus einer E-Mail durch die Aktion [email protected]:GetAddresseeFromEMail für
nicht über ihre E-Mail-Adresse identifizierbare Adressaten automatisch ein neues Objekt erzeugt.
[email protected]:FreetextAddressees
Die Regel [email protected]:FreetextAddressees legt fest, ob zusätzlich zu den Adressatenobjekten auch Freitextadressaten verwendet werden. Bei der Verwendung von Freitextadressaten werden in
113
einer Erledigung in der zusammengesetzten Eigenschaft Adressaten ([email protected]:addressees) zusätzlich zur Objektzeigereigenschaft Addressat ([email protected]:addressee) auch Freitextfelder zur Erfassung der Adressatendaten zur Verfügung gestellt.
[email protected]:InitializeWorkFlow
Durch Deaktivierung der Regel [email protected]:InitializeWorkFlow kann die automatische
Initialisierung von Prozessen, wie dies zum Beispiel beim Erzeugen von Akten der Fall ist, unterbunden werden.
[email protected]:GetInitContent
Die im Kapitel „Initialisierungsinhalte“ auf Seite 37 beschriebene Initialisierung von Inhalten wird nur dann
durchgeführt, wenn die Regel [email protected]:GetInitContent aktiviert ist.
4.2
ACL-Einstellungen und ACL-Übergänge
Die Fabasoft eGov-Suite bietet mit den ACL-Einstellungen und ACL-Übergängen konfigurierbare Mechanismen
zur automatischen Änderung der ACL definierter Objekte, wenn bestimmte Ereignisse eintreten.
Die Aktion [email protected]:ApplySecurity dient zur automatischen Änderung der ACL von
Objekten aufgrund vordefinierter Einstellungen in der eGov-Konfiguration. [email protected]:
ApplySecurity wird unter anderem von den in Tabelle 16 aufgelisteten Aktionen aufgerufen.
AKTION
BESCHREIBUNG
[email protected]:AttachObj
Diese Aktion setzt die Eigenschaft Gehört zu
([email protected]:referrednumber)
eines Objekts, wenn dieses einer Akte oder einem
Geschäftsstück zugeordnet wird.
4. Regeln, ACLs und Unterschriften
4.1 Regeln
4.2 ACL-Einstellungen und ACL-Übergänge
AKTION
BESCHREIBUNG
[email protected]:AttrSet
Diese Aktion wird beim Setzen der Eigenschaft
Zuständige OE ([email protected]:
fileresporg) bzw. Vertraulichkeitsstufe
([email protected]:
classified) einer Akte oder eines
Geschäftsstücks aufgerufen.
[email protected]:CreateInstance
Diese Aktion erzeugt ein neues Schriftstück aus
einer Dokumentvorlage eines Geschäftsstücks.
[email protected]:
FinalizeSignature
Diese Aktion bringt eine elektronische Unterschrift auf einem Objekt an. Als Auslöser wird
die Unterschriftenart verwendet, mit der das
betreffende Objekt unterschrieben wurde.
[email protected]:
GenerateTextDocObj
Diese Aktion erzeugt ein neues Text-Dokument.
[email protected]:PostGUI
Diese Aktion wird beim Erzeugen einer Akte bzw.
eines Geschäftsstücks aufgerufen. Als Auslöser
wird [email protected]:
ObjectConstructor verwendet.
[email protected]:ResetObjACL
Diese Aktion setzt die ACL eines Objekts nach
dem Duplizieren zurück.
Tabelle 16: Auslöser von [email protected]:ApplySecurity
115
Dazu wird im ersten Parameter ein Auslöser ([email protected]:aclconfigtriggers) an die Aktion übergeben, der zur Identifizierung der gewünschten Konfigurationszeile in der Eigenschaft ACL-Einstellungen ([email protected]:aclconfig) in der eGov-Konfiguration herangezogen wird. Sofern ein passender Eintrag gefunden werden kann, wird dieser wie folgt ausgewertet:
°
Zuerst wird kontrolliert, ob die Eigenschaft Aktion zum dynamischen Ermitteln
([email protected]:aclconfigdyn) eine Aktion referenziert, die die ACL dynamisch bestimmt.
Eine derartige Aktion muss den Prototyp [email protected]:ProtoGetACLObject zugewiesen
haben und in Parameter 1 ein Objekt der Objektklasse ACL ([email protected]:
AccessControlList) zurückliefern. Tabelle 17 gibt einen Überblick über die mitgelieferten Aktionen
zum dynamischen Ermitteln einer ACL.
°
Wenn keine Aktion zum dynamischen Ermitteln vorhanden ist oder diese keine ACL zurückliefert, wird
die in der Eigenschaft ACL ([email protected]:aclconfigacl) hinterlegte ACL herangezogen.
AKTION ZUM DYNAMISCHEN ERMITTELN
BESCHREIBUNG
[email protected]:GetACLExpr
Diese Aktion ermittelt die ACL durch Aufruf von
[email protected]:
GetExprContextValue. Als Auslöser
wird der an [email protected]:
ApplySecurity übergebene Auslöser verwendet.
[email protected]:
GetClassifiedACL
Diese Aktion ermittelt die ACL durch Aufruf von
[email protected]:
GetExprContextValue. Dabei wird als
Auslöser die Eigenschaft Vertraulichkeitsstufe
([email protected]:classified)
verwendet.
4. Regeln, ACLs und Unterschriften
4.2 ACL-Einstellungen und ACL-Übergänge
AKTION ZUM DYNAMISCHEN ERMITTELN
BESCHREIBUNG
[email protected]:GetInitialACL
Diese Aktion ermittelt die Standard-ACL für das
Objekt durch Aufruf von [email protected]:
AllowedACLsGet, die die für die aktuelle
Rolle des Benutzers zulässigen ACLs auswertet.
Die zulässigen ACLs können zum Beispiel bei der
Objektklasse des Objekts oder der Gruppe des
Benutzers eingeschränkt werden.
[email protected]:GetReferredACL
Diese Aktion liefert die ACL des in der Eigenschaft Gehört zu ([email protected]:
referrednumber) gespeicherten Objekts.
[email protected]:
GetTransitionACL
Diese Aktion ermittelt die ACL durch Auswertung
der Eigenschaft ACL-Übergänge
([email protected]:
acltransitionsex) der
eGov-Konfiguration.
Tabelle 17: Aktionen zum dynamischen Ermitteln einer ACL
Sofern an die Aktion [email protected]:ApplySecurity in Parameter 3 der Wert „true“ bzw. kein
Wert übergeben wurde, wird die ACL des Objekts, auf das die Aktion aufgerufen wurde, auf die aus der eGovKonfiguration ermittelte ACL geändert.
Anschließend werden die abhängigen Objekte berechnet, deren ACL ebenfalls auf die ermittelte ACL geändert
wird. Hierzu wird die Eigenschaft Anwenden auf ([email protected]:aclconfigapplyon) der in
der zusammengesetzten Eigenschaft ACL-Einstellungen ermittelten Konfigurationszeile ausgewertet. In der
Eigenschaft Anwenden auf kann eine Liste von Objektzeigereigenschaften hinterlegt werden. Die neue ACL
117
wird allen in den Objektzeigereigenschaften des aktuellen Objekts gespeicherten Objekten zugewiesen.
Wurden in der Eigenschaft Anwenden auf keine Objektzeigereigenschaften definiert, wird der in der Eigenschaft Anwenden auf (Ausdruck) ([email protected]:aclconfigapplyonexpr) hinterlegte
Ausdruck zum Ermitteln der betroffenen Objekte, deren ACLs geändert werden sollen, herangezogen.
Während der Auswertung des in der Eigenschaft Anwenden auf (Ausdruck) definierten Ausdrucks stehen im
globalen Scope ::this die in Tabelle 18 beschriebenen Schlüssel zur Verfügung. Im lokalen Scope this
liegt das aktuelle Objekt. Zum Zeitpunkt der Auswertung des Ausdrucks hat das aktuelle Objekt bereits die neue
ACL, wenn der Aktion [email protected]:ApplySecurity in Parameter 3 der Wert „true“ bzw. kein
Wert übergeben wurde.
Die Änderung der ACLs erfolgt durch den Aufruf der Aktion COOELAK:@1.1001:SetACL, an die sowohl
die aus der eGov-Konfiguration ermittelte ACL als auch der Auslöser als Parameter übergeben werden.
SCHLÜSSEL
BESCHREIBUNG
objclass
Dieser Schlüssel enthält die Objektklasse, die für die aus den ACL-Einstellungen ermittelte Zeile hinterlegt ist.
trigger
Dieser Schlüssel enthält den an [email protected]:
ApplySecurity übergebenen Auslöser.
curracl
Dieser Schlüssel enthält die aktuelle ACL des Objekts, auf das die Aktion
[email protected]:ApplySecurity aufgerufen wurde.
newacl
Dieser Schlüssel enthält die aus der eGov-Konfiguration ermittelte ACL,
welche dem aktuellen Objekt durch [email protected]:
ApplySecurity zugewiesen werden soll.
Tabelle 18: Schlüssel im globalen Scope bei der Auswertung von [email protected]:ApplySecurity
4. Regeln, ACLs und Unterschriften
4.2 ACL-Einstellungen und ACL-Übergänge
Vor dem Setzen der aus der eGov-Konfiguration ermittelten ACLs wird durch die Aktion COOELAK:
@1.1001:SetACL geprüft, ob es sich um einen erlaubten ACL-Übergang handelt. Dazu wird die Eigenschaft
Erlaubte ACL-Übergänge ([email protected]:acltransitions) der eGov-Konfiguration ausgewertet.
Beispiel
Anforderung
Beim Anbringen einer elektronischen Unterschrift der Unterschriftenart ([email protected]:
SignatureType) Ablegen ([email protected]:SIGN_DEPOSIT) auf einem Vorgang soll dieser die ACL für abgeschlossene Sachakten/Vorgänge ([email protected]:
ACLCompleted) zugewiesen bekommen.
Lösungsansatz
In der eGov-Konfiguration wird in der Eigenschaft ACL-Einstellungen ein neuer Eintrag für die Objektklasse Vorgang und den Auslöser Ablegen hinzugefügt. Als ACL wird die ACL für abgeschlossene
Sachakten/Vorgänge eingetragen.
119
Abbildung 22
ACL-Einstellungen
Beispiel
Anforderung
Die ACL einer neu erzeugten Akte soll in Abhängigkeit des Werts der Eigenschaft Vertraulichkeitsstufe
vergeben werden.
Lösungsansatz
Beim Erzeugen einer Akte wird im Rahmen der Ausführung von [email protected]:PostGUI die
Aktion [email protected]:ApplySecurity für den Auslöser [email protected]:
ObjectConstructor aufgerufen.
4. Regeln, ACLs und Unterschriften
4.2 ACL-Einstellungen und ACL-Übergänge
Daher wird in der eGov-Konfiguration, wie in Abbildung 22 dargestellt, in der Eigenschaft ACL-Einstellungen ein Eintrag für die Objektklasse Akte mit dem Auslöser [email protected]:
ObjectConstructor hinterlegt. In der Eigenschaft ACL der zusammengesetzten Eigenschaft ACLEinstellungen wird die ACL eingetragen, die der Akte zugewiesen werden soll, wenn beim Erzeugen
keine Vertraulichkeitsstufe ausgewählt wurde.
Um die ACL in Abhängigkeit der Vertraulichkeitsstufe zu berechnen, wird die Aktion
[email protected]:GetClassifiedACL verwendet und in der Eigenschaft Aktion zum
dynamischen Ermitteln eingetragen.
Die Aktion [email protected]:GetClassifiedACL wertet den in der eGov-Konfiguration in der
Eigenschaft Ausdrücke für Auslöser ([email protected]:knownctxexprs) für den Auslöser
Vertraulichkeitsstufe hinterlegten Ausdruck aus. Liefert dieser Ausdruck keinen Rückgabewert, wird der
neuen Akte die in der Eigenschaft ACL definierte ACL zugewiesen. Andernfalls wird der Akte die vom Ausdruck zurückgelieferte ACL zugewiesen.
ACL-Übergänge
Die eGov-Konfiguration bietet die Möglichkeit einem Objekt, in Abhängigkeit der aktuellen ACL des Objekts, eine
andere ACL zuzuweisen. Derartige ACL-Übergänge werden in der eGov-Konfiguration auf der Registerkarte
Regeln in der Eigenschaft ACL-Übergänge ([email protected]:acltransitionsex) definiert.
Die Auswertung der ACL-Übergänge erfolgt durch Aufruf der Aktion [email protected]:
GetTransitionACL, die als Aktion zum dynamischen Ermitteln der ACL-Einstellungen verwendet
werden kann. Das Ändern der ACL geschieht durch einen Aufruf der Aktion [email protected]:
ApplySecurity, die die in der eGov-Konfiguration definierten ACL-Einstellungen auswertet.
Die Aktion [email protected]:GetTransitionACL versucht, in der zusammengesetzten Eigenschaft
ACL-Übergänge eine passende Zeile für den Auslöser ([email protected]:acltranstriggers)
zu ermitteln. Als Quell-ACL wird die aktuelle ACL des Objekts herangezogen, auf das die Aktion
121
[email protected]:ApplySecurity aufgerufen wurde. Wenn die Quell-ACL mit einer der ACLs übereinstimmt, die in der zusammengesetzten Eigenschaft ACL-Übergänge in der Eigenschaft Quell-ACLs
([email protected]:acltranssourceacl) eingetragen sind, so wird der in der Eigenschaft Ausdruck ([email protected]:acltransexpr) eingetragene Ausdruck zur Ermittlung der Ziel-ACL ausgewertet. Liefert der Ausdruck kein ACL-Objekt zurück, wird stattdessen die in der Eigenschaft Ziel-ACL
([email protected]:acltranstargetacl) hinterlegte ACL als Ziel-ACL verwendet.
Die Ziel-ACL wird von der Aktion [email protected]:GetTransitionACL an die Aktion
[email protected]:ApplySecurity zurückgeliefert und dann durch [email protected]:
SetACL den entsprechenden Objekten zugewiesen.
4.3
Unterschriften
Die Softwarekomponente [email protected] ermöglicht es Benutzern, Objekte in Fabasoft Components
in nachvollziehbarer Art und Weise mit einer elektronischen Unterschrift zu versehen. Diese elektronischen
Unterschriften werden auf dem Objekt in der zusammengesetzten Eigenschaft Unterschriften
([email protected]:signatures) gespeichert, wobei unter anderem die folgenden Informationen
festgehalten werden:
°
°
die Art der Unterschrift in der Eigenschaft Unterschriftenart ([email protected]:signtype)
°
der Benutzer, der die Unterschrift geleistet hat in der Eigenschaft Unterschrieben von
([email protected]:signedby)
°
die Gruppe ([email protected]:signrolegroup) und Stelle ([email protected]:
signrolepos) der aktuellen Rolle des Benutzers
°
eine beim Anbringen der Unterschrift eventuell vom Benutzer eingegebene Bemerkung
([email protected]:signremark)
der genaue Zeitpunkt der Unterschrift
([email protected]: signedat)
in
der
Eigenschaft
Unterschrieben
am/um
4. Regeln, ACLs und Unterschriften
4.2 ACL-Einstellungen und ACL-Übergänge
4.3 Unterschriften
Unterschriftenart
Die Fabasoft eGov-Suite stellt eine Reihe von vordefinierten Unterschriftenarten zur Verfügung. Die zur Verfügung stehenden Unterschriftarten können jedoch durch Erzeugen neuer Instanzen der Objektklasse Unterschriftenart ([email protected]:SignatureType) bei Bedarf beliebig erweitert werden. Dabei
handelt es sich um Komponentenobjekte, die mit einer Softwarekomponente mitgeliefert werden können.
Die zum Unterschreiben eines Objekts verfügbaren Unterschriftenarten werden im dynamisch berechneten Menü
Unterschriften ([email protected]:MenuSignatures) des Menüs Extras zur Auswahl angeboten.
Damit eine Unterschriftenart im Menü Unterschriften zum Unterschreiben angeboten wird, müssen folgende
Voraussetzungen erfüllt sein:
°
Die geltende Unterschriftenregelung ([email protected]:SignatureConfiguration)
muss dem Benutzer das Anbringen der Unterschriftenart erlauben.
°
Die bei der Unterschriftenart in der zusammengesetzten Eigenschaft Vorbedingungen zum Unterschreiben ([email protected]:sgtprecondexprs) hinterlegten Ausdrücke müssen erfüllt
sein.
°
Die Eigenschaft Nicht verfügbar im Unterschriftenmenü ([email protected]:
sgtdisablemenu) der Unterschriftenart darf nicht auf den Wert „Ja“ gesetzt sein.
°
Die
Eigenschaft
Kein
Unterschriftenmenü
([email protected]:
domaindisablesignmenu) der Konfiguration für Unterschriften ([email protected]:
domainsignaturesconfig) darf nicht auf den Wert „Ja“ gesetzt sein.
Wenn für die Unterschriftenart die Eigenschaft Allgemein verwendbar ([email protected]:
sgtgenavail) auf den Wert „Ja“ gesetzt wird, wird die aktive Unterschriftenregelung nicht beachtet und
die Unterschriftenart im Menü Unterschriften angeboten, sofern die Vorbedingungen zum Unterschreiben
dies nicht verhindern. Wird bei der Unterschriftenart die Eigenschaft Allgemein verfügbar auf den Wert
„Nein“ gesetzt, wird zusätzlich zu den Vorbedingungen auch die geltende Unterschriftenregelung ausge-
123
wertet und die Unterschriftenart wird nur angeboten, wenn die Anbringung der Unterschrift gemäß Unterschriftenregelung erlaubt ist.
Wird die Eigenschaft Nicht verfügbar im Unterschriftenmenü ([email protected]:
sgtdisablemenu) auf den Wert „Ja“ gesetzt, scheint die Unterschriftenart nicht im Menü Unterschriften auf. Die Unterschriftenart kann jedoch trotzdem über einen Unterschriften-Wrapper in den Arbeitsschritten
von Aktivitäten zum Unterschreiben verwendet werden, wobei aber auch in diesem Fall die Vorbedingungen
zum Unterschreiben geprüft werden.
Vorbedingungen zum Unterschreiben
Für eine Unterschriftenart ([email protected]:SignatureType) kann in der Eigenschaft Vorbedingungen zum Unterschreiben ([email protected]:sgtprecondexprs) ein optionaler Ausdruck hinterlegt werden, der festlegt, ob ein Benutzer ein Objekt mit dieser Unterschriftenart unterschreiben
darf.
Während der Auswertung des Ausdrucks steht im lokalen Scope this das unterschriebene Objekt zur Verfügung. Auf die Unterschriftenart, mit der das Objekt unterschrieben werden soll, kann über den globalen
Scope ::this zugegriffen werden.
Liefert der Ausdruck den booleschen Rückgabewert „false“, so darf die Unterschrift nicht angebracht werden.
Die Unterschriftenart wird dann nicht im Menü Unterschriften angezeigt. Wird die Unterschriftenart in einem
Unterschriften-Wrapper in einem Arbeitsschritt einer Aktivität verwendet, wird der betroffene Arbeitsschritt aus
der Liste der Arbeitsschritte der Aktivität ausgeblendet.
Es empfiehlt sich, die Ausdrücke für die Vorbedingungen zum Unterschreiben nicht direkt bei der Unterschriftenart zu hinterlegen, sondern stattdessen einen entsprechenden Eintrag in der eGov-Konfiguration auf der
Registerkarte Regeln in der Eigenschaft Ausdrücke für Vorbedingungen von Unterschriften
([email protected]:signprecondctxexprs) zu definieren. Dieser Ansatz bietet vor allem den
Vorteil, dass Vorbedingungen mandantenspezifisch definiert werden können.
4. Regeln, ACLs und Unterschriften
4.3 Unterschriften
Damit die in der eGov-Konfiguration hinterlegten Vorbedingungen ausgewertet werden, muss in der zusammengesetzten Eigenschaft Vorbedingungen zum Unterschreiben folgender Ausdruck eingetragen werden:
[email protected]:GetExprContextValue(::this, null, &@allowed,
#[email protected]:signprecondctxexprs);
(@allowed == null || @allowed)
Für die mit der Fabasoft eGov-Suite mitgelieferten Unterschriftenarten der Softwarekomponenten
[email protected] und [email protected] ist in der Eigenschaft Vorbedingungen zum Unterschreiben bereits ein entsprechender Ausdruck eingetragen.
Beispiel
Anforderung
Das Anbringen der Unterschriftenart Stornieren ([email protected]:SIGN_CANCEL) auf einem
Objekt soll nur dann möglich sein, wenn das Objekt nicht bereits storniert wurde.
Wurde ein storniertes Objekt anschließend jedoch mit der Unterschriftenart Stornierung aufheben
([email protected]:SIGN_REVOKE_CANCEL) unterschrieben, so soll das erneute Stornieren
wieder ermöglicht werden.
Lösungsansatz
Damit die in der eGov-Konfiguration definierten Vorbedingungen ausgewertet werden, wurde von der Softwarekomponente [email protected] bei der Unterschriftenart Stornieren in der Eigenschaft Vorbedingungen zum Unterschreiben folgender Ausdruck eingetragen:
[email protected]:GetExprContextValue(::this, null, &@allowed,
#[email protected]:signprecondctxexprs);
(@allowed == null || @allowed)
125
Weiters ist in der eGov-Konfiguration in der Eigenschaft Ausdrücke für Vorbedingungen von Unterschriften für den Auslöser Stornieren folgender Ausdruck zu hinterlegen:
[email protected]:filecanceledat IS NULL
Weitere Einstellungen bei einer Unterschriftenart
Bei einem Objekt der Objektklasse Unterschriftenart können überdies folgende Eigenschaften definiert
werden:
°
Art der Authentisierung ([email protected]:sgtverification): In dieser Eigenschaft
kann definiert werden, wie die Authentisierung beim Unterschreiben erfolgen soll. Standardmäßig wird ein
Benutzer aufgefordert, beim Unterschreiben sein Passwort einzugeben.
°
Art der erzeugten Version ([email protected]:sgtversionkind): In dieser Eigenschaft
wird festgelegt, ob beim Unterschreiben eine Version des unterschriebenen Objekts erzeugt werden soll und
wenn ja, ob diese Version als automatische oder explizite Version gekennzeichnet werden soll.
°
Unterschriften weiterführen entsprechend der Weiterführung von Änderungen
([email protected]:sgtpropagate): Wird diese Eigenschaft auf den Wert „Ja“ gesetzt, wird
eine Unterschrift beim Anbringen auf einem Objekt auf die von der Aktion [email protected]:
GetModifyPropagation ermittelten Objekte propagiert.
°
Art der erzeugten Version für weiterführende Unterschriften ([email protected]:
sgtpropversionkind): In dieser Eigenschaft kann definiert werden, ob für die im Rahmen der Weiterführung von Änderungen propagierten Unterschriften ebenfalls eine Version erzeugt werden soll. Diese
Eigenschaft wird nur ausgewertet, wenn die Eigenschaft Art der erzeugten Version auf den Wert „Automatische Version“ oder „Explizite Version“ gesetzt wurde.
°
Bemerkung eingeben lassen ([email protected]:sgtuseremark): Wird diese Eigenschaft
auf den Wert „Ja“ gesetzt, kann ein Benutzer beim Unterschreiben optional eine Bemerkung eingeben.
4. Regeln, ACLs und Unterschriften
4.3 Unterschriften
°
Bemerkung muss eingegeben werden ([email protected]:sgtmustremark): Diese Eigenschaft wird nur ausgewertet, wenn die Eigenschaft Bemerkung eingeben lassen auf den Wert „Ja“
gesetzt wurde. Werden die Eigenschaften Bemerkung eingeben lassen und Bemerkung muss eingegeben werden beide auf den Wert „Ja“ gesetzt, wird der Benutzer gezwungen, beim Unterschreiben eine
Bemerkung einzugeben.
Die zuvor angeführten Eigenschaften können nur von der Softwarekomponente definiert werden, zu der die betroffene Unterschriftenart gehört. Wenn eine Softwarekomponente die vordefinierten Einstellungen einer zu einer
anderen Softwarekomponente gehörenden Unterschriftenart ändern möchte, ist ein entsprechender Eintrag in die
zusammengesetzte Eigenschaft Änderungen der vordefinierten Einstellungen ([email protected]:
sgtmodifications) einzufügen. Die Einträge in dieser Eigenschaft wirken kumulativ. Bei verschiedenen
Einstellungen für die gleiche Eigenschaft wird der unterste Eintrag in der Liste verwendet.
In der zusammengesetzten Eigenschaft Beim Unterschreiben ausgewertete Ausdrücke
([email protected]: sgtexpressions) können Ausdrücke angegeben werden, die bei der
Anbringung der Unterschrift ausgewertet werden.
Beispiel
Anforderung
Wenn ein Vorgang mit der Unterschriftenart Ablegen ([email protected]:SIGN_DEPOSIT) unterschrieben wird, soll der Vorgang gleichzeitig archiviert werden.
Lösungsansatz
Damit ein Vorgang im Zuge des Unterschreibens mit der Unterschriftenart Ablegen archiviert wird, muss
in der zusammengesetzten Eigenschaft Beim Unterschreiben ausgewertete Ausdrücke folgender
Ausdruck eingetragen werden:
[email protected]:ObjectArchive()
127
Unterschriftenregelung
Eine Unterschriftenregelung ([email protected]:SignatureConfiguration) definiert die
für die Benutzer, Stellen, Gruppen und Struktureinheiten zulässigen und nicht zulässigen Unterschriftenarten.
Vereinfacht ausgedrückt legt eine Unterschriftenregelung fest, wer welche Objekte mit welchen Unterschriftenarten unterschreiben darf.
Damit eine Unterschriftenregelung berücksichtigt wird, muss sie in den geltenden Einstellungen für Unterschriften ([email protected]:SignaturesConfig) in der Eigenschaft Unterschriftenregelungen ([email protected]:signconfigs) eingetragen werden. Die Einstellungen für Unterschriften müssen wiederum in der aktuellen Domäne in der Eigenschaft Konfiguration für Unterschriften
([email protected]:domainsignaturesconfig) eingehängt werden, damit die darin definierten Einstellungen ausgewertet werden.
Unterschriftenregelungen können auch bei Stellen und bei Benutzern hinterlegt werden. Die dort eingetragenen
Unterschriftenregelungen überschreiben die Einstellungen der in den Einstellungen für Unterschriften referenzierten Unterschriftenregelung. Um unnötige Komplexität zu vermeiden, sollte im Regelfall jedoch Abstand
von der Hinterlegung von Unterschriftenregelungen bei Stellen und Benutzern genommen werden, da verteilte
Unterschriftenregelungen eine potenzielle Fehlerquelle darstellen. Stattdessen empfiehlt es sich, eine zentrale
Unterschriftenregelung zu verwenden und diese in den Einstellungen für Unterschriften einzutragen.
Abbildung 23 zeigt beispielhaft die Unterschriftenregelung der DOMEA-Vorkonfiguration.
4. Regeln, ACLs und Unterschriften
4.3 Unterschriften
Abbildung 23
Unterschriftenregelung
Unterschrifteneinstellungen in der eGov-Konfiguration
Die Softwarekomponente [email protected] überschreibt die Aktion [email protected]:
SignObject bei den Objektklassen Akte ([email protected]:File), Geschäftsstück
([email protected]:SubFile), Aktenplaneintrag ([email protected]:SubjectArea) und
Dokument ([email protected]:ContentObject) mit der Methodendefinition [email protected]:
SignObjectMethod. Ferner wird der Aktion auf den angeführten Objektklassen von der Softwarekomponente [email protected] die Anwendung [email protected]:SignObjectApp zugeordnet.
129
Die Methodendefinition [email protected]:SignObjectMethod ist als Regel implementiert,
sodass die Anbringung von elektronischen Unterschriften durch die Deaktivierung der Regel
[email protected]:SignObject verhindert werden kann. Ebenso können Regeln für einzelne Unterschriftenarten definiert werden, um diese bei Bedarf selektiv deaktivieren zu können.
Die Implementierung der Methodendefinition [email protected]:SignObjectMethod und die
Anwendung [email protected]:SignObjectApp sorgen dafür, dass beim Unterschreiben von Instanzen der angeführten Objektklassen, die in der eGov-Konfiguration auf der Registerkarte Regeln in der Eigenschaft Unterschrifteneinstellungen ([email protected]:signconfig) hinterlegten Einstellungen
ausgewertet werden.
Wenn beim Anbringen einer elektronischen Unterschrift auf einem Objekt, in der eGov-Konfiguration
in der zusammengesetzten Eigenschaft Unterschrifteneinstellungen, ein für Objektklasse
([email protected]:objclass) und Unterschriftenart ([email protected]:signtype) passender Eintrag ermittelt werden kann, werden die folgenden Schritte durchgeführt:
°
Die Aktion [email protected]:SignFileCallback wird aufgerufen. Diese Aktion ist standardmäßig leer implementiert und kann für neue Objektklassen überschrieben bzw. für bestehende Objektklassen gewrappt werden. Im ersten Parameter wird der Aktion die Unterschriftenart übergeben.
°
Anschließend wird die in der zusammengesetzten Eigenschaft Unterschrifteneinstellungen in der Eigenschaft Aktion ([email protected]:signconfexec) referenzierte Aktion ausgeführt.
°
Es besteht die Möglichkeit, durch entsprechende Einstellungen in der Eigenschaft Unterschrifteneinstellungen, Symbol und Minisymbol sowie den Status der Prozesse und den Bearbeitungsstatus
([email protected]:fileprocstate) des unterschriebenen Objekts zu ändern.
°
Darüber hinaus kann bei der Anbringung der elektronischen Unterschrift ein ACL-Übergang, also eine Änderung der ACL des unterschriebenen Objekts, erfolgen. Dazu wird die Aktion [email protected]:
ApplySecurity aufgerufen und die Unterschriftenart als Auslöser ([email protected]:
aclconfigtriggers) übergeben. Die Aktion [email protected]:ApplySecurity wird
jedoch nur aufgerufen, wenn auch ein entsprechender Eintrag in den Unterschrifteneinstellungen
4. Regeln, ACLs und Unterschriften
4.3 Unterschriften
existiert. Wenn in der eGov-Konfiguration sowohl in der Eigenschaft Unterschrifteneinstellungen als
auch in der Eigenschaft ACL-Einstellungen ([email protected]:aclconfig) ein Eintrag mit der
jeweiligen Unterschriftenart als Auslöser vorhanden ist, wird dem unterschriebenen Objekt die in den
ACL-Einstellungen definierte ACL zugewiesen.
Abbildung 24
Unterschriften- und
ACL-Einstellungen
Abbildung 24 zeigt beispielhaft Konfigurationseinstellungen für die Unterschriftenart Stornieren
([email protected]:SIGN_CANCEL).
Weiterführung von Unterschriften
Wenn in der Fabasoft eGov-Suite ein Objekt unterschrieben wird, kann diese elektronische Unterschrift
an referenzierte Objekte weitergegeben werden. Hierfür ist bei der entsprechenden Unterschriftenart
131
die Eigenschaft Unterschriften weiterführen entsprechend der Weiterführung von Änderungen
([email protected]:sgtpropagate) auf den Wert „Ja“ zu setzen.
Standardmäßig werden die Objekte, auf die eine Unterschrift weitergeführt werden soll, durch Aufruf der
Aktion [email protected]:GetModifyPropagation ermittelt. Diese Aktion wertet die Einstellungen
in der zusammengesetzten Eigenschaft Weiterführende Änderungen von Eigenschaften
([email protected]:classmodprops) bei der Objektklasse des unterschriebenen Objekts sowie bei
deren Basisklassen aus.
In der Eigenschaft Bei in diesem Eigenschaftspfad gespeicherten Objekten nachziehen
([email protected]:modattrdef) kann ein Eigenschaftspfad hinterlegt werden, der ausgehend vom
aktuellen Objekt verfolgt wird, um eine Unterschrift weiterzuführen. Beim Anbringen einer Unterschrift auf dem
aktuellen Objekt, wird diese Unterschrift also auch auf die Objekte weitergeführt, die in der im Eigenschaftspfad
referenzierten Eigenschaft gespeichert sind. Die Weiterführung der Unterschrift erfolgt durch den Aufruf der
Aktion [email protected]:PropagateSignature.
Beispiel
Abbildung 25 zeigt die Standardeinstellungen für die Weiterführung von Unterschriften für die Objektklassen Akte und Geschäftsstück.
Der jeweils erste Eintrag in den beiden in Abbildung 25 gezeigten Listen sorgt dafür, dass elektronische
Unterschriften in einer DOMEA-Lösung von einer Akte auf deren Vorgänge, von den Vorgängen auf die
Geschäftsstücke der Vorgänge und von den Geschäftsstücken auf die Schriftstücke weitergeführt werden.
Wenn eine Akte unterschrieben wird, wird die auf der Akte angebrachte Unterschrift standardmäßig auf
die bei der Akte in der Eigenschaft Beilagen ([email protected]:fileattachments) gespeicherten Vorgänge weitergeführt.
Da die Objektklasse Vorgang von der Objektklasse Geschäftsstück abgeleitet ist und bei der Objektklasse Vorgang standardmäßig keine Einträge in der Eigenschaft Weiterführende Änderungen von
4. Regeln, ACLs und Unterschriften
4.3 Unterschriften
Eigenschaften vorhanden sind, wird die Unterschrift von den Vorgängen wiederum auf die bei den
Vorgängen der Akte in der Eigenschaft Beilagen ([email protected]:subfileattachments)
gespeicherten Geschäftsstücke weitergeführt.
Von den Geschäftsstücken der Vorgänge wird die Unterschrift auf die in der Eigenschaft Beilagen
([email protected]:subfileattachments) gespeicherten Schriftstücke propagiert.
Abbildung 25
Weiterführung von Unterschriften durch Einstellungen bei der Objektklasse
Die eGov-Konfiguration bietet die Möglichkeit, die Objekte, auf die eine Unterschrift weitergeführt werden soll,
durch einen Ausdruck anstatt durch die Aktion [email protected]:GetModifyPropagation
ermitteln zu lassen. Hierfür ist in der eGov-Konfiguration in der zusammengesetzten Eigenschaft Unterschrifteneinstellungen ein entsprechender Eintrag für die verwendete Unterschriftenart zu definieren.
133
Der Ausdruck zur Ermittlung der Objekte ist in der Eigenschaft Weiterführen auf ([email protected]:
signconfpropobjsexpr) zu hinterlegen.
Auf jedes Objekt, auf das eine elektronische Unterschrift weitergeführt wird, wird die Aktion
[email protected]:PropagateSignature zur Anbringung der weitergeführten Unterschrift
aufgerufen. Vor der Ausführung von [email protected]:PropagateSignature wird die
Aktion [email protected]:EnforceSignatureDef aufgerufen, die als Pre-Wrapper bei
[email protected]:PropagateSignature eingetragen ist.
Die Aktion [email protected]:EnforceSignatureDef wertet die Einstellungen in der Eigenschaft
Weiterführende Unterschrifteneinstellungen ([email protected]:signpropagateconfig)
der eGov-Konfiguration aus, welche die gleichen Features bietet wie die Unterschrifteneinstellungen. Auf
diese Weise kann auch für weitergeführte Unterschriften der Bearbeitungsstatus des unterschriebenen Objekts,
der Status der Prozesse, das Symbol und das Minisymbol geändert werden. Ebenso kann eine Aktion hinterlegt
werden, die auf das unterschriebene Objekt aufgerufen wird, wenn eine Unterschrift darauf weitergeführt wird.
Beispiel
In der eGov-Konfiguration können die in Abbildung 25 dargestellten Standardeinstellungen für die Weiterführung von Unterschriften für einzelne Unterschriftenarten überschrieben werden.
Wie in Abbildung 26 ersichtlich, ist hierfür in der eGov-Konfiguration in der zusammengesetzten Eigenschaft Unterschrifteneinstellungen ein Eintrag für die Unterschriftenart, mit der das betreffende
Objekt unterschrieben wird, zu definieren und in der Eigenschaft Weiterführen auf ein Ausdruck zur
Ermittlung der Objekte, auf die die Unterschrift weitergeführt werden soll, zu hinterlegen.
Im Beispiel in Abbildung 26 sorgt der Ausdruck dafür, dass eine Unterschrift beim Unterschreiben eines Vorgangs mit der Unterschriftenart Stornieren nur auf nicht bereits stornierte Objekte weitergeführt wird.
Ebenso werden Text-Dokumente von der Weiterführung ausgeschlossen und somit nicht unterschrieben,
wenn der Vorgang unterschrieben wird.
4. Regeln, ACLs und Unterschriften
4.3 Unterschriften
Abbildung 26
Weiterführung von Unterschriften durch Ausdruck in
der eGov-Konfiguration
135
5
137
5 Workflow
Dieses Kapitel bietet einen Überblick über die von der Fabasoft eGov-Suite zur Verfügung gestellten Workflow-spezifischen Funktionalitäten:
°
°
°
°
Arbeitsschritt-Wrapper zur Implementierung von Arbeitsschritten von Aktivitäten
Unterschriften-Wrapper für die Anbringung von elektronischen Unterschriften im Rahmen von
Arbeitsschritten
Definition abstrakter Teilnehmer
Einfügen von Ad-hoc-Aktivitäten in einen Prozess
Für detailierte Informationen zu den Themengebieten Workflow- und Geschäftsprozessmanagement
wird die Lektüre von [HoKa06] empfohlen.
5.1
Arbeitsschritt-Wrapper
Zur einfachen und schnellen Implementierung von Arbeitsschritten stellt die Softwarekomponente
[email protected] sogenannte Arbeitsschritt-Wrapper zur Verfügung. Dabei handelt es sich um spezielle
Aktionen, die für die Verwendung in Arbeitsschritten zur Verfügung gestellt wurden. Arbeitsschritt-Wrapper
bekommen bereits beim Erzeugen die ACL für Aktionen in Arbeitsschritten ([email protected]:
WorkFlowActionACL) zugewiesen.
Es können drei Arten von Arbeitsschritt-Wrappern unterschieden werden:
°
Arbeitsschritt-Wrapper ([email protected]:SimpleWorkflowWrapper): Mithilfe von sogenannten einfachen Arbeitsschritt-Wrappern können eine oder mehrere Aktionen sequenziell ausgeführt
werden.
°
Arbeitsschritt-Wrapper mit Erzeugen ([email protected]:WorkflowCreationWrapper):
Diese Art von Arbeitsschritt-Wrappern ermöglicht das einfache Erzeugen und Initialisieren neuer Objekte in
einem Arbeitsschritt.
°
Arbeitsschritt-Wrapper mit Selektion ([email protected]:WorkflowActionWrapper):
Diese Art von Arbeitsschritt-Wrappern ermöglicht die Auswahl der Objekte, auf die anschließend eine oder
mehrere Aktionen sequenziell ausgeführt werden.
Einfache Arbeitsschritt-Wrapper
Einfache Arbeitsschritt-Wrapper erlauben die sequenzielle Ausführung einer Liste von Aktionen und bilden die
Grundlage für die davon abgeleiteten Arbeitsschritt-Wrapper mit Erzeugen und Arbeitsschritt-Wrapper mit
Selektion.
Ein neu erzeugter Arbeitsschritt-Wrapper ist mit der Methodendefinition [email protected]:
ExecWFActionMethod auf der Objektklasse Objekt ([email protected]:Object) zu implementieren. Damit der Arbeitsschritt-Wrapper auch im Fabasoft Webbrowser-Client zur Verfügung steht, muss diesem
über die Eigenschaft Anwendungen ([email protected]:classapps) der Objektklasse die
Anwendung [email protected]:WorkflowWrapperApp bzw. [email protected]:
WorkflowWrapperAppNewWindow zugeordnet werden.
Wird ein Arbeitsschritt-Wrapper in einem Arbeitsschritt einer Aktivität aus dem Arbeitsvorrat ausgeführt und die
Anwendung [email protected]:WorkflowWrapperApp zugeordnet, erfolgt die Ausführung im
gleichen Webbrowser-Fenster. Wird stattdessen die Anwendung [email protected]:
WorkflowWrapperAppNewWindow zugeordnet, wird bei der Ausführung des Arbeitsschritt-Wrappers
ein neues Webbrowser-Fenster geöffnet.
In der Eigenschaft Fehler, wenn ([email protected]:actwferrif) kann ein optionaler Ausdruck hinterlegt werden, der einen booleschen Rückgabewert liefern muss. Dieser Ausdruck wird vor der Ausführung der
Aktionen des Arbeitsschritt-Wrappers ausgewertet und erlaubt somit die Definition einer Vorbedingung für das
Ausführen der Aktionen. Liefert der Ausdruck den Wert „true“, wird die in der Eigenschaft Fehler
([email protected]:actwferr) definierte Fehlermeldung zurückgeliefert und die Ausführung des
Arbeitsschritt-Wrappers abgebrochen. Wird die Fehlermeldung [email protected]:ERR_FMTSTR verwendet, ist der Text der Fehlermeldung in der Eigenschaft Wertformatierungen (Fehler)
5. Workflow
5.1 Arbeitsschritt-Wrapper
([email protected]:errvalueformat) auf der Registerkarte Formatierung der eGov-Konfiguration
zu definieren.
Überdies kann in der Eigenschaft Ausführen (Ausdruck) ([email protected]:actwfexpr) ein Ausdruck eingetragen werden, der bei der Ausführung eines Arbeitsschritt-Wrappers ausgewertet wird.
Anschließend werden die in der Eigenschaft Aktionen ([email protected]:actwfaction) und in der
Eigenschaft Aktionen mit Parameter ([email protected]:actwfactwithpar) eingetragenen
Aktionen in der definierten Reihenfolge sequenziell ausgeführt. Den Aktionen aus der Eigenschaft Aktionen
werden bei der Ausführung keine Parameter übergeben. Den Aktionen aus der Eigenschaft Aktionen mit Parameter werden bei der Ausführung die in der Eigenschaft Parameter ([email protected]:
actwpparams) definierten Parameter übergeben.
Die Aktionen werden auf das Objekt ausgeführt, auf das der Arbeitsschritt-Wrapper selbst ausgeführt wurde. Im
Regelfall handelt es sich dabei um das Objekt des Prozesses.
Arbeitsschritt-Wrapper mit Erzeugen
Arbeitsschritt-Wrapper mit Erzeugen dienen zum Erzeugen eines neuen Objekts und funktionieren analog zu einfachen Arbeitsschritt-Wrappern – mit dem Unterschied, dass die definierten Aktionen auf das neu erzeugte
Objekt aufgerufen werden.
Ein neu erzeugter Arbeitsschritt-Wrapper mit Erzeugen ist mit der Methodendefinition
[email protected]:ExecWFCreateActionMethod
auf der Objektklasse
Objekt
([email protected]:Object) zu implementieren. Ferner ist dem Arbeitsschritt-Wrapper die Anwendung
[email protected]:WorkflowCreationWrapperApp
bzw.
[email protected]:
WorkflowCreationWrapperAppNewWindow zuzuordnen.
Es gibt zwei Möglichkeiten, um die Objektklasse des zu erzeugenden Objekts festzulegen:
°
Durch einen in der Eigenschaft Erzeugen ([email protected]:actwfcreatewhat) definierten
Ausdruck, der die gewünschte Objektklasse als Rückgabewert liefern muss;
139
°
Mithilfe der Referenzierung von Eigenschaften ([email protected]:viewusage) der eGov-Konfiguration; Wird in der Eigenschaft Erzeugen kein Ausdruck hinterlegt, wird die Eigenschaft Referenzierung von Eigenschaften nach einem passenden Eintrag durchsucht, wobei der Arbeitsschritt-Wrapper als
Auslöser ([email protected]:usagetriggers) verwendet wird. Die für die referenzierte Objektzeigereigenschaft zulässige Objektklasse wird für das Erzeugen des neuen Objekts herangezogen.
Wenn mehrere zulässige Objektklassen vorhanden sind, wird dem Benutzer beim Ausführen des ArbeitsschrittWrappers ein Auswahldialog angeboten, um die gewünschte Objektklasse für das neue Objekt auszuwählen.
Ist der Konstruktor der Objektklasse des neu erzeugten Objekts als TriStep implementiert, wird im Rahmen des
Erzeugens eine PreGUI-Initialisierung aufgerufen. Hier gilt es zu beachten, dass als Auslöser der
Arbeitsschritt-Wrapper anstelle von [email protected]:PreGUI verwendet wird. Die
Eigenschaften Initialisieren von ([email protected]:actwfcreateinitfrom), Initialisierungskontext ([email protected]:actwfcreateinitctx) und Initialisierungsparameter
([email protected]: actwfcreateinitscope) erlauben die Anpassung der Initialisierung an die
Erfordernisse dieses Kontexts.
Der in der Eigenschaft Ablegen in ([email protected]:actwfcreatewhere) optional einzutragende
Ausdruck bestimmt, in welchem Objekt das neu erzeugte Objekt abgelegt werden soll. Dies erfolgt durch Setzen
des im Rückgabewert gelieferten Objekts in der Eigenschaft Gehört zu ([email protected]:
referrednumber) des erzeugten Objekts. Wird kein Ausdruck hinterlegt, wird jenes Objekt verwendet, auf
das der Arbeitsschritt-Wrapper ausgeführt wurde – im Regelfall handelt es sich dabei um das Objekt des Prozesses. Wenn das neu erzeugte Objekt nicht in einem anderen Objekt abgelegt werden soll, ist der Ausdruck
::ignoreref = true einzutragen.
Bei der Auswertung des in der Eigenschaft Ausführen (Ausdruck) ([email protected]:actwfexpr)
hinterlegten Ausdrucks, steht das neu erzeugte Objekt unter dem Schlüssel ::created im globalen Scope
zur Verfügung.
5. Workflow
5.1 Arbeitsschritt-Wrapper
Arbeitsschritt-Wrapper mit Selektion
Arbeitsschritt-Wrapper mit Selektion verhalten sich wie einfache Arbeitsschritt-Wrapper, ermöglichen jedoch
die Auswahl der Objekte, auf die die definierten Aktionen ausgeführt werden sollen. Die Auswahl der betroffenen Objekte kann interaktiv durch den Benutzer oder programmatisch im Hintergrund erfolgen.
Ein neu erzeugter Arbeitsschritt-Wrapper mit Selektion ist mit der Methodendefinition
[email protected]:ExecWFSelActionMethod
auf
der
Objektklasse
Objekt
([email protected]:Object) zu implementieren. Weiters ist dem Arbeitsschritt-Wrapper die Anwendung
[email protected]:WorkflowActionWrapperApp
bzw.
[email protected]:
WorkflowActionWrapperAppNewWindow zuzuordnen.
Der in der Eigenschaft Betroffene Objekte ([email protected]:actwfobjs) definierte Ausdruck liefert als Rückgabewert die Objekte, welche die Basis für die Selektion bilden. Liefert der Ausdruck keine Objekte zurück, wird der in der Eigenschaft Fehler, wenn hinterlegte Ausdruck ausgewertet. Wenn dieser Ausdruck
den Rückgabewert „true“ liefert, wird die in der Eigenschaft Fehler definierte Fehlermeldung angezeigt.
Andernfalls wird mit der Verarbeitung fortgefahren, wobei das Objekt, auf das der Arbeitsschritt-Wrapper aufgerufen wurde, als Selektion verwendet wird.
Wird die Eigenschaft Auswahl ([email protected]:actwfselect) auf den Wert „Ja“ gesetzt, kann
der Benutzer beim Ausführen des Arbeitsschritt-Wrappers die gewünschten Objekte aus der Liste der ermittelten Objekte interaktiv auswählen. Andernfalls erfolgt keine interaktive Auswahl.
Wenn zwar eine Auswahl durch den Benutzer erfolgen soll, der Ausdruck zum Ermitteln der betroffenen
Objekte aber nur ein einziges Objekt zurückliefert, wird dem Benutzer standardmäßig kein Dialog zur interaktiven Auswahl angezeigt, sondern das ermittelte Objekt wird automatisch zur weiteren Verarbeitung herangezogen.
Dieses Verhalten kann jedoch durch Setzen der Eigenschaft Auswahl auf jeden Fall erzwingen
([email protected]:actwfforcesel) auf den Wert „Ja“ geändert werden, sodass dem Benutzer der
Auswahldialog auch angezeigt wird, wenn nur ein Objekt ermittelt wurde.
141
Wenn der Benutzer im Auswahldialog kein Objekt markiert und die Schaltfläche Weiter betätigt, wird das
Objekt, auf das der Arbeitsschritt-Wrapper aufgerufen wurde, als Selektion verwendet.
Mithilfe der Eigenschaft Format ([email protected]:actwfselstyles) kann das Verhalten, das
Aussehen und die Formatierung der Werte im Auswahldialog angepasst werden. Beispielsweise verhindert die
Einstellung „Nur einfache Auswahl zulassen“ das gleichzeitige Auswählen von mehreren Objekten im Auswahldialog.
Darüber hinaus sind in den Eigenschaften Überschrift ([email protected]:actwfselcaption) und
Aufforderung ([email protected]:actwfselprompt) entsprechende Texte einzutragen, die dem
Benutzer im Auswahldialog angezeigt werden.
Die selektierten Objekte stehen bei der Auswertung des in der Eigenschaft Ausführen (Ausdruck)
([email protected]:actwfexpr) hinterlegten Ausdrucks unter dem Schlüssel ::selitems im
globalen Scope zur Verfügung.
Um die Ausführung eines Arbeitsschritt-Wrappers mit Selektion abzubrechen, falls keine Objekte selektiert
wurden, ist in der Eigenschaft Fehler, wenn ([email protected]:actwferrif) der Ausdruck
::selitems == null und in der Eigenschaft Fehler ([email protected]:actwferr) die Fehlermeldung [email protected]:COOSTERR_CANCEL zu hinterlegen.
Die Eigenschaft Direkt auf Objekt anwenden ([email protected]:actdirectcall) legt fest, ob die
definierten Aktionen auf die selektierten Objekte oder auf das Objekt, auf das der Arbeitsschritt-Wrapper aufgerufen wurde, angewendet werden. Wird die Eigenschaft auf den Wert „Nein“ gesetzt, werden die definierten
Aktionen sequenziell auf jedes der selektierten Objekte aufgerufen.
Arbeitsschritt-Wrapper mit Selektion sind nicht auf die Selektion von Objekten limitiert, sondern können auch
zur Selektion von beliebigen Werten verwendet werden – etwa zur Selektion von Einträgen einer Aggregatsliste.
In diesem Fall muss durch den Ausdruck in der Eigenschaft Aktion zur Selektion
([email protected]:actwfselector) eine passende Selektionsaktion ermittelt werden, wobei im
Regelfall #[email protected]:SelectValues verwendet werden kann. Weiters muss die Eigen-
5. Workflow
5.1 Arbeitsschritt-Wrapper
5.2 Unterschriften-Wrapper
schaft Direkt auf Objekt anwenden ([email protected]:actdirectcall) auf den Wert „Ja“ gesetzt
werden, wenn keine Objekte selektiert werden, da die auszuführenden Aktionen auf ein Objekt angewendet
werden müssen.
Beispiel
Anforderung
Der Arbeitsschritt zum Konvertieren der Beilagen eines Geschäftsstücks in ein finales Format soll nur die
Beilagen in ein finales Format konvertieren, die nicht ohnehin bereits in einem finalen Format vorliegen.
Lösungsansatz
Es wird ein neuer Arbeitsschritt-Wrapper mit Selektion erzeugt und implementiert. Damit dem Benutzer
kein Auswahldialog angeboten wird, ist die Eigenschaft Auswahl ([email protected]:
actwfselect) auf den Wert „Nein“ zu setzen. In der Eigenschaft Aktionen
([email protected]:actwfaction)
wird
die
Aktion
[email protected]:
ConvertContentToFinalForm und in der Eigenschaft Betroffene Objekte ([email protected]: actwfobjs) der folgende Ausdruck eingetragen:
[email protected]:subfileattachments[contentfinalform == null ||
contentfinalform.contcontent == null]
5.2
Unterschriften-Wrapper
Fabasoft Components ermöglicht die Anbringung von elektronischen Unterschriften auf Objekten. Standardmäßig wird eine Reihe von Unterschriftenarten zur Verfügung gestellt, damit typische Geschäftsvorgänge, wie
die Kenntnisnahme oder die Genehmigung eines Geschäftsstücks, mit einer elektronischen Unterschrift
bestätigt werden können.
143
Jede Anbringung einer elektronischen Unterschrift auf einem Objekt wird protokolliert. So kann transparent
nachvollzogen werden, welcher Benutzer in welcher Rolle zu welchem Zeitpunkt mit welcher Unterschriftenart
unterschrieben hat. Ein Benutzer mit entsprechender Berechtigung kann auf der Registerkarte Unterschriften
eines Objekts diese unveränderbaren Aufzeichnungen einsehen.
Die Fabasoft eGov-Suite stellt die Objektklasse Wrapper für Unterschrift ([email protected]:
SignatureWrapper) zur Verfügung, damit elektronische Unterschriften auf einfache Weise im Rahmen
von Arbeitsschritten von Aktivitäten verwendet werden können. Objekte dieser Objektklasse werden als Unterschriften-Wrapper bezeichnet.
Die bei der Ausführung eines Unterschriften-Wrappers anzubringende Unterschriftenart ist in der Eigenschaft
Unterschriftenart ([email protected]:actsigntype) zu hinterlegen. Darüber hinaus ist ein neuer
Unterschriften-Wrapper mit der Methodendefinition [email protected]:ExecSignatureMethod
auf der Objektklasse Objekt ([email protected]:Object) zu implementieren. Damit der UnterschriftenWrapper auch im Fabasoft Webbrowser-Client zur Verfügung steht, ist diesem die Anwendung
[email protected]:ExecSignatureApp zuzuordnen.
Ein derart implementierter Unterschriften-Wrapper kann als Aktion in Arbeitsschritten verwendet werden. Bei
der Ausführung des Arbeitsschritts wird eine elektronische Unterschrift mit der definierten Unterschriftenart auf
dem betroffenen Objekt angebracht.
5.3
Abstrakte Teilnehmer
Die Fabasoft eGov-Suite vereinfacht die Definition und Auflösung neuer abstrakter Teilnehmer. Überdies erlaubt
das mandantenfähige, hierarchische Konfigurationssystem der Fabasoft eGov-Suite eine Redefinition bereits
definierter abstrakter Teilnehmer, sodass diese an lösungsspezifische Anforderungen angepasst werden können.
Bei der Installation der Softwarekomponente [email protected] trägt diese die Aktion
[email protected]:ResolvePropertyParticipant als Post-Wrapper der Aktion
[email protected]:ResolveMetaParticipant ein. Dieser Post-Wrapper ermöglicht die Auflösung selbst
5. Workflow
5.2 Unterschriften-Wrapper
5.3 Abstrakte Teilnehmer
definierter abstrakter Teilnehmer unter Verwendung der eGov-Konfiguration. Die Implementierung einer eigenen
Wrapper-Aktion für die Aktion [email protected]:ResolveMetaParticipant kann somit entfallen.
Nachdem
der
Aufzählungstyp
Abstrakter
betroffener
Teilnehmer
([email protected]:
WorkFlowMetaParticipant) um einen neuen Eintrag für einen abstrakten Teilnehmer erweitert
wurde, muss dieser lediglich in der zusammengesetzten Eigenschaft Abstrakte Teilnehmer
([email protected]:propmetaparticipants) auf der Registerkarte Workflow der eGov-Konfiguration definiert werden.
Die eGov-Konfiguration erlaubt die Definition abstrakter Teilnehmer in Abhängigkeit von der Objektklasse des
Objekts des Prozesses, die in der Eigenschaft Objektklasse ([email protected]:objclass) zu hinterlegen ist.
Zur Auflösung des abstrakten Teilnehmers muss in der Eigenschaft Ausdruck ([email protected]:
propmetaexpr) der zusammengesetzten Eigenschaft Abstrakte Teilnehmer ein Ausdruck eingetragen
werden, der als Rückgabewert ein oder mehrere Objekte liefert, die als Teilnehmer verwendet werden. Die
Zuordnung zu den Eigenschaften des aufgelösten betroffenen Teilnehmers erfolgt aufgrund der Objektklassen
der zurückgegebenen Objekte. Wird als Ergebnis der Auswertung des Ausdrucks ein Benutzer-Objekt geliefert,
so wird dieses als Benutzer ([email protected]:wfpuser) des aufgelösten Teilnehmers herangezogen. Während der Auswertung des Ausdrucks steht im lokalen Scope this das Objekt des Prozesses zur Verfügung und
im globalen Scope ::this ein DICTIONARY, das unter dem Schlüssel ::actinst die Aktivitätsinstanz
enthält. Alternativ zum Ausdruck kann in der Eigenschaft Pfad ([email protected]:
propmetaattrpath) ein Eigenschaftspfad hinterlegt werden, um den Prozessteilnehmer zu ermitteln.
145
Beispiel
Anforderung
Es soll ein abstrakter Teilnehmer definiert werden, der zur Vorschreibung von Aktivitäten an den für die
Bearbeitung eines Vorgangs zuständigen Bearbeiter sowie die zuständige Gruppe verwendet werden kann.
Ist kein Bearbeiter definiert, so soll die Aktivität an die Stelle Leiter ([email protected]:Head) vorgeschrieben werden.
Lösungsansatz
Zur Auflösung des abstrakten Teilnehmers wird der folgende Ausdruck ([email protected]:
propmetaexpr) in der zusammengesetzten Eigenschaft Abstrakte Teilnehmer
([email protected]:propmetaparticipants) der eGov-Konfiguration eingetragen:
@user = [email protected]:fileresponsible;
@group = [email protected]:fileresporg;
[(@user != null? @user : #[email protected]:Head), @group]
5.4
Einfügen von Ad-hoc-Aktivitäten
Die Fabasoft eGov-Suite unterstützt das Einfügen von Ad-hoc-Aktivitäten in einen Prozess durch Aufruf der
Aktion [email protected]:InsertActivity.
Die Aktion erwartet im ersten Parameter einen Gültigkeitsbereich. Dabei handelt es sich um einen der Werte,
die im Aufzählungstyp [email protected]:InsertActivityScope definiert sind. Die Fabasoft
eGov-Suite stellt eine Reihe vordefinierter Gültigkeitsbereiche zur Verfügung, wie in Abbildung 27 ersichtlich.
Der Aufzählungstyp kann anforderungsabhängig um benutzerdefinierte Gültigkeitsbereiche erweitert werden.
5. Workflow
5.3 Abstrakte Teilnehmer
5.4 Einfügen von Ad-hoc-Aktivitäten
Für die in Abbildung 27 gezeigten vordefinierten Gültigkeitsbereiche stellt die Fabasoft eGov-Suite bereits eine
Reihe von anpassbaren Voreinstellungen zur Verfügung, sodass für diese Gültigkeitsbereiche der explizite Aufruf der Aktion [email protected]:InsertActivity zum Einfügen von Ad-hoc-Aktivitäten nicht nötig
ist. Stattdessen ist es ausreichend, eine definierte elektronische Unterschrift auf dem Objekt anzubringen, damit
eine konfigurierbare Aktivität in dessen Prozess eingefügt wird. Beispielsweise wird beim Stornieren einer Akte
durch das Anbringen der elektronischen Unterschrift Stornieren ([email protected]:SIGN_CANCEL)
automatisch die Aktivität Stornieren ([email protected]:Cancel) in den aktuellen Prozess eingefügt.
Abbildung 27
Definieren von Ad-hoc-Aktivitäten in der eGov-Konfiguration
147
Die einzufügende Aktivität ist in der eGov-Konfiguration zu definieren. Dazu ist in der Eigenschaft Einzufügende Aktivitätsdefinitionen ([email protected]:insactdefs) ein Eintrag für den an die Aktion
übergebenen Gültigkeitsbereich ([email protected]:insactdefscope) hinzuzufügen und in der
Eigenschaft Einzufügende Aktivitätsdefinitionen ([email protected]:insactdef) die in den Prozess einzufügende Aktivität zu hinterlegen. Optional kann der Prozessteilnehmer definiert werden, der die Aktivität erhalten soll. Der in der eGov-Konfiguration definierte Prozessteilnehmer wird von dem beim Aufruf der
Aktion [email protected]:InsertActivity im optionalen Parameter recipient übergebenen
Prozessteilnehmer überschrieben.
Der Gültigkeitsbereich INSACTDEF_SCOPE_STARTWF bildet einen Sonderfall und ermöglicht die Definition der Startaktivität einer Akte bzw. eines Geschäftsstücks. Beim Erzeugen eines derartigen Objekts kann der
Benutzer in der Eigenschaft Prozessverantwortung (federführend) ([email protected]:incharge)
einen Prozessteilnehmer auswählen, dem die Startaktivität automatisch zur Bearbeitung vorgelegt wird.
Über einen Eintrag in der eGov-Konfiguration kann auch, anstelle der Eigenschaft Prozessverantwortung
(federführend), eine andere Eigenschaft zur Initialisierung des Prozessteilnehmers herangezogen werden. Dazu
ist in der Eigenschaft Prozessinitialisierung ([email protected]:procinit) der eGov-Konfiguration
ein entsprechender Eintrag einzufügen.
5. Workflow
5.4 Einfügen von Ad-hoc-Aktivitäten
149
6
Dokumenteigenschaften
6 und Serienbriefe
Die Fabasoft eGov-Suite bietet eine Reihe von Funktionalitäten, um die Definition und Anpassung
von Dokumenteigenschaften und Seriendruckfeldern wesentlich zu vereinfachen. Dieses Kapitel
widmet sich daher der Konfiguration und Formatierung von Dokumenteigenschaften und Seriendruckfeldern.
6.1
Dokumenteigenschaften
Mithilfe von Dokumenteigenschaften können Produkte der Microsoft-Office-Familie und OpenOffice.org auf von
Fabasoft Components berechnete Werte zugreifen. Dokumenteigenschaften werden vom Fabasoft Components
Kernel generiert und beim Zugriff auf die Inhalte automatisch bereitgestellt.
Dokumenteigenschaften können bei Objektklassen auf der Registerkarte Erweitert in der Eigenschaft Vordefinierte virtuelle Eigenschaften ([email protected]:classvirtualattrs) definiert werden, wobei
die bei den Basisklassen definierten Dokumenteigenschaften ererbt werden.
Abbildung 28 zeigt bei der Objektklasse Objekt ([email protected]:Object) von der Softwarekomponente [email protected] vordefinierte Dokumenteigenschaften. Da alle Objektklassen direkt oder indirekt
von der Objektklasse Objekt abgeleitet sind, stehen die von der Softwarekomponente [email protected]
vordefinierten Dokumenteigenschaften für alle Objekte in Fabasoft Components zur Verfügung.
Die empfohlene Methode zur Definition von Dokumenteigenschaften ist jedoch, diese in der AdministrationsKonfiguration ([email protected]:AdministrationConfiguration) auf der Registerkarte
Virtuelle Eigenschaften in der Eigenschaft Beschreibung der virtuellen Eigenschaften
([email protected]:cfgvirtualattrs) zu hinterlegen. Diese Vorgehensweise bringt unter
anderem den Vorteil, dass Dokumenteigenschaften mandantenspezifisch definiert und zentral abgelegt werden
können.
151
Abbildung 28
Definition von Dokumenteigenschaften
Jede Dokumenteigenschaft verfügt über eine eindeutige, sogenannte vollständige Referenz, die Microsoft Word
und anderen unterstützten Softwareprodukten den Zugriff auf die Dokumenteigenschaft ermöglicht. Die vollständige Referenz einer Dokumenteigenschaft setzt sich aus dem Präfix „FSC#“, der Softwarekomponente
([email protected]:vadcomponent), einem Doppelpunkt und der Referenz ([email protected]:
vadreference) der Dokumenteigenschaft zusammen.
Wie in Abbildung 28 dargestellt, kann die vollständige Referenz einer Dokumenteigenschaft durch Ausführen
des Menübefehls Feldfunktionen ein/aus aus dem Kontextmenü von Microsoft Word sichtbar gemacht werden. Ferner öffnet sich beim Ausführen des Menübefehls Eigenschaften aus dem Menü Datei eine Dialogbox,
in der auf der Registerkarte Anpassen eine Liste von allen in einem Microsoft Word-Dokument verfügbaren
Dokumenteigenschaften angezeigt wird.
6 Dokumenteigenschaften und Serienbriefe
6.1 Dokumenteigenschaften
Jede Dokumenteigenschaft wird durch Auswertung des in der Eigenschaft Ausdruck
([email protected]:vadexpression) eingetragenen Ausdrucks berechnet. Während der Auswertung
des Ausdrucks steht im lokalen Scope this das Objekt zur Verfügung, in dem der geöffnete Inhalt gespeichert
ist. Der Ausdruck muss eine Zeichenkette liefern. Ferner ist zu beachten, dass der Wert einer Dokumenteigenschaft unter Microsoft Office 2000 höchstens 128 Zeichen umfassen darf, während für neuere Versionen kein
Limit bekannt ist.
Beispiel
Beim Öffnen einer Erledigung wird der Hauptinhalt ([email protected]:content) des in der Eigenschaft Primärinhalt ([email protected]:subfilemasterdoc) referenzierten SerienbriefObjekts ([email protected]:CISLetterSeries) geöffnet.
Im Zuge des Öffnens werden vom Fabasoft Components Kernel alle in der aktuellen Administrations-Konfiguration für die Objektklasse Serienbrief bzw. eine Basisklasse definierten Dokumenteigenschaften ausgewertet. Ebenso werden alle bei der Objektklasse Serienbrief bzw. einer Basisklasse in der Eigenschaft
Vordefinierte virtuelle Eigenschaften hinterlegten Dokumenteigenschaften berechnet.
Während der Auswertung der Ausdrücke zur Berechnung der Dokumenteigenschaften steht im lokalen
Scope this das Serienbrief-Objekt zur Verfügung. Folgender Ausdruck kann verwendet werden, um die
dazugehörige Erledigung zu ermitteln:
[email protected]:GetTopLevelObj(,#[email protected]:Settlement)[3]
Wenn davon ausgegangen werden kann, dass die Erledigung bereits einem Vorgang zugeordnet wurde,
kann folgender Ausdruck verwendet werden, um den zugehörigen Vorgang zu ermitteln:
[email protected]:GetTopLevelObj(,#[email protected]:Procedure)[3]
Zweckmäßigerweise wird für die Formatierung von Dokumenteigenschaften die im Kapitel „Einfache Wertformatierungen“ auf Seite 44 beschriebene Wertformatierungsfunktionalität der eGov-Konfiguration verwendet.
153
Hierfür ist im Ausdruck die Aktion [email protected]:FormatValue mit den entsprechenden Parametern aufzurufen.
Die Formatierungseinstellungen sollten in der eGov-Konfiguration auf der Registerkarte Inhalte/Text-Dokumente in der Eigenschaft Wertformatierung (Dokumenten-Information) ([email protected]:
docpropvalueformat) hinterlegt werden.
Beispiel
Der folgende Ausdruck liefert den formatierten Wert der Eigenschaft Eigentümer ([email protected]:
objowner), um diesen als Dokumenteigenschaft verwenden zu können:
[email protected]:FormatValue(null, #[email protected]:objowner,
[email protected]:objowner, null, null, #[email protected]:
docpropvalueformat)[4]
Weiters müssen in der eGov-Konfiguration in der Eigenschaft Wertformatierung (Dokumenten-Information) entsprechende Formatierungseinstellungen eingetragen werden, wie in Abbildung 29 ersichtlich.
6 Dokumenteigenschaften und Serienbriefe
6.1 Dokumenteigenschaften
6.2 Serienbriefe
Abbildung 29
Formatierung von Dokumenteigenschaften
6.2
Serienbriefe
Serienbriefe werden für die Serienabfertigung von Erledigungen verwendet. Die in Serienbriefen zur Verfügung
stehenden Seriendruckfelder werden in der Serienbrief-Konfiguration ([email protected]:
MMConfigurationClass) definiert und durch die Auswertung der darin hinterlegten Ausdrücke berechnet.
Die für die Berechnung der Seriendruckfelder verwendete Serienbrief-Konfiguration kann in der Eigenschaft
Serienbrief-Konfiguration ([email protected]:mailconfig) der eCRM-Konfiguration
([email protected]:CISConfigurationClass) definiert werden, die in der aktuellen Domäne
als eCRM-Konfigurationsobjekt ([email protected]:crmconfigobj) hinterlegt ist. Es besteht jedoch
155
die Möglichkeit, die für die Serienabfertigung von Erledigungen verwendete Serienbrief-Konfiguration in der
eGov-Konfiguration zu übersteuern. Hierzu ist in der Eigenschaft Serienbrief-Konfigurationen
([email protected]:knownmmconfigs) für den Auslöser [email protected]:GetMMConfig
ein Ausdruck zu definieren, der die zu verwendende Serienbrief-Konfiguration als Rückgabewert liefert.
Bei der Finalisierung einer Erledigung zur Serienabfertigung wird die Liste der in der aktuellen SerienbriefKonfiguration definierten Seriendruckfelder für jeden Adressaten berechnet. Während der Auswertung der für
die Seriendruckfelder hinterlegten Ausdrücke enthält der globale Scope ::this das Serienbrief-Objekt
und der lokale Scope this den aktuellen Adressaten. Bei aktivierter Freitextadressatenregel
([email protected]:FreetextAddressees) steht im lokalen Scope die gesamte Aggregatszeile für
jeden Eintrag in der Liste der Adressaten ([email protected]:addressees) zur Verfügung, andernfalls
nur das in der Eigenschaft Adressat ([email protected]:addressee) eingetragene Adressatenobjekt.
Abbildung 30
Serienbrief-Konfiguration
6 Dokumenteigenschaften und Serienbriefe
6.2 Serienbriefe
Für die Formatierung von Seriendruckfeldern sollte, ebenso wie für die Formatierung von Dokumenteigenschaften, die im Kapitel „Einfache Wertformatierungen“ auf Seite 44 beschriebene Wertformatierungsfunktionalität
der eGov-Konfiguration verwendet werden. Hierfür ist im Ausdruck zur Berechnung des Seriendruckfelds der
zusammengesetzten Eigenschaft Eigenschaftsliste ([email protected]:mmsrcattributes) der
Serienbrief-Konfiguration die Aktion [email protected]:FormatValue mit den entsprechenden
Parametern aufzurufen (siehe Abbildung 30).
Die Formatierungseinstellungen für Seriendruckfelder sind in der eGov-Konfiguration auf der Registerkarte
Inhalte/Text-Dokumente in der Eigenschaft Wertformatierung (Serienbrief) ([email protected]:
mergevalueformat) zu hinterlegen.
Abbildung 31
Formatierung von Seriendruckfeldern
157
Beispiel
Anforderung
Für die Straße der Adresse der Empfänger einer Erledigung soll ein Seriendruckfeld zur Verfügung gestellt
werden, das in einer Erledigungsvorlage zur Serienabfertigung ([email protected]:
DecisionSeriesTemplate) verwendet werden kann.
Wenn die Freitextadressatenregel ([email protected]:FreetextAddressees) aktiviert ist und
die Freitexteigenschaft Straße ([email protected]:addrstreet) einen Wert enthält, soll dieser
Wert für das Seriendruckfeld herangezogen werden. Andernfalls soll der Wert für das Seriendruckfeld aus
der Eigenschaft Straße ([email protected]:addrstreet) der zusammengesetzten Eigenschaft
Hauptadresse ([email protected]:mainaddress) des in der Eigenschaft Adressat
([email protected]:addressee) referenzierten Objekts ermittelt werden.
Lösungsansatz
Für das neue Seriendruckfeld „Straße“ muss in der Serienbrief-Konfiguration ein Eintrag definiert werden (siehe Abbildung 30). In der Eigenschaft Ausdruck muss folgender Ausdruck hinterlegt werden:
::[email protected]:FormatValue(#[email protected]:addrstreet,
#[email protected]:addressees, this, null, null, #[email protected]:
mergevalueformat)[4]
6 Dokumenteigenschaften und Serienbriefe
6.2 Serienbriefe
Weiters ist in der eGov-Konfiguration auf der Registerkarte Inhalte/Text-Dokumente in der Eigenschaft
Wertformatierung (Serienbrief) der in Abbildung 31 dargestellte Eintrag mit folgendem Ausdruck
hinzuzufügen:
[email protected]:ApplyRule(#[email protected]:FreetextAddressees)[2]?
(::street = ::[email protected]:addrstreet,
::street == null? ::[email protected]:addressee
[email protected]:[email protected]:addrstreet :
::street) :
::[email protected]:[email protected]:addrstreet
159
7
161
7 Übersichten
In diesem Kapitel werden die Mechanismen zur Definition, Anpassung und Generierung von Übersichten vorgestellt.
7.1
Allgemeine Informationen zu Übersichten
Abbildung 32
Vorgangsübersicht
Die Fabasoft eGov-Suite stellt einen Mechanismus für die Generierung von sogenannten Übersichten zur Verfügung, die die wesentlichen Metadaten und Inhalte eines Objekts in strukturierter Form zusammenfassen und
überblicksartig darstellen. Abbildung 32 zeigt eine exemplarische Übersicht für einen Vorgang.
Derartige Übersichten werden oftmals ausgedruckt, um den Benutzern die wichtigsten Metadaten eines Objekts
in Papierform zur Verfügung zu stellen – zum Beispiel im Falle eines Medienübergangs.
Format und Aufbau der Übersichten lassen sich in der eGov-Konfiguration festlegen. Die für die Generierung
einer Übersicht benötigten Informationen werden aus den folgenden Eigenschaften ermittelt:
°
°
°
°
°
°
°
Text-Dokumente ([email protected]:textdocdefs)
Werteverzeichnisse für Auslöser ([email protected]:knownctxdicts)
Ausdrücke für Auslöser ([email protected]:knownctxexprs)
Referenzierung von Eigenschaften ([email protected]:viewusage)
Primärinhalte ([email protected]:primarycontents)
Wertformatierungen ([email protected]:valueformat)
Komplexe Dokumentdarstellung ([email protected]:complexdocrepr)
Eine Übersicht wird in einem Objekt der Objektklasse Text-Dokument ([email protected]:
TextDocument) in der Eigenschaft Mehrsprachiger Inhalt ([email protected]:mlcont) gespeichert. Dieses Text-Dokument wird in einer speziellen Objektzeigereigenschaft bei dem Objekt abgelegt, für
das die Übersicht erzeugt wurde. Bei der betreffenden Objektzeigereigenschaft ist die als Regel implementierte
Aktion [email protected]:GetTextDocObj als Get-Aktion hinterlegt. Diese Aktion sorgt dafür, dass
die Übersicht bei Bedarf erzeugt oder aktualisiert wird.
Standardmäßig stellt die Fabasoft eGov-Suite die folgenden Objektzeigereigenschaften für Übersichten zur
Verfügung:
°
°
Dokumentation ([email protected]:filedocumentation)
Kurzfassung ([email protected]:filesummary)
7. Übersichten
7.1 Allgemeine Informationen zu Übersichten
°
°
Referatsbogen ([email protected]:fileoverview)
Fristen ([email protected]:fileschedules)
Die Eigenschaft Dokumentation ist den nachstehenden Objektklassen zugeordnet:
°
°
°
°
°
Akte ([email protected]:File)
Geschäftsstück ([email protected]:SubFile)
Aktenplan ([email protected]:Fileplan)
Aktenplaneintrag ([email protected]:SubjectArea)
Dokument ([email protected]:ContentObject)
Die anderen Eigenschaften stehen für die Objektklassen Akte und Geschäftsstück zur Verfügung.
Ein Benutzer kann eine Übersicht generieren und anzeigen lassen, indem er den entsprechenden Menübefehl
aus dem Menüeintrag Text-Dokumente des Kontextmenüs eines Objekts auswählt. Die im Menüeintrag TextDokumente angebotenen Übersichten werden grundsätzlich dynamisch ermittelt, können aber durch eine
Objektzeiger-Referenzierung für den Auslöser [email protected]:GetTextDocMenu eingeschränkt
werden.
Beispiel
Anforderung
Für eine Akte sollen ausschließlich die Übersichten für Dokumentation, Kurzfassung und Fristen der
Akte im Menü Text-Dokumente angeboten werden.
163
Lösungsansatz
In der eGov-Konfiguration ist in der Eigenschaft Referenzierung von Eigenschaften ein neuer Eintrag für
die Objektklasse Akte und den Auslöser [email protected]:GetTextDocMenu einzufügen. Als
Eigenschaft(en) sind die Eigenschaften Dokumentation, Kurzfassung und Fristen zu hinterlegen. Die
entsprechenden Konfigurationseinträge sind in Abbildung 33 dargestellt.
Abbildung 33
Einschränken der im Menü
auswählbaren Text-Dokumente
7. Übersichten
7.1 Allgemeine Informationen zu Übersichten
7.2 Definition einer Übersicht
7.2
Definition einer Übersicht
Zur Definition einer Übersicht ist in der eGov-Konfiguration auf der Registerkarte Inhalte/Text-Dokumente in
der zusammengesetzten Eigenschaft Text-Dokumente ([email protected]:textdocdefs) ein Eintrag
für die zu definierende Übersichtseigenschaft hinzuzufügen. Abbildung 34 zeigt die Definition einer DOMEAVorgangsübersicht für die Übersichtseigenschaft Dokumentation.
Abbildung 34
Definition der Vorgangsübersicht
Wenn eine bestehende Übersicht angepasst werden soll, ist die bestehende Übersichtseigenschaft als Auslöser ([email protected]:textdoctrigger) zu verwenden. Andernfalls ist eine neue Objektzeigereigenschaft zu erzeugen, bei der die Aktion [email protected]:GetTextDocObj als Get-Aktion hinterlegt werden muss. Ferner muss die neue Eigenschaft der Objektklasse zugeordnet werden, für die die Übersicht
angezeigt werden soll.
165
Der Ausdruck in der Eigenschaft Abhängige Objekte (Ausdruck) ([email protected]:
textdocdepexpr) dient zur Ermittlung der abhängigen Objekte einer Übersicht. Beim Öffnen einer Übersicht wird das in der Eigenschaft System-Änderungszeitpunkt ([email protected]:objchangedat)
gespeicherte Änderungsdatum der ermittelten Objekte mit dem Änderungsdatum der Übersicht verglichen.
Wenn ein abhängiges Objekt nach der letzten Aktualisierung der Übersicht geändert wurde, wird eine erneute
Aktualisierung der Übersicht angestoßen, sodass diese komplett neu berechnet wird. Andernfalls wird die
bereits bestehende Übersicht geöffnet, um nicht unnötig Ressourcen für die ständige Berechnung von aktualisierten Übersichten zu verbrauchen.
Die Aktualisierung einer Übersicht kann erzwungen werden, indem die Transaktionsvariable 32 der Softwarekomponente [email protected] auf den Wert „true“ gesetzt wird, bevor auf die die Übersicht referenzierende Objektzeigereigenschaft zugegriffen wird.
Bei der Aktualisierung von Übersichten werden stets die Benutzerrechte überprüft, damit einem Benutzer nur
diejenigen Informationen angezeigt werden, die er auch berechtigt ist zu sehen.
Die Objektklasse des beim Generieren einer Übersicht erzeugten Objekts kann in der Eigenschaft Zu erzeugen
([email protected]:textdocobjclass) definiert werden. Für Übersichten sollte stets die Objektklasse Text-Dokument ([email protected]:TextDocument) verwendet werden.
Wurde
in
der
Eigenschaft
Transformationsobjekt
(XSLT)
([email protected]:
textdocxsltobj)
ein
Stylesheet-Komponentenobjekt
([email protected]:
StyleSheetComponentObject) hinterlegt, erfolgt eine XSL-Transformation des Objekts durch Aufruf
der Aktion [email protected]:XSLTransformObject. Anstelle eines Stylesheet-Komponentenobjekts
kann der im Zuge der Transformation ausgewertete XSL-Quelltext auch in der Eigenschaft Transformation
(XSLT) ([email protected]:textdocxsltcont) hinterlegt werden.
In
der
zusammengesetzten
Eigenschaft
Parameter
(XSLT)
([email protected]:
textdocxsltparam) können Ausdrücke zur Berechnung von Parametern definiert werden, die dann bei
der XSL-Transformation zur Verfügung stehen. Die Ausdrücke zur Berechnung der XSLT-Parameter werden vor der
7. Übersichten
7.2 Definition einer Übersicht
Transformation ausgewertet, sodass im Stylesheet auf die für die Parameter berechneten Werte zugegriffen
werden kann, wie in Abbildung 35 gezeigt.
Abbildung 35
XSLT-Parameter
Während der Auswertung der Ausdrücke steht im lokalen Scope this das Objekt zur Verfügung, für das die
Übersicht generiert wird. Der globale Scope ::this wird mit einem DICTIONARY initialisiert, in dem unter
dem Schlüssel ::trigger der Auslöser – also die Eigenschaft, für die die Übersicht generiert wird – abgelegt ist. Das DICTIONARY im globalen Scope wird durch Aufruf der Aktion [email protected]:
GetContextDictionary erzeugt. Dadurch können die verfügbaren Schlüssel in der eGov-Konfiguration
in der Eigenschaft Werteverzeichnisse für Auslöser (Text-Dokumente) ([email protected]:
textdocctxdicts) definiert werden.
167
Standardmäßig stehen unter dem Schlüssel ::items die nicht stornierten, vom aktuellen Benutzer lesbaren
Beilagen des Objekts zur Verfügung, für das die Übersicht generiert wird.
Die unter dem Schlüssel ::items abgelegten Werte werden durch Aufruf der Aktion
[email protected]:GetExprContextValue mit dem Auslöser [email protected]:
TOC ermittelt. Der standardmäßig dafür hinterlegte Ausdruck sorgt für den Aufruf der Aktion
[email protected]:GetViewContextObjects zur Ermittlung der ::items. Die Aktion
[email protected]:GetViewContextObjects
ruft
ihrerseits
die
Aktion
[email protected]:GetView zur Auswertung der Objektzeiger-Referenzierungen für den Auslöser
[email protected]:TOC auf und liefert die in den ermittelten Eigenschaften gespeicherten Objekte.
Standardmäßig wird der Aktion [email protected]:GetViewContextObjects im vierten Parameter der Wert „true“ übergeben, was eine rekursive Auswertung zur Folge hat, da für die ermittelten Objekte wiederum die Aktion [email protected]:GetViewContextObjects aufgerufen wird.
Wenn für eine Akte eine Übersicht generiert wird, stehen unter dem Schlüssel ::items also standardmäßig
alle nicht stornierten und vom Benutzer lesbaren Vorgänge der Akte, alle Geschäftsstücke der Vorgänge der Akte
sowie alle Schriftstücke in den Beilagen der Geschäftsstücke zur Verfügung.
Der aus der XSL-Transformation resultierende HTML-Inhalt wird als Quellinhalt für die Weiterverarbeitung der
Übersicht verwendet. Wenn in der Eigenschaft Transformationsobjekt (XSLT) kein Stylesheet angegeben
wird, wird stattdessen der Hauptinhalt des Objekts als Quellinhalt herangezogen.
In der Eigenschaft Quellformat ([email protected]:textdocsrcformat) ist das Format des Quellinhalts zwingend anzugeben.
Sofern in der Eigenschaft Zielformat ([email protected]:targetfmt) ein Wert definiert wurde, erfolgt
anschließend an die Transformation eine Konvertierung des Quellinhalts durch Aufruf der Aktion
[email protected]:Convert. Wenn kein Zielformat angegeben wurde, erfolgt keine Konvertierung und
der Quellinhalt wird als Inhalt der generierten Übersicht verwendet.
7. Übersichten
7.2 Definition einer Übersicht
7.3 Verwendung von Ausdrücken in einer Übersicht
Sollen Inhalte, wie etwa Bilder oder Dokumente, in die zu generierende Übersicht eingemischt werden, so ist
der Wert „mht“ in die Eigenschaft Zielformat einzutragen. Andernfalls ist in den meisten Fällen der Wert „htm“
als Zielformat zu verwenden.
Wenn eine Übersicht in Textmarken gekapselte Ausdrücke enthält, muss unbedingt eine Konvertierung erfolgen,
damit die Ausdrücke in den Textmarken ausgewertet werden. In diesem Fall ist in der Eigenschaft Quellformat
der Wert „egov-htm“ einzutragen, wenn die Übersicht einen HTML-Inhalt als Ergebnis liefert und der Wert
„htm“ als Zielformat angegeben wurde. Enthält die Übersicht andere Inhalte, so ist als Quellformat der Wert
„egov-doc“ bzw. „egov-sxw“ und als Zielformat „mht“ einzutragen.
Weitere Informationen zu Textmarken finden Sie im Kapitel „Textmarken“ auf Seite 182.
7.3
Verwendung von Ausdrücken in einer Übersicht
Im zum Generieren einer Übersicht verwendeten Stylesheet, das in der eGov-Konfiguration in der zusammengesetzten Eigenschaft Text-Dokumente in der Eigenschaft Transformationsobjekt (XSLT) referenziert wird,
können auf einfache Weise Ausdrücke zur Berechnung von Werten eingebunden werden.
Deklaration der verwendeten Softwarekomponenten
Damit Ausdrücke im Stylesheet berechnet werden können, müssen die in den Ausdrücken verwendeten Softwarekomponenten deklariert werden, indem beim Element xsl:stylesheet ein entsprechender Namespace hinzugefügt wird.
Für jede verwendete Softwarekomponente muss ein beliebiges, jedoch für das Stylesheet eindeutiges Präfix vergeben werden, wobei stets folgender URI zu verwenden ist:
http://www.fabasoft.com/components/<Referenz der Softwarekomponente>
169
Beispiel
Wenn im Stylesheet Eigenschaften und Aktionen der Softwarekomponenten [email protected] und
[email protected] verwendet werden, könnte das Element xsl:stylesheet wie folgt definiert
werden:
<xsl:stylesheet
xmlns:xsl= 'http://www.w3.org/1999/XSL/Transform 'version= '1.0 '
xmlns:sys= 'http://www.fabasoft.com/components/[email protected]'
xmlns:elak= 'http://www.fabasoft.com/components/[email protected]'
>
Unformatierte Ausgabe von Eigenschaften
Der Wert einer Eigenschaft kann in einem Stylesheet mithilfe des Elements xsl:value-of unformatiert
ausgegeben werden.
Beispiel
Dieses Beispiel setzt voraus, dass die Softwarekomponente [email protected] mit dem Präfix sys
deklariert wurde.
Um nun die Eigenschaft Name ([email protected]:objname) des aktuellen Objekts unformatiert
auszugeben, kann folgender Code eingebunden werden:
<p>
<xsl:value-of select= 'sys:objname ' />
</p>
7. Übersichten
7.3 Verwendung von Ausdrücken in einer Übersicht
Aufruf von Aktionen
Der Befehl Evaluate ermöglicht die Auswertung von Ausdrücken in Stylesheets. Auf diese Weise können
auch Aktionen aufgerufen werden. Die Einbindung von Aktionen erfolgt ebenso wie die Ausgabe von Eigenschaftswerten mithilfe des Elements xsl:value-of.
ZEICHEN
NOTATION IN XML/XSL
<
&lt;
>
&gt;
&
amp;
"
&quot;
'
&apos;
Tabelle 19: XML-eigene Zeichen
Wenn im in den XSL-Code eingebetteten Ausdruck Sonderzeichen verwendet werden, müssen diese XML-escaped werden. Tabelle 19 bietet eine Übersicht über die zu ersetzenden Sonderzeichen.
Beispiel
Dieses Beispiel setzt voraus, dass die Softwarekomponente [email protected] mit dem Präfix sys
deklariert wurde.
Folgender Code kann im Stylesheet eingebunden werden, um die Aktion [email protected]:Format
zur Formatierung des Erzeugungsdatums des aktuellen Objekts aufzurufen:
<xsl:value-of select= "sys:Evaluate('[email protected]:Format(
[email protected]:objcreatedat, &apos;dd.mm.yyyy&apos;)[4]')" />
171
Es gilt zu beachten, dass die Hochkommas zur Umschließung von Zeichenketten, die als Parameter an die
aufzurufende Aktion übergeben werden, XML-escaped werden müssen. Im Beispiel muss die Zeichenkette
„dd.mm.yyyy“ mit „&apos;“ umschlossen werden, um sie als gültigen Parameter an die Aktion
[email protected]:Format übergeben zu können.
Weitere Funktionen
Mithilfe des Befehls HasClass kann eine Fallunterscheidung eingefügt werden, um aufgrund der Objektklasse des aktuellen Objekts in verschiedene Codepfade im Stylesheet zu verzweigen.
Beispiel
Dieses Beispiel setzt voraus, dass die Softwarekomponente [email protected] mit dem Präfix sys und
die Softwarekomponente [email protected] mit dem Präfix elak deklariert wurden.
Das gezeigte Code-Fragment stammt aus einer Vorgangsübersicht. Im Parameter $items werden alle
dem Vorgang zugeordneten Geschäftsstücke sowie die den Geschäftsstücken zugeordneten Schriftstücke
übergeben.
Folgender Code unterscheidet die im Parameter $items übergebenen Objekte in Beilagen des Vorgangs
und in Beilagen der dem Vorgang zugeordneten Geschäftsstücke:
<xsl:for-each select= '$items'>
<xsl:choose>
<xsl:when test= "sys:HasClass(./elak:referrednumber,
'[email protected]:Procedure ')">
<!-- dieser Pfad wird für die Beilagen eines
Vorgangs ausgeführt -->
</xsl:when>
<xsl:otherwise>
7. Übersichten
7.3 Verwendung von Ausdrücken in einer Übersicht
7.4 Einbindung von Metadaten in eine Übersicht
<!-- dieser Pfad wird für alle anderen im Parameter
$items gespeicherten Objekte ausgeführt -->
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
7.4
Einbindung von Metadaten in eine Übersicht
Grundsätzlich bieten sich drei Wege zur Einbindung von formatierten Metadaten und Inhalten in eine Übersicht
an:
°
°
°
Einfache Wertformatierungen
Komplexe Dokumentdarstellung
Textmarken
Einfache Wertformatierungen
Einfache Wertformatierungen eignen sich vor allem zur formatierten Ausgabe von Zeichenketten- und Zahleneigenschaften in einer Übersicht.
Zur Ausgabe von formatierten Werten können im Stylesheet folgende Aktionen aufgerufen werden:
°
°
[email protected]:GetSimpleDocRepresentation
[email protected]:GetSimpleDocRepresentationChunk
173
[email protected]:GetSimpleDocRepresentation
Die Berechnung des formatierten Werts der Eigenschaft erfolgt durch Aufruf der Aktion
[email protected]:GetSimpleDocRepresentation mit den entsprechenden, in Tabelle 20
näher erläuterten Parametern. Diese Aktion ruft ihrerseits die Aktion [email protected]:FormatValue
zur Berechnung des formatierten Werts auf, die die in der eGov-Konfiguration in der Eigenschaft Wertformatierungen ([email protected]:valueformat) hinterlegten Formatierungseinstellungen auswertet.
Üblicherweise wird der Aktion [email protected]:GetSimpleDocRepresentation im ersten
Parameter die Eigenschaft übergeben, für die die Übersicht generiert werden soll, im zweiten Parameter die zu
formatierende Eigenschaft oder ein entsprechender Kontext ([email protected]:Context) und im dritten Parameter der Wert der zu formatierenden Eigenschaft.
#
PARAMETER
TYP
BESCHREIBUNG
1
ctx
OBJECT
In Parameter 1 kann ein Kontext zur
Ermittlung der gewünschten Zeile in der Liste
der Formatierungseinstellungen übergeben
werden.
2
trigger
OBJECT
In Parameter 2 muss ein Auslöser zur
Ermittlung der gewünschten Zeile in der Liste
der Formatierungseinstellungen übergeben
werden.
3
value
beliebiger Typ
In Parameter 3 muss der zu formatierende
Wert übergeben werden, der während der
Auswertung der Formatierungsausdrücke unter
dem Schlüssel ::value im globalen Scope
zur Verfügung steht.
7. Übersichten
7.4 Einbindung von Metadaten in eine Übersicht
#
PARAMETER
TYP
BESCHREIBUNG
4
format
beliebiger Typ
Parameter 4 wird derzeit nicht ausgewertet.
5
result
STRING
In Parameter 5 wird eine Zeichenkette bzw.
eine Zeichenkettenliste als Ergebnis der Auswertung zurückgeliefert.
Tabelle 20: Parameter der Aktion [email protected]:GetSimpleDocRepresentation
Beispiel
Folgendes HTML-Fragment kann im Stylesheet eingefügt werden, um den Namen des Geschäftsstücks
im Titel einer Übersicht für die Eigenschaft Dokumentation ([email protected]:
filedocumentation) anzuzeigen:
<title>
<xsl:value-of select='sys:Evaluate("[email protected]:
GetSimpleDocRepresentation(#[email protected]:
filedocumentation,
#[email protected]:TextDocTitle, [email protected]:objname)[5]")'
disable-output-escaping='yes' />
</title>
Da von der Softwarekomponente [email protected] in der eGov-Konfiguration in der Eigenschaft
Wertformatierungen bereits eine entsprechende Formatierungseinstellung mitgeliefert wird, ist für
dieses Beispiel keine weitere Anpassung der eGov-Konfiguration erforderlich.
175
[email protected]:GetSimpleDocRepresentationChunk
Die Aktion [email protected]:GetSimpleDocRepresentationChunk erleichtert die formatierte, zumeist tabellarische Ausgabe einer definierten Liste von Eigenschaften des Objekts, für das die Übersicht generiert wird.
Üblicherweise wird der Aktion im ersten Parameter die Eigenschaft, für die die Übersicht generiert wird als Kontext, und im zweiten Parameter [email protected]:Metadata als Auslöser übergeben.
Beispiel
Das folgende Codefragment ermöglicht die formatierte Ausgabe der in der eGov-Konfiguration für den Auslöser [email protected]:Metadata referenzierten Eigenschaften des aktuellen Objekts:
<xsl:for-each select='sys:Evaluate("[email protected]:
GetSimpleDocRepresentationChunk(#[email protected]:
filedocumentation, #[email protected]:Metadata)[3]")'>
<xsl:value-of select='.' disable-output-escaping='yes'/>
</xsl:for-each>
Beim Ausführen der Aktion [email protected]:GetSimpleDocRepresentationChunk wird
zuerst die Aktion [email protected]:GetView aufgerufen, die die Eigenschaft Referenzierung von
Eigenschaften in der eGov-Konfiguration auswertet und die für den übergebenen Auslöser hinterlegten
Eigenschaften ermittelt. Alle referenzierten Eigenschaften müssen dem aktuellen Objekt direkt zugeordnet sein.
Anschließend wird für jede referenzierte Eigenschaft die Aktion [email protected]:
GetSimpleDocRepresentation zur Berechnung des formatierten Werts der Eigenschaft aufgerufen.
Die derart ermittelten Zeichenketten werden zusammengefügt und schließlich als vorformatierter Block ins
Stylesheet eingefügt.
7. Übersichten
7.4 Einbindung von Metadaten in eine Übersicht
Beispiel
Anforderung
In der Dokumentation ([email protected]:filedocumentation) eines Vorgangs sollen
die Eigenschaften Akte ([email protected]:referrednumber), Bearbeitungsstatus
([email protected]:fileprocstate) und Begriffe ([email protected]:objterms) in
tabellarischer Form angezeigt werden.
Lösungsansatz
In der eGov-Konfiguration muss in der Eigenschaft Referenzierung von Eigenschaften ein Eintrag für
den Auslöser [email protected]:Metadata definiert werden. Die Eigenschaften Akte, Bearbeitungsstatus und Begriffe sind als Eigenschaft(en) zu referenzieren.
Weiters müssen in der Eigenschaft Wertformatierungen entsprechende Formatierungseinstellungen für
die anzuzeigenden Eigenschaften hinterlegt werden. Diese Formatierungseinstellungen sind in Abbildung 36 ersichtlich.
Schließlich kann folgendes Codefragment verwendet werden, um die formatierten Eigenschaften in Tabellenform ins Stylesheet einzufügen:
<table>
<xsl:for-each select='sys:Evaluate("[email protected]:
GetSimpleDocRepresentationChunk(#[email protected]:
filedocumentation, #[email protected]:Metadata)[3]")'>
<xsl:value-of select='.' disable-output-escaping='yes'/>
</xsl:for-each>
</table>
177
Abbildung 36
Wertformatierungen für
Übersichten
Komplexe Dokumentdarstellung
Unter Verwendung der Aktion [email protected]:GetComplexDocRepresentation zur komplexen Dokumentdarstellung können wiederverwendbare HTML-Blöcke generiert und in Übersichten eingefügt
werden. Vereinfacht ausgedrückt liefert eine komplexe Dokumentdarstellung den HTML-Code für einen Teilbereich einer Übersicht. Zumeist wird die komplexe Dokumentdarstellung zur Einbettung von Aggregatslisten in
eine Übersicht verwendet.
Die Aktion [email protected]:GetComplexDocRepresentation wertet die in der eGovKonfiguration in der Eigenschaft Komplexe Dokumentdarstellung ([email protected]:
complexdocrepr) definierten Einstellungen aus. Die Parameter der Aktion sind in Tabelle 21 ersichtlich.
7. Übersichten
7.4 Einbindung von Metadaten in eine Übersicht
#
PARAMETER
TYP
BESCHREIBUNG
1
ctx
OBJECT
In Parameter 1 kann ein Kontext zur Ermittlung der gewünschten Zeile in der Eigenschaft
Komplexe Dokumentdarstellung übergeben werden.
2
trigger
OBJECT
In Parameter 2 muss ein Auslöser zur Ermittlung der gewünschten Zeile in der Eigenschaft
Komplexe Dokumentdarstellung übergeben werden.
3
value
beliebiger Typ
In Parameter 3 müssen das Objekt bzw. der
Wert übergeben werden, für das die komplexe
Dokumentdarstellung generiert werden soll.
4
format
beliebiger Typ
Parameter 4 wird derzeit nicht ausgewertet.
5
result
STRING
In Parameter 5 wird das Ergebnis der
Auswertung als CONTENT zurückgeliefert.
Tabelle 21: Parameter der Aktion [email protected]:GetComplexDocRepresentation
Anstelle der Aktion [email protected]:GetComplexDocRepresentation kann auch die Aktion
[email protected]:GetComplexDocRepresentationStr zur Auswertung der Eigenschaft
Komplexe Dokumentdarstellung aufgerufen werden. Diese Aktion liefert in Parameter 5 eine Zeichenkette
als Ergebnis der Auswertung zurück.
179
Abbildung 37
Komplexe Dokumentdarstellung
Zur Generierung des HTML-Codes für eine komplexe Dokumentdarstellung wird das in der zusammengesetzten
Eigenschaft Komplexe Dokumentdarstellung (siehe Abbildung 37) in der Eigenschaft Transformationsobjekt (XSLT) ([email protected]:cplxdocxsltobj) eingetragene Stylesheet-Komponentenobjekt ([email protected]:StyleSheetComponentObject) bzw. der in der Eigenschaft
Transformation (XSLT) ([email protected]:cplxdocxsltcont) hinterlegte XSL-Quelltext ausgewertet.
Die Transformation des Stylesheets erfolgt durch Aufruf der Aktion [email protected]:XSLTransform, die
in Parameter 1 ein XML-Dokument erwartet. Dieses XML-Dokument enthält die Daten, die vom Stylesheet
formatiert ausgegeben werden sollen.
7. Übersichten
7.4 Einbindung von Metadaten in eine Übersicht
Die Berechnung des XML-Dokuments erfolgt durch Auswertung der in der zusammengesetzten Eigenschaft
Komplexe Dokumentdarstellung in der Eigenschaft Zuordnung ([email protected]:
cplxdocmapping) referenzierten Abbildung von XML-Elementen auf Objekteigenschaften
([email protected]:XMLElementMapping) durch Aufruf der Aktion [email protected]:
MapObjectToXML. Wurde keine Zuordnung angegeben, wird stattdessen die in der Eigenschaft Aktion
(XML) ([email protected]:docxmlgenact) referenzierte Aktion zur Berechnung des XML-Dokuments
aufgerufen.
Abbildung 38
Einfügen einer komplexen
Dokumentdarstellung in eine
Übersicht
Abbildung 38 zeigt eine schematische Darstellung der beim Einfügen einer komplexen Dokumentdarstellung in
eine Übersicht ausgeführten Schritte.
181
Beispiel
Das folgende Code-Fragment ermöglicht die Einbettung der komplexen Dokumentdarstellung für den Laufweg eines Vorgangs (siehe Abbildung 38) in eine Übersicht:
<table>
<tr>
<td>
<xsl:value-of select="sys:Evaluate('[email protected]:
GetComplexDocRepresentation(#[email protected]:
filedocumentation, #[email protected]:workflow, this)[5]')"
disable-output-escaping='yes' />
</td>
</tr>
</table>
Textmarken
In Textmarken gekapselte Ausdrücke dienen zur Einbindung von multimedialen Inhalten in Übersichten.
Ein in eine Textmarke eingebetteter Ausdruck muss als Rückgabewert einen Wert des Typs STRING,
STRINGLIST, CONTENT, CONTENTLIST, Content oder eine Liste von Werten des Typs Content
liefern. Der vom Ausdruck gelieferte Rückgabewert wird dann in die Übersicht eingebunden.
Die in Form von Textmarken in eine Übersicht eingebundenen Ausdrücke werden bei der Konvertierung der Übersicht durch die Aktion [email protected]:Convert ausgewertet.
Damit bei der Generierung einer Übersicht eine Konvertierung erfolgt, müssen bei der Definition der
Übersicht in der eGov-Konfiguration in der Eigenschaft Text-Dokumente ([email protected]:
textdocdefs) entsprechende Einstellungen hinterlegt werden:
7. Übersichten
7.4 Einbindung von Metadaten in eine Übersicht
Wenn die Übersicht einen HTML-Inhalt als Ergebnis liefert, ist als Quellformat der Wert „egov-htm“ und als
Zielformat der Wert „htm“ anzugeben.
Wenn in die Übersicht Inhalte – beispielsweise Microsoft Word-Dokumente oder Microsoft Excel-Tabellen – eingemischt werden sollen, ist als Quellformat der Wert „egov-doc“ bzw. „egov-sxw“ und als Zielformat „mht“
einzutragen.
Textmarken werden in Form von Hyperlinks in ein Stylesheet eingebettet. Damit eine Textmarke ausgewertet
wird, muss das Attribut name des Hyperlinks mit dem Präfix FSC_CONTENT_ beginnen, gefolgt von einem
frei wählbaren, eindeutigen Bezeichner.
Beispiel
Eine Textmarke wird wie folgt in ein Stylesheet eingebunden:
<xsl:element name='a'>
<xsl:attribute name='name'>
FSC_CONTENT_<eindeutiger Bezeichner>
</xsl:attribute>
<Ausdruck>
</xsl:element>
Einbettung von multimedialen Inhalten
Zur Einbettung von multimedialen Inhalten in eine Übersicht sind die folgenden Schritte erforderlich:
°
°
°
Ermittlung des Wertverzeichnisses mit den Primärinhalten
Berechnung der Primärinhalte
Berechnung des Präfixes für die Textmarken
183
Ermittlung des Werteverzeichnisses mit den Primärinhalten
Während der Auswertung einer Übersicht steht im globalen Scope ::this ein DICTIONARY zur Verfügung, das durch Aufruf der Aktion [email protected]:GetContextDictionary erzeugt wird. Die
Aktion [email protected]:GetContextDictionary wertet die in der eGov-Konfiguration in der
Eigenschaft Werteverzeichnisse für Auslöser (Text-Dokumente) ([email protected]:
textdocctxdicts) definierten Einträge aus und liefert als Ergebnis das DICTIONARY für den globalen Scope ::this.
Von der Softwarekomponente [email protected] wird für den Auslöser Dokumentation standardmäßig
ein Eintrag in der Eigenschaft Werteverzeichnisse für Auslöser (Text-Dokumente) definiert, der unter dem
Schlüssel ::contents die Inhalte der unter dem Schlüssel ::items gepeicherten Objekte zur Verfügung
stellt. Unter dem Schlüssel ::items werden standardmäßig alle nicht stornierten, dem aktuellen Objekt
untergeordneten Objekte gespeichert. Die Berechnung des Schlüssels ::contents erfolgt durch Aufruf der
Aktion [email protected]:GetPrimaryContentsDict, die zur Ermittlung der Inhalte auf jedes
Objekt in der Objektliste ::items die Aktion [email protected]:GetPrimaryContents aufruft.
Berechnung der Primärinhalte
Die Aktion [email protected]:GetPrimaryContents wertet die in der eGov-Konfiguration in der
zusammengesetzten Eigenschaft Primärinhalte ([email protected]:primarycontents) definierten
Einstellungen aus und liefert für das Objekt, auf das die Aktion aufgerufen wurde, in Parameter 2 einen Inhalt
des Typs CONTENT zurück.
Die Berechnung des Inhalts erfolgt durch Auswerten des in der eGov-Konfiguration in der zusammengesetzten
Eigenschaft Primärinhalte in der Eigenschaft Ausdruck ([email protected]:primcontexpr) hinterlegten Ausdrucks.
Der von der Aktion [email protected]:GetPrimaryContents zurückgelieferte Inhalt wird schließlich von der Aktion [email protected]:GetPrimaryContentsDict in einem DICTIONARY
abgelegt. Als Schlüssel wird die Objektadresse des Objekts verwendet, auf das die Aktion
7. Übersichten
7.4 Einbindung von Metadaten in eine Übersicht
[email protected]:GetPrimaryContents aufgerufen wurde. Beim Generieren einer Übersicht wird
das auf diese Weise berechnete DICTIONARY mit den Primärinhalten aller Beilagen unter dem Schlüssel
::contents zur Verfügung gestellt.
Berechnung des Präfixes für die Textmarken
Die Aktion [email protected]:GetBookmarkName wertet den in der eGov-Konfiguration in der
zusammengesetzten Eigenschaft Primärinhalte in der Eigenschaft Textmarke ([email protected]:
primcontbookmark) hinterlegten Ausdruck aus. Dieser Ausdruck liefert als Ergebnis das Präfix für eine
Textmarke. Tabelle 20 bietet eine Übersicht über die für das Einfügen von Inhalten unterstützten Präfixes.
Textmarken, deren Präfix mit FSC_CONTENT_SEPARATED_ beginnt, werden dahingehend verarbeitet,
dass die eingefügten Inhalte vom umgebenden Inhalt bzw. voneinander, wenn ein Ausdruck mehrere Inhalte liefert, abtrennbar sind. Die Art der Abtrennung muss mit je einem Zeichen im Namen der Textmarke spezifiziert
werden: FSC_CONTENT_SEPARATED_<Präfix><Separator><Suffix>_. Für jedes der drei
Trennzeichen kann je eines der in Tabelle 22 angeführen Zeichen verwendet werden.
185
PRÄFIX
BESCHREIBUNG
FSC_CONTENT_
Dieses Präfix wird standardmäßig verwendet,
wenn in der Eigenschaft Textmarke kein gültiger
Ausdruck definiert wurde. Es entspricht dem
Präfix FSC_CONTENT_SEPARATED_XXX.
FSC_CONTENT_ORIGINAL_
Die Inhalte werden nicht konvertiert, sondern im
Originalzustand in die Übersicht aufgenommen
und von einem eingebetteten Frame (IFRAME)
aus referenziert. Diese Variante ist vor allem für
das Einfügen von PDF-Inhalten gedacht.
FSC_CONTENT_SEPARATED_
Die Inhalte können durch Trennzeichen abgetrennt
in die Übersicht eingefügt werden. Die zulässigen
Trennzeichen sind in Tabelle 21 zusammengefasst.
FSC_CONTENT_APPENDIX_
Die Inhalte werden am Ende der Übersicht angehängt. Jeder Inhalt wird in einem eigenen
Abschnitt eingefügt. Unmittelbar davor wird ein
Abschnittswechsel eingefügt, sodass allfällige
Kopf- und Fußzeileninformation erhalten bleiben.
Tabelle 22: Präfixes für Textmarken
Das erste Trennzeichen definiert den Präfix-Umbruch, das zweite Trennzeichen den Separator-Umbruch und das
dritte Trennzeichen den Suffix-Umbruch. Der Präfix-Umbruch wird vor dem Inhalt eingefügt, der Suffix-Umbruch
nach dem Inhalt. Wenn der in der Textmarke gekapselte Ausdruck mehrere Inhalte zurückliefert, wird zwischen
den Inhalten je ein Separator-Umbruch eingefügt.
7. Übersichten
7.4 Einbindung von Metadaten in eine Übersicht
TRENNZEICHEN
BEDEUTUNG
X
kein Umbruch
C
Zeichenumbruch (Breaking Space)
L
Zeilenumbruch
R
Absatzumbruch
M
Spaltenumbruch
P
Seitenumbruch
N
Abschnittswechsel (nächste Seite)
E
Abschnittswechsel (gerade Seite)
O
Abschnittswechsel (ungerade Seite)
Tabelle 23: Trennzeichen für FSC_CONTENT_SEPARATED_
Beispiel
Abbildung 39 zeigt den von der Softwarekomponente [email protected] in der eGov-Konfiguration in
der zusammengesetzten Eigenschaft Primärinhalte vordefinierten Eintrag zur Ermittlung des Primärinhalts
von Instanzen der Objektklasse Excel-Objekt ([email protected]:ExcelObject).
Der in der Eigenschaft Ausdruck definierte Ausdruck sorgt für die Konvertierung des Hauptinhalts des
Excel-Objekts in ein in eine Übersicht einfügbares Format.
187
Abbildung 39
Primärinhalte
Beispiel
Das folgende Codefragment zeigt die Verwendung von Textmarken zur Einbindung von Inhalten in das
Stylesheet einer Übersicht:
<xsl:template name='Documents'>
...
<xsl:for-each select='$items'>
...
<xsl:call-template name='Document'>
<xsl:with-param name='bookmark'
select='sys:Evaluate("[email protected]:GetBookmarkName(
7. Übersichten
7.4 Einbindung von Metadaten in eine Übersicht
#COOELAK:filedocumentation)[2]")' />
<xsl:with-param name='inx' select='position()' />
<xsl:with-param name='item' select='.' />
</xsl:call-template>
...
</xsl:for-each>
...
</xsl:template>
<xsl:template name='Document'>
<xsl:param name='bookmark' />
<xsl:param name='inx' />
<xsl:param name='item' />
<table width='100%'>
<tr>
<td>
<xsl:element name='a'>
<xsl:attribute name='name'>
<xsl:value-of select='$bookmark' />
__Documents__<xsl:value-of select='$inx' />
</xsl:attribute>
::this.GetEntry3("contents|
<xsl:value-of select='$item/sys:objaddress' />")
</xsl:element>
</td>
</tr>
</table>
</xsl:template>
189
8
191
8 VApp-Anpassungen
Die in diesem Kapitel behandelten Konfigurationsmöglichkeiten beziehen sich auf den Fabasoft
Webbrowser-Client und den Fabasoft Windows-Client, nicht jedoch auf den mittlerweile obsoleten
Fabasoft Win32-Client.
Die Softwarekomponente [email protected] erweitert die eGov-Konfiguration um zwei zur Anpassung von
webspezifischen Einstellungen wesentliche Eigenschaften:
°
Die Eigenschaft Schritte ([email protected]:stepdynargs) erlaubt das Aufrufen benutzerdefinierter Anwendungen und Anwendungssichten im Rahmen der Standardanwendungen der
Softwarekomponente [email protected].
°
Mithilfe der Eigenschaft Verzweigungsanpassungen ([email protected]:branchconfig)
können die Verzweigungen einer Anwendungssicht dynamisch ein- bzw. ausgeblendet werden.
Diese Eigenschaften werden in der eGov-Konfiguration auf der Registerkarte VApp angezeigt.
8.1
Schritte
Die zusammengesetzte Eigenschaft Schritte ([email protected]:stepdynargs) erlaubt die Anpassung einer Vielzahl von mit der Softwarekomponente [email protected] mitgelieferten Anwendungen,
indem sie die Verwendung von benutzerdefinierten Anwendungen, Anwendungssichten und Initialisierungsschritten in bestehenden Standardanwendungen ermöglicht.
Tabelle 24 zeigt die wichtigsten Auslöser, für die die Aktion [email protected]:GetStepObj zur Auswertung der benutzerdefinierten Schritte aufgerufen wird, die in der eGov-Konfiguration in der Eigenschaft
Schritte hinterlegt sind.
AUSLÖSER
BESCHREIBUNG
[email protected]:
CtorAppView
Die für diesen Auslöser hinterlegte Anwendung bzw. Anwendungssicht wird nach dem Anzeigen des Konstruktorformulars
aufgerufen.
[email protected]:
CtxEditCreatedCapture
Dieser Auslöser definiert die Anwendung, die beim Registrieren
eines Schriftstücks zu einem Geschäftsstück angezeigt wird.
[email protected]:
CtxEditCreated
CaptureToExisting
Die für diesen Auslöser eingetragene Anwendung wird aufgerufen, wenn ein Schriftstück zu einer bestehenden Akte
registriert bzw. einem bestehenden Vorgang erfasst wird.
[email protected]:
ObjectConstructor
Dieser Auslöser bestimmt die Anwendungssicht zur Anzeige
des Konstruktorformulars, das beim Erzeugen von Objekten –
sofern deren Objektklasse als TriStep implementiert wurde –
angezeigt wird. Standardmäßig wird die Anwendungssicht
[email protected]:CtorAppView angezeigt.
[email protected]:
PortalPageObjContents
Diese beiden Auslöser legen fest, welche Anwendung zur
Anzeige des Inhalts eines Objekts in einer zweiteiligen Ansicht
verwendet werden soll.
[email protected]:
ShowContentApp
Tabelle 24: Verwendung benutzerdefinierter Schritte
8. VApp-Anpassungen
8.1 Schritte
Auf diese Weise kann das Standardverhalten der mit der Softwarekomponente [email protected] mitgelieferten Anwendungen verändert werden. Unter anderem kann durch einen entsprechenden Eintrag in der
Eigenschaft Schritte die in einer Anwendung von [email protected] standardmäßig angezeigte Anwendungssicht durch eine benutzerdefinierte Anwendungssicht ersetzt werden.
Beispiel
Anforderung
Wenn ein Excel-Objekt zu einem neuen Eingangsstück registriert wird, soll beim Erfassen der Metadaten
des neuen Eingangsstücks eine Vorschau des Inhalts des Excel-Objekts neben dem Formular zum Bearbeiten der Metadaten des Eingangsstücks angezeigt werden.
Ebenso soll die Vorschau beim Registrieren von PowerPoint-Objekten angezeigt werden, nicht jedoch beim
Registrieren von Visio-Objekten.
Lösungsansatz
Damit beim Registrieren eines Excel-Objekts zu einem Eingangsstück die in Abbildung 41 dargestellte
zweiteilige Ansicht mit der Vorschau verwendet wird, muss in der eGov-Konfiguration in der zusammengesetzten Eigenschaft Schritte ein Eintrag für den Auslöser [email protected]:
CtxEditCreatedCapture hinzugefügt werden. In der Eigenschaft Objektklasse ist die Objektklasse Excel-Objekt zu hinterlegen.
Wie in Abbildung 40 ersichtlich, ist für eine zweiteilige Ansicht mit Vorschau die Anwendung
[email protected]:EditCapturedWithDetailApp in der Eigenschaft Schritt einzutragen.
Wenn keine Vorschau des registrierten Inhalts, sondern nur das Formular zum Bearbeiten der Metadaten
des neuen Geschäftsstücks angezeigt werden soll, ist stattdessen die Anwendungssicht
[email protected]:CtorAppView zu verwenden.
193
Im in Abbildung 40 dargestellten Beispiel ist für die Objektklasse Visio-Objekt für den Auslöser
[email protected]:CtxEditCreatedCapture
die
Anwendungssicht
[email protected]:CtorAppView eingetragen. Beim Registrieren eines Visio-Objekts zu einem
neuen Eingangsstück wird somit keine Vorschau des Visio-Inhalts angezeigt.
Wenn jedoch, wie für Excel- und PowerPoint-Objekte, eine zweiteilige Ansicht mit Vorschau verwendet
wird, kann mithilfe der Auslöser [email protected]:ShowContentApp und
[email protected]:PortalPageObjContents festgelegt werden, welche Anwendung zur
Anzeige der Vorschau des registrierten Inhalts aufgerufen werden soll, wobei grundsätzlich zwei Standardanwendungen zur Verfügung stehen:
°
Die Anwendung [email protected]:ShowFileDocumentationApp zeigt die Dokumentation ([email protected]:filedocumentation) des registrierten Objekts an. Im Beispiel
in Abbildung 40 wird für Objekte der Objektklassen Excel-Objekt und PowerPoint-Objekt die
Anwendung [email protected]:ShowFileDocumentationApp referenziert.
Die Anwendung [email protected]:ContentInplaceApp lässt den Inhalt des registrierten
Objekts in einem eingebetteten Frame vom Webbrowser anzeigen. Dazu muss das Dateiformat des
anzuzeigenden Inhalts jedoch vom verwendeten Webbrowser unterstützt werden. Im Beispiel in Abbildung 40 wird die Anwendung [email protected]:ContentInplaceApp den Objektklassen
GIF-Objekt und JPEG-Objekt zugewiesen.
8. VApp-Anpassungen
8.1 Schritte
Abbildung 40
Schritte
Beispiel
Anforderung
Beim Erzeugen einer Instanz der Objektklasse Aktennotiz ([email protected]:FileMemo) soll
nicht das Konstruktorformular zum Bearbeiten der Metadaten, sondern der Inhalt zur Bearbeitung geöffnet
werden.
195
Lösungsansatz
In der eGov-Konfiguration muss, wie in Abbildung 40 dargestellt, in der zusammengesetzten Eigenschaft
Schritte ein Eintrag für die Objektklasse Aktennotiz und den Auslöser [email protected]:
ObjectConstructor eingefügt werden. In der Eigenschaft Schritt ist die Anwendung
[email protected]:OpenContentObjectApp zu hinterlegen, die den Inhalt des erzeugten
Objekts zur Bearbeitung öffnet.
Abbildung 41
Zweiteilige Ansicht beim
Registrieren
8. VApp-Anpassungen
8.1 Schritte
8.2 Verzweigungsanpassungen
8.2
Verzweigungsanpassungen
Die Softwarekomponente [email protected] stellt die Aktion [email protected]:BranchFilter
zum Filtern der Verzweigungen einer Anwendungssicht zur Verfügung. Diese Aktion muss bei der Anwendungssicht, deren Verzweigungen dynamisch gefiltert werden sollen, in der Eigenschaft Filter für Verzweigungen
([email protected]:branchesfilter) eingetragen werden.
Die Einstellungen zum Filtern der Verzweigungen einer Anwendungssicht werden in der eGov-Konfiguration
in der zusammengesetzten Eigenschaft Verzweigungsanpassungen ([email protected]:
branchconfig) hinterlegt:
In der Eigenschaft Anwendungssicht ([email protected]:branchconfigtrigger) wird die
Anwendungssicht eingetragen, deren Verzweigungen gefiltert werden sollen.
Die zusammengesetzte Eigenschaft Anzuzeigende Verzweigungen ([email protected]:
usedbranches) dient zum dynamischen Ein- bzw. Ausblenden von Verzweigungen. Der Ausdruck in der
Eigenschaft Verzweigung verwenden, wenn ([email protected]:usedbranchexpr) muss den
boolschen Rückgabewert „true“ liefern, damit die Verzweigung mit dem in der Eigenschaft Programmiername (Opt) ([email protected]:identopt) angegebenen Programmiernamen in der betreffenden
Anwendungssicht angezeigt wird. Andernfalls wird die Verzweigung ausgeblendet. Befinden sich auf der
Anwendungssicht Verzweigungen, die in der Eigenschaft Anzuzeigende Verzweigungen nicht referenziert
werden, werden diese ebenso ausgeblendet.
197
Abbildung 42
Verzweigungsanpassungen
8. VApp-Anpassungen
8.2 Verzweigungsanpassungen
Beispiel
Anforderung
Im Konstruktorformular eines Vorgangs soll die Verzweigung Übernehmen nicht angezeigt werden, um zu
verhindern, dass Set-Aktionen angestoßen werden, bevor der Benutzer die Bearbeitung des neuen Vorgangs abgeschlossen hat.
Lösungsansatz
Beim Erzeugen eines Vorgangs wird standardmäßig die Anwendungssicht [email protected]:
CtorAppView angezeigt, die für die Darstellung des Konstruktorformulars sorgt.
Daher muss in der eGov-Konfiguration in der Eigenschaft Verzweigungsanpassungen für die Anwendungssicht [email protected]:CtorAppView ein Eintrag zur Deaktivierung der Verzweigung
zum Übernehmen eingefügt werden. Abbildung 42 zeigt den entsprechenden Konfigurationseintrag.
199
9
201
9 Glossar
Batch Mode
Seite 106
Massenverarbeitungsmodus, in dem keine Benutzerschnittstellenelemente angezeigt werden. Fabasoft Components verwendet den Batch-Modus unter anderem beim automatischen Importieren von großen Datenmengen.
Seite 112
Copy-Aktion
Bezeichnet die bei einer Eigenschaft hinterlegte Aktion zum Kopieren der Eigenschaft von einem Objekt. Diese
Aktion wird zum Kopieren des Werts der Eigenschaft aufgerufen, wenn ein Objekt dupliziert wird.
Dokumenteigenschaft
Platzhalter für Metadaten aus Fabasoft Components Objekten in Microsoft Office-Dokumenten.
Seite 37
eGov-Konfiguration
Seite 19
Definiert Einstellungen einer Fabasoft Components Domäne oder eines Mandanten in einem E-GovernmentUmfeld. In diesem Konfigurationsobjekt kann sowohl auf die Funktionalität oder auf die Optik Rücksicht genommen werden.
Seite 55
Formular-Set
Bezeichnet die Gesamtheit der von einer Softwarekomponente für eine Objektklasse definierten Formulare.
Get-Aktion
Bezeichnet die bei einer Eigenschaft hinterlegte Aktion nach dem Lesen der Eigenschaft.
Seite 37
Konstruktorformular
Bezeichnet das beim Erzeugen eines Objekts angezeigte Formular.
Seite 23
Seite 35
PostGUI-Initialisierung
Beschreibt die Auswertung der in der eGov-Konfiguration definierten Initialisierungsschritte im Rahmen der
Ausführung der Aktion [email protected]:PostGUI.
PreGUI-Initialisierung
Seite 35
Beschreibt die Auswertung der in der eGov-Konfiguration definierten Initialisierungsschritte im Rahmen der
Ausführung der Aktion [email protected]:PreGUI.
Seite 9
Regel
Bezeichnet eine Einstellungsmöglichkeit, um das Standardverhalten der Fabasoft eGov-Suite an projektspezifische Anforderungen anpassen zu können.
Set-Aktion
Seite 31
Ist eine Aktion, die beim Setzen eines Eigenschaftswertes ausgeführt wird. Eine derartige Aktion kann direkt bei
der Eigenschaft eingetragen werden.
TriStep
Seite 23
Spezielle Ausprägung eines Objektkonstruktors. Ist der Konstruktor einer Objektklasse als TriStep implementiert,
wird beim Erzeugen einer neuen Objektinstanz die Aktion [email protected]:PreGUI aufgerufen und
anschließend das für diese Objektklasse definierte Konstruktorformular angezeigt. Nach dem Schließen des
Konstruktorformulars durch den Benutzer wird die Aktion [email protected]:PostGUI ausgeführt.
9. Glossar
203
10
205
10 Abbildungsverzeichnis
Abbildung 1
Abbildung 2
Abbildung 3
Abbildung 4
Abbildung 5
Abbildung 6
Abbildung 7
Abbildung 8
Abbildung 9
Abbildung 10
Abbildung 11
Abbildung 12
Abbildung 13
Abbildung 14
Abbildung 15
Abbildung 16
Abbildung 17
Abbildung 18
Abbildung 19
Abbildung 20
Abbildung 21
Abbildung 22
Abbildung 23
Abbildung 24
Abbildung 25
Abbildung 26
Abbildung 27
Abbildung 28
Objekthierarchie des DOMEA-Standards
Objekthierarchie des ELAK-Standards
Objekthierarchie des GEVER-Standards
Hierarchie der eGov-Konfigurationen
Aufbau eines TriSteps
Initialisierungsdefinitionen
Objektklassenformatierungen
Einfache Wertformatierungen
Formatierung der Spaltendarstellung
Entfernen von Eigenschaft
Ersetzen von Eigenschaften
Darstellung von Eigenschaften (1)
Darstellung von Eigenschaften (2)
Menüanpassungen
Referenzierung von Eigenschaften
Vordefinierter Cache
Kontext-Symbole
Integrität
Adressaten-Control
Auswertungsreihenfolge der Regeln
Auswertung von Regeln
ACL-Einstellungen
Unterschriftenregelung
Unterschriften- und ACL-Einstellungen
Weiterführung von Unterschriften durch Einstellungen bei der Objektklasse
Weiterführung von Unterschriften durch Ausdruck in der eGov-Konfiguration
Definieren von Ad-hoc-Aktivitäten in der eGov-Konfiguration
Definition von Dokumenteigenschaften
12
15
16
20
24
33
41
47
53
63
65
66
69
73
77
88
94
96
98
104
110
120
129
131
133
135
147
152
Abbildung 29
Abbildung 30
Abbildung 31
Abbildung 32
Abbildung 33
Abbildung 34
Abbildung 35
Abbildung 36
Abbildung 37
Abbildung 38
Abbildung 39
Abbildung 40
Abbildung 41
Abbildung 42
Formatierung von Dokumenteigenschaften
Serienbrief-Konfiguration
Formatierung von Seriendruckfeldern
Vorgangsübersicht
Einschränken der im Menü auswählbaren Text-Dokumente
Definition der Vorgangsübersicht
XSLT-Parameter
Wertformatierungen für Übersichten
Komplexe Dokumentdarstellung
Einfügen einer komplexen Dokumentdarstellung in eine Übersicht
Primärinhalte
Schritte
Zweiteilige Ansicht beim Registrieren
Verzweigungsanpassungen
155
156
157
161
164
165
167
178
180
181
188
195
196
198
10. Abbildungsverzeichnis
207
11
209
11 Literaturverzeichnis
[HoKa06]
Hofmann, Andreas/Katzinger, Petra: Geschäftsprozess- und Workflow-Management
mit Fabasoft. Linz: Fabasoft Press, 2006.
[Kast05]
Kastner, Christian: Elektronische Zustellung mit Fabasoft. Linz: Fabasoft Press, 2005.
[KlWi04]
Klein, Gerfried/Wimmer, Christian: Softwareentwicklung mit der Fabasoft
VAPP-Technologie. Linz: Fabasoft Press, 2004.
[KBSt05]
Koordinierungs- und Beratungsstelle der Bundesregierung für
Informationstechnik in der Bundesverwaltung (KBSt):
„DOMEA-Organisationskonzept 2.1“. URL:
http://www.kbst.bund.de/cln_046/nn_838516/SharedDocs/Anlagen-kbst/
Domea/domea-organisationskonzeptes-2-1,templateId=raw,property=publicationFile.pdf/
domea-organisationskonzeptes-2-1.pdf [Stand: 21.3.2007].
[Knaa99]
Knaack, Ildiko: „Die Einführung von Vorgangsbearbeitungssystemen in der
öffentlichen Verwaltung als IT-organisatorischer Gestaltungsprozeß“.
URL: http://edoc.hu-berlin.de/dissertationen/knaack-ildiko-1999-12-08 [Stand: 19.2.2007].

Documentos relacionados