White Paper. Customization Points der Fabasoft egov-suite 2013 mit app.ducx



Ähnliche Dokumente
White Paper. Fabasoft Folio Zugriffsdefinitionen Winter Release

White Paper. Konfiguration und Verwendung des Auditlogs Winter Release

White Paper. Installation und Konfiguration der PVP Integration

White Paper. Installation und Konfiguration der Fabasoft Integration für CalDAV

Konfiguration des Novell GroupWise Connectors

White Paper. Domänenübergreifende Lizenzprüfung Winter Release

Indizierungs- und Suchlogs. Version 2015

White Paper. Use-Cases zur Fachanwendungsintegration mit der Fabasoft egov-suite

Dokumentenverwaltung im Internet

Handbuch ECDL 2003 Professional Modul 3: Kommunikation Kalender freigeben und andere Kalender aufrufen

Step by Step Softwareverteilung unter Novell. von Christian Bartl

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Anton Ochsenkühn. amac BUCH VERLAG. Ecxel für Mac. amac-buch Verlag

Anleitung zum LPI ATP Portal

Handbuch. Artologik EZ-Equip. Plug-in für EZbooking version 3.2. Artisan Global Software

Der neue persönliche Bereich/die CommSy-Leiste

Lehrer: Einschreibemethoden

Konfiguration von Fabasoft Mindbreeze Enterprise für IBM Lotus

GITS Steckbriefe Tutorial

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

ecaros2 - Accountmanager

Zwischenablage (Bilder, Texte,...)

LDAP Konfiguration nach einem Update auf Version 6.3 Version 1.2 Stand: 23. Januar 2012 Copyright MATESO GmbH

Anleitung zur Verwendung der VVW-Word-Vorlagen

So geht s Schritt-für-Schritt-Anleitung

MMS - Update auf Version 4.4

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

White Paper. Fabasoft egov-vps

Step by Step-Anleitung Version 1.00 vom 03. März 2009 Christian Schnettelker,

Melde- und Veröffentlichungsplattform Portal (MVP Portal) Hochladen einer XML-Datei

ID VisitControl. Dokumentation Administration Equitania Software GmbH cmc Gruppe Seite 1

Erstellung von Reports mit Anwender-Dokumentation und System-Dokumentation in der ArtemiS SUITE (ab Version 5.0)

Elexis-BlueEvidence-Connector

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

Vorabversion. Schulung am Homepage Administration und Pflege

Thermoguard. Thermoguard CIM Custom Integration Module Version 2.70

Änderungen an der Mareon-Schnittstelle

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version Optional einen DHCP Server.

Mandant in den einzelnen Anwendungen löschen

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

Veröffentlichen von Apps, Arbeitsblättern und Storys. Qlik Sense Copyright QlikTech International AB. Alle Rechte vorbehalten.

Benutzerhandbuch - Elterliche Kontrolle

Gezielt über Folien hinweg springen

Technische Informationen. Fabasoft Cloud

Einführung in die Programmierung

Software- und Druckerzuweisung Selbstlernmaterialien

Informations- und Kommunikationsinstitut der Landeshauptstadt Saarbrücken. Upload- / Download-Arbeitsbereich

Übung - Konfigurieren einer Windows 7-Firewall

Produktschulung WinDachJournal

Aufklappelemente anlegen

Hinweise zur Datensicherung für die - Prüfmittelverwaltung - Inhalt

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Handbuch für Redakteure

Terminabgleich mit Mobiltelefonen

Anwendungsbeispiele Sign Live! Secure Mail Gateway

DIRECTINFO 5.7 SICHERHEITSKONZEPTE FÜR BENUTZER, INFORMATIONEN UND FUNKTIONEN

MULTIWEB Banking. Installation und Update unter Windows

Monatstreff für Menschen ab 50 Temporäre Dateien / Browserverlauf löschen / Cookies

Kontakte Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

Microsoft Access 2010 Navigationsformular (Musterlösung)

Arbeiten mit Workflows Installationsleitfaden Zur Installation des d3 Workflows

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Hinweise zum elektronischen Meldeformular

Gruppenrichtlinien und Softwareverteilung

Individuelle Formulare

Anleitung über den Umgang mit Schildern

Einführungskurs MOODLE Themen:

PKV- Projektanlage Assistent

Webakte in Advolux Verfasser : Advolux GmbH Letze Änderung : 10. Juli

Installationsleitfaden kabelsafe backup professional unter MS Windows

Massenversand Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

Wie kann ich in der Backstage-Ansicht eigene Dokumentationen einbinden?

EPOS. Kurzanleitung Modul Mailing. Logex AG IT-Solutions. Copyright (c) 2008 by Logex ag, Switzerland, all Rights reserved

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

Auktionen erstellen und verwalten mit dem GV Büro System und der Justiz Auktion

Version White Paper ZS-TimeCalculation und die Zusammenarbeit mit dem iphone, ipad bzw. ipod Touch

Anbindung des Onyx Editors an das Lernmanagementsystem OLAT Anwendungsdokumentation

Wichtige Informationen für die Bieter

Visual Basic Express erstes Projekt anlegen

Speicher in der Cloud

Vorgehensweise bei Lastschriftverfahren

3 Installation von Exchange

Die Textvorlagen in Microsoft WORD und LibreOffice Writer

Import des Out of Office Status von Exchange in LANDESK Service Desk

Webalizer HOWTO. Stand:

White Paper - Umsatzsteuervoranmeldung Österreich ab 01/2012

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

Hilfedatei der Oden$-Börse Stand Juni 2014

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

2010 Ing. Punzenberger COPA-DATA GmbH. Alle Rechte vorbehalten.

Einzel- s und unpersönliche Massen-Mails versenden

STRATO Mail Einrichtung Mozilla Thunderbird

ECDL Europäischer Computer Führerschein. Jan Götzelmann. 1. Ausgabe, Juni 2014 ISBN

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager

iphone- und ipad-praxis: Kalender optimal synchronisieren

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

S7-Hantierungsbausteine für R355, R6000 und R2700

Transkript:

White Paper Customization Points der Fabasoft egov-suite 2013 mit app.ducx Gültig ab 13.05.2013

Copyright Fabasoft R&D GmbH, A-4020 Linz, 2013. Alle Rechte vorbehalten. Alle verwendeten Hard- und Softwarenamen sind Handelsnamen und/oder Marken der jeweiligen Hersteller. Diese Unterlagen sind streng vertraulich. Durch die Übermittlung und Präsentation dieser Unterlagen alleine werden keine Rechte an unserer Software, an unseren Dienstleistungen und Dienstleistungsresultaten oder sonstigen geschützten Rechten begründet. Die Weitergabe, Veröffentlichung oder Vervielfältigung ist nicht gestattet. 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. Customization Points der Fabasoft egov-suite 2013 mit app.ducx 2

Inhalt 1 Einleitung 5 2 Softwarevoraussetzungen 5 3 Softwarekomponenten 5 4 Gemeinsame Konzepte 6 4.1 Aufrufende Aktion (Wrapper für Java) 6 4.2 Der generische Dictionary-Parameter state 6 4.3 Tri Step 7 5 Customization Points aus FSCCONFIG@1.1001 (Administration) 8 5.1 FormatValue (Formatierung) 8 5.2 NameBuild (Bildung des Objektnamens) 9 5.3 CPAllowedAttrDef (Referenzierung von Eigenschaften) 9 5.4 CPContextExpressions (Ausdrücke für Auslöser) 10 5.5 CPSymbols (Symbole) 10 5.6 CPQuickSearchSuffix (Zusätzliche Beschreibung zu gefundenen Objekte) 11 6 Customization Points aus COOWF@1.1 (Workflow Konfiguration) 11 6.1 InsertActivityDef (Einzufügende Aktivitätsdefinition) 11 7 Customization Points aus FOLIOEX@15.1001 (Erweiterte Konfiguration) 12 7.1 KnownNumerators (Nummeratoren) 12 7.2 CPObjInit (Initialisierung) 13 7.3 CPInitFromParent (Initialisierung von Eigenschaften) 15 7.4 CPPreCreateObject (Anwendungen für das Erzeugen von Objekten) 16 7.5 CPSeqNumberConfig (Subzahl-Einstellungen) 17 7.6 CPObjAccDef (Einstellungen Zugriffsdefinition) 17 7.7 CPApplyRule (Regeln) 18 7.8 CPIntegrity (Integrität) 18 7.9 CPShowMenu (Menü) 19 7.10 CPValidateProperty (Prüfen des Werts einer Eigenschaft) 20 8 Customization Points aus EGOVCP@15.1001 (egov-konfiguration) 21 8.1 CPUseView (Zu verwendende Eigenschaften) 21 8.2 CPGetMapping (Verwendbares XPath-Mapping) 21 8.3 CPGetTransformation (Verwendbare XSL-Transformation) 22 8.4 CPAllowSignature (Vorbedingungen für Unterschriften) 22 8.5 CPExcecuteSignature (Ausführungen der Unterschrift) 23 8.6 CPExecSgnatureAct (Aktion beim Unterschreiben) 23 8.7 CPPropagateSignatureTo (Unterschrift weiterführen auf) 24 8.8 CPPropagateAttribute (Einstellungen zum Propagieren von Eigenschaftswerten) 25 Customization Points der Fabasoft egov-suite 2013 mit app.ducx 3

8.9 CPFinalSteps (Finalisierungsschritte) 25 8.10 CPDispDict (Zusätzliche Einträge für das Abfertigungs-Dictionary) 26 8.11 CPDispObj (Versand) 27 8.12 CPSWCPriority (Priorität von Softwarekomponenten) 27 8.13 CPOverviewDefinitions (PDF-Übersichten) 27 8.14 CPMergeValueFormat (Wertformatierung für Serienbriefe) 28 8.15 CPValueFormat (Wertformatierung) 29 8.16 CPContextDictionary (Kontextsensitives Dictionary) 30 8.17 CPPreDefinedCache (Vordefinierter Cache) 30 8.18 CPInitContent (Inhaltsinitialisierung) 31 9 Anwendungsfälle 32 9.1 Initialisierungen 32 9.1.1 Initialisierungen beim Erzeugen 33 9.2 Erzeugen 33 9.2.1 Aktivierung der Dublettenprüfung durch die Suche 33 9.3 Sicherheit 35 9.3.1 Verwenden von Zugriffsdefinitionen 35 Customization Points der Fabasoft egov-suite 2013 mit app.ducx 4

1 Einleitung Dieses Dokument beschreibt die Fabasoft egov-suite spezifischen Customization Points (CP), die mit app.ducx verwendet werden können, um das Verhalten einer Installation zu verändern. 2 Softwarevoraussetzungen Systemumgebung: Die Informationen in diesem Dokument beziehen sich auf eine Microsoft Windows-Systemumgebung und Fabasoft Softwareprodukte der Version 2013. Unterstützte Plattformen: Detaillierte Informationen zu unterstützten Betriebssystemen und unterstützter Software finden Sie in der Softwareproduktinformation im Documents -Verzeichnis Ihrer Fabasoft Produkt-DVD. Benötigte Softwareprodukte: Für eine Verwendugn der Customization Points wird Fabasoft app.ducx benötigt. Detaillierte Informationen zu unterstützten Betriebssystemen und unterstützter Software zu Fabasoft app.ducx finden Sie in der Softwareproduktinformation im Documents - Verzeichnis Ihrer Fabasoft Produkt-DVD. 3 Softwarekomponenten Folgende Softwarekomponenten der Fabasoft egov-suite werden für die Fabasoft egov-suite spezifische Fachanwendungsintegration benötigt: Fabasoft Components/eGov FSCCONFIG@1.1001:Administratio nconfiguration Configuration of Domains and Software Components (FSCCONFIG@1.1001) FOLIOEX@15.1001:Configuration Folio Extensions (FOLIOEX@15.1001) Folio-Basiskonfiguration inkl. Customization Points. Erweitert das Basisprodukt um systemnahe Funktionalitäten und bietet zugehörige Customization Points an. EGOVCP@15.1001:Configuration E-Government Customization Points (EGOVCP@15.1001) Stellt egov-suite spezifische Customization-Points zur Verfügung. Customization Points der Fabasoft egov-suite 2013 mit app.ducx 5

4 Gemeinsame Konzepte 4.1 Aufrufende Aktion (Wrapper für Java) Da Customization Points aktuell direkt nur in Expressions aufgerufen werden können, existieren für den Großteil der CP zugehörige aufrufende (Wrapper-)Aktionen, die den CP-Aufruf auch innerhalb von Java-Implementierungen ermöglichen. Die entsprechenden Aktionen sind im jeweiligen CP Kapitel vermerkt. : Customization Point: FOLIOEX@15.1001:CPApplyRule Zugehörige aufrufende Aktion zur Verwendung in Java: FOLIOEX@15.1001:ApplyRule 4.2 Der generische Dictionary-Parameter state Einige Customization Points verwenden als generischen Übergabeparameter ein Dictionary state. Dieses Dictionary kann vor jedem CP Aufruf wie gewünscht unterschiedlich befüllt und im zugehörigen CP verwendet werden. In der folgenden überschriebenen Aktion DuplicateObjectHook wird vor dem Aufruf von FOLIOEX@15.1001:InitObj (die zum Customization Point FOLIOEX@15.1001:CPObjInit zugehörige aufrufende Aktion für Java) das Dictionary state angelegt und mit dem Quell- (source) und übergeordneten (parent) Objekt befüllt. override FSCVENV@1.1001:DuplicateObjectHook //duplicate a content object variant COOSYSTEM@1.1:ContentObject impl = application expression Customization Points der Fabasoft egov-suite 2013 mit app.ducx 6

object created_object; object venv_object; object venv_parent; object trgobj = created_object; object source = venv_object; object parent = venv_parent; dictionary state = coort.createdictionary(); state.setentry("source", source); state.setentry("parent", parent); trgobj.folioex@15.1001:initobj(#egovbase@15.1001:ctxinitobjectaftercopy, &state); //... Im entsprechenden Customization Point steht das zuvor befüllte Dictionary state zur Verfügung. customize CPObjInit<COOSYSTEM@1.1:ContentObject, EGOVBASE@15.1001:CtxInitObjectAftercopy> objinit = expression COOSYSTEM@1.1:ContentObject trg = cooobj; COOSYSTEM@1.1:ContentObject src = state.source; trg.folioex@15.1001:initobj(#egovbase@15.1001:ctxinitcopybaseactions, state); 4.3 Tri Step Im Rahmen des Tri Step werden die Customization Points vor dem Anzeigen der GUI im ObjectConstructor, CPObjInit und CPInitFromParent verwendet (Pre GUI). Nach dem Anzeigen der GUI kommt in ObjectPrepareCommit und in ObjectFinalizeCommit jeweils CPObjInit zum Einsatz. Customization Points der Fabasoft egov-suite 2013 mit app.ducx 7

5 Customization Points aus FSCCONFIG@1.1001 (Administration) Eine vollständige Auflistung der in Fabasoft Folio verfügbaren Customization Points befindet sich im White Paper zu Fabasoft app.ducx. 5.1 FormatValue (Formatierung) Der Customization Point FormatValue wird zur Formatierung von Zeichenketten-Eigenschaften verwendet, häufig z.b. für mlname. FSCCONFIG@1.1001:ObjectConstructorNameBuild Anmerkung: Das Schlüsselwort obsolete weist lediglich darauf hin, dass es sich bei FormatValue um einen alten Customization Point handelt, und kann in diesem Fall ignoriert werden. Im folgenden wird für registrierte Geschäftsobjekte die Eigenschaft COOELAK@1.1001:filereference durch Hinzufügen von subfilenumber zusammengebaut. import ELAKGOV@1.1001; import DEVEXT@15.1001; customize FormatValue<COOELAK@1.1001:SubFile, COOELAK@1.1001:filereference> build = expression if (this.cooelak@1.1001:referrednumber!= null && this.subfilenumber!= null) ELAKGOV@1.1001:SubjectAreaFile @saf; this.devext@15.1001:gettoplevel(#elakgov@1.1001:subjectareafile, null, &@saf); @saf.cooelak@1.1001:filereference + "-" + this.subfilenumber else null Customization Points der Fabasoft egov-suite 2013 mit app.ducx 8

5.2 NameBuild (Bildung des Objektnamens) Der Customization Point NameBuild wird zur Formatierung des Objektnamens von Objekten verwendet. FSCCONFIG@1.1001:ObjectConstructorNameBuild Im folgenden wird für die Objektklasse Gesetzestext der Objektname konfiguriert. customize NameBuild<FSCDECCHARGES@1.1001:LegalText, COOSYSTEM@1.1:objname> properties = FSCDECCHARGES@1.1001:shortdesc namefixed = false; build = expression cooobj.fscdeccharges@1.1001:shortdesc 5.3 CPAllowedAttrDef (Referenzierung von Eigenschaften) Mittels CPAllowedAttrDef ist es möglich, Eigenschaften dynamisch auszutauschen und somit zum unterschiedliche Objektklassen zu erlauben. Der Austausch der Eigenschaft wird implizit durchgeführt, eine aufrufende Aktion wird somit nicht benötigt. keine Im folgenden wird die Objektlisteneigenschaft COOELAK@1.1001:attachments je nach Bedingung durch eine andere Eigenschaft mit jeweils anderen erlaubten einfügbaren bzw. erzeugbaren Objekten ersetzt. Der Rückgabewert ist die statt COOELAK@1.1001:attachments zu verwendende Eigenschaft. import ELAKGOV@1.1001; import DEVEXT@15.1001; customize CPAllowedAttrDef<SubjectAreaFile, attachments> cfgexpression = expression if (#TV.FOLIOEX@15.1001:TV_DRAGANDDROP!= null && Customization Points der Fabasoft egov-suite 2013 mit app.ducx 9

#TV.FOLIOEX@15.1001:TV_DRAGANDDROP) #ATPRECONFIG@1.1001:allowedattachmentsimport else if(cooobj.fscfolio@1.1001:objdocstate == 30) #ATPRECONFIG@1.1001:allownofileattachments else #ATPRECONFIG@1.1001:allowfileattachments 5.4 CPContextExpressions (Ausdrücke für Auslöser) Ein allgemein verwendeter Customization Point der eine Stringliste zurückliefert. FSCCONFIG@1.1001:EvaluateExpression Nachfolgend wird für den Auslöser EGOVBASE@15.1001:AddPaperEnvelope (Hinzufügen von Kuverts im Rahmen der Abfertigung) und die Versandart RSa (COOELAK@1.1001:TransMediaRSA) das zugehörige Kuvert aus ATPRECONFIG@1.1001 zurückgeliefert. import ELAKGOV@1.1001; import DEVEXT@15.1001; customize CPContextExpressions<COOELAK@1.1001:SubFileDocument, EGOVBASE@15.1001:AddPaperEnvelope, COOELAK@1.1001:TransMediaRSA> cfgexpression = expression #ATPRECONFIG@1.1001:RSaReturnReceipt 5.5 CPSymbols (Symbole) CPSymbols liefert nach Evaluierung der zugehörigen Expression das zu verwendende Symbol. FSCCONFIG@1.1001:MethodGenericIconGet Customization Points der Fabasoft egov-suite 2013 mit app.ducx 10

customize CPSymbols<COOELAK@1.1001:File> cfgicexpression = expression cooobj.fscfolio@1.1001:objdocstate == DS_CANCELLED COODESK@1.1:objmicon = EGOVDESK@15.1001:SymbolFileCanceled; 5.6 CPQuickSearchSuffix (Zusätzliche Beschreibung zu gefundenen Objekte) Durch CPQuickSearchSuffix kann der angezeigte Name der Ergebnissen einer Schnellsuche angepasst werden. keine Eigenschaften in der Ergebnisliste einer Schnellsuche erhalten im folgenden ihre jeweilige Referenz zusätzlich zum Objektnamen angezeigt, wenn beim Benutzer LANG_ENGLISH als Sprache ausgewählt ist. customize CPQuickSearchSuffix<COOSYSTEM@1.1:AttributeDefinition> cfgmlnamesuffix<coosystem@1.1:language,coosystem@1.1:langstring> = COOSYSTEM@1.1:LANG_ENGLISH," - <~this.getreference()~>" 6 Customization Points aus COOWF@1.1 (Workflow Konfiguration) 6.1 InsertActivityDef (Einzufügende Aktivitätsdefinition) FOLIOEX@15.1001:PrescribeOnScope See Also: COOWF@1.1:PrescribeOnScope COOWF@1.1:GetInsertActivityDef Customization Points der Fabasoft egov-suite 2013 mit app.ducx 11

Parameters: objclass the object class oft he customization insertactdefscope the scope fort he customization state a dictionary available in the customization insertactdef the activity to be inserted import COOWF@1.1; customize InsertActivityDef<COOELAK@1.1001:SubFileDocument, ScopeStartWF> insertactdef = expression Object @ret = null; if (cooobj.cooelak@1.1001:referrednumber == null) @ret = #ATPRECONFIG@1.1001:ActDefRegister else COOELAK@1.1001:SubjectArea @subjectarea; cooobj.cooelak@1.1001:getsubjectarea(&@subjectarea); if (@subjectarea!= null && @subjectarea.cooelak@1.1001:startactivity!= null) @ret = @subjectarea.cooelak@1.1001:startactivity; @ret 7 Customization Points aus FOLIOEX@15.1001 (Erweiterte Konfiguration) 7.1 KnownNumerators (Nummeratoren) FOLIOEX@15.1001:GetKnownNumerators Customization Points der Fabasoft egov-suite 2013 mit app.ducx 12

import FOLIOEX@15.1001; customize KnownNumerators<File, GetKeyProperties, ordinal> numkeyattrdefs = COOELAK@1.1001:year 7.2 CPObjInit (Initialisierung) Die Objektinitialisierung erfolgt entweder vor Anzeige der GUI (Pre GUI, Auslöser ObjectConstructor) oder nachdem die GUI wieder geschlossen wurde (Post GUI, Auslöser ObjectPrepareCommit und ObjectFinalizeCommit). Um die Customization Point Einträge übersichtlicher und überschreibbarer zu halten, wird im ObjectConstructor gleich nach CPObjInit der Customization Point CPInitFromParent aufgerufen, welcher dazu dient, einfache 1:1 Initialisierungen von Eigenschaften aus Eigenschaften des übergeordneten Quellobjektes durchzuführen. FOLIOEX@15.1001:InitObj Customization Points der Fabasoft egov-suite 2013 mit app.ducx 13

l import FOLIOEX@15.1001; customize CPObjInit<ELAKGOV@1.1001:SubjectAreaFile, COOSYSTEM@1.1:ObjectConstructor> objinit = expression %%trace("objectconstructor for ", objclass); Object parent = null; ELAKGOV@1.1001:SubjectAreaFile obj = cooobj; if (obj.elakgov@1.1001:apentry == null) Object parent = state.container; if (parent.hasclass(#cooelak@1.1001:subjectarea) parent.hasclass(#cooelak@1.1001:subjectareacomponentobject)) obj.elakgov@1.1001:apentry = parent; obj.cooelak@1.1001:incharge = parent.cooelak@1.1001:incharge; else parent = obj.elakgov@1.1001:apentry; if (parent!= null && (parent.hasclass(#cooelak@1.1001:subjectarea) parent.hasclass(#cooelak@1.1001:subjectareacomponentobject))) if (parent.cooelak@1.1001:fileaccesdefinition!= null) obj.fscfolio@1.1001:objaccdef = parent.cooelak@1.1001:fileaccesdefinition; else obj.fscfolio@1.1001:objaccdef = obj.coosystem@1.1:objclass.fscfolio@1.1001:classdefaultaccdef; if (obj.fscfolio@1.1001:objaccdef == #COOELAK@1.1001:IndividualAccessDefinition) obj.cooelak@1.1001:objsecchangeindividual = coouser; obj.cooelak@1.1001:objsecchangeindividual *= parent.cooelak@1.1001:filesecchange; obj.cooelak@1.1001:objsecreadindividual = parent.cooelak@1.1001:filesecread; obj.coosystem@1.1:objsecchange = null; obj.coosystem@1.1:objsecread = null; else obj.coosystem@1.1:objsecchange = parent.cooelak@1.1001:filesecchange; obj.coosystem@1.1:objsecread = parent.cooelak@1.1001:filesecread; obj.cooelak@1.1001:objsecchangeindividual = null; obj.cooelak@1.1001:objsecreadindividual = null; if (parent.cooelak@1.1001:ou!= null) obj.cooelak@1.1001:fileouobj = parent.cooelak@1.1001:ou; else obj.cooelak@1.1001:fileouobj = coort.getcurrentuserrolegroup(); Customization Points der Fabasoft egov-suite 2013 mit app.ducx 14

//wenn der Wert von fileresporg!= der Gruppe der Rolle ist, dann passiert nichts! if (obj.cooelak@1.1001:fileresporg == null) obj.cooelak@1.1001:fileresporg = coort.getcurrentuserrolegroup(); obj.cooelak@1.1001:incharge = parent.cooelak@1.1001:incharge; obj.elakgov@1.1001:archivingdeadlinein = parent.elakgov@1.1001:archivingdeadlinein; obj.elakgov@1.1001:retentiondeadlinein = parent.elakgov@1.1001:retentiondeadlinein; obj.elakgov@1.1001:transferdeadlinein = parent.elakgov@1.1001:transferdeadlinein; obj.elakgov@1.1001:validationdeadlinein = parent.elakgov@1.1001:validationdeadlinein; obj.elakgov@1.1001:depositdeadlinein = parent.elakgov@1.1001:depositdeadlinein; obj.elakgov@1.1001:initializebusinessapplicationdata(); else obj.fscfolio@1.1001:objaccdef = obj.coosystem@1.1:objclass.fscfolio@1.1001:classdefaultaccdef; obj.coosystem@1.1:objsecchange = null; obj.coosystem@1.1:objsecread = null; obj.cooelak@1.1001:objsecchangeindividual = null; obj.cooelak@1.1001:objsecreadindividual = null; obj.cooelak@1.1001:fileouobj = coort.getcurrentuserrolegroup(); if (obj.cooelak@1.1001:fileresporg == null) obj.cooelak@1.1001:fileresporg = coort.getcurrentuserrolegroup(); obj.cooelak@1.1001:incharge = null; obj.elakgov@1.1001:businessdata = null; obj.fscfolio@1.1001:setdocstate(10, true); cooobj.fscfolio@1.1001:bostate = #COOELAK@1.1001:Created; //TV_REFERREDOBJECTCHANGEABLE is used in formpages to set the changeable attribute of //COOELAK@1.1001:referrednumber. if(state.container.hasclass(#cooelak@1.1001:govobject) && (#TV.EGOVBASE@15.1001:TV_REFERREDOBJECTCHANGEABLE == null #TV.EGOVBASE@15.1001:TV_REFERREDOBJECTCHANGEABLE!= true)) #TV.EGOVBASE@15.1001:TV_REFERREDOBJECTCHANGEABLE = false; else #TV.EGOVBASE@15.1001:TV_REFERREDOBJECTCHANGEABLE = true; 7.3 CPInitFromParent (Initialisierung von Eigenschaften) FOLIOEX@15.1001:GetInitFromParentConfig Customization Points der Fabasoft egov-suite 2013 mit app.ducx 15

import FOLIOEX@15.1001; customize CPInitFromParent<COOELAK@1.1001:SubFileDocument, COOELAK@1.1001:ReturnReceipt> initexpr = expression %%trace("init From Parent SubFileDocument -> ReturnReceipt"); COOELAK@1.1001:ReturnReceipt trg = cooobj; COOELAK@1.1001:SubFileDocument src = state.container; trg.cooelak@1.1001:receiptref = src.coosystem@1.1:objname; trg.cooelak@1.1001:receiptstate = RR_STATE_OPEN; 7.4 CPPreCreateObject (Anwendungen für das Erzeugen von Objekten) Über CPPreCreateObject kann beim Erzeugen von Objekten eine alternative Anwendung konfiguriert werden. Diese Anwendung muss das Objekt der ausgewählten Objektklasse erzeugen und weiter behandeln. So wurde beispielsweise die Dublettenprüfung bei Kontakten implementiert. keine import FOLIOEX@15.1001; customize CPPreCreateObject<FSCFOLIO@1.1001:Contact> application = EGOVBASE@15.1001:ObjectCreateContactObjectOpen; Customization Points der Fabasoft egov-suite 2013 mit app.ducx 16

7.5 CPSeqNumberConfig (Subzahl-Einstellungen) FOLIOEX@15.1001:GetSeqNumberConfig import FOLIOEX@15.1001; import ELAKGOV@1.1001; customize CPSeqNumberConfig<SubFile> countingclass = SubjectAreaFile seqcontnumattrdef = subfilemaxnumber; seqnumattrdef = subfilenumber; 7.6 CPObjAccDef (Einstellungen Zugriffsdefinition) FOLIOEX@15.1001:ApplySecurity Customization Points der Fabasoft egov-suite 2013 mit app.ducx 17

Die Aktion FOLIOEX@15.1001:ApplySecurity unterstützt sowohl das Setzen von Zugriffsdefinition und ACLs. Wird über den CP eine Zugriffsdefinition zurückgegeben, so wird diese auch gesetzt. Wird eine ACL zurückgegeben und die Zugriffsdefinition ist null, dann wird die ACL vergeben. import FOLIOEX@15.1001; customize CPObjAccDef<GovObject, COOSYSTEM@1.1:ObjectConstructor> accdef = expression #COOELAK@1.1001:LoyalAccessDefinition 7.7 CPApplyRule (Regeln) FOLIOEX@15.1001:ApplyRule import FOLIOEX@15.1001; customize CPApplyRule<COOELAK@1.1001:GovObject, COOSYSTEM@1.1:AttrChildrenFixVersion> apply = expression false 7.8 CPIntegrity (Integrität) FOLIOEX@15.1001:EnforceIntegrity Customization Points der Fabasoft egov-suite 2013 mit app.ducx 18

import FOLIOEX@15.1001; customize CPIntegrity<COOELAK@1.1001:File, COOSYSTEM@1.1:ObjectDelete> deny = expression %%trace("cooobj", cooobj); (cooobj.cooelak@1.1001:attachments!= null) && (!#TV.EGOVBASE@15.1001:TV_ALLOWDELETEREFOBJ) 7.9 CPShowMenu (Menü) FOLIOEX@15.1001:GetDynamicMenu Customization Points der Fabasoft egov-suite 2013 mit app.ducx 19

import FOLIOEX@15.1001; import EGOVBASE@15.1001; customize CPShowMenu<COOELAK@1.1001:SubFileDocument, EGOVBASE@15.1001:MenuFinalizeObject> showmenu = expression cooobj.cooelak@1.1001:objfinalizedat == null && COUNT(cooobj.COOELAK@1.1001:addressees)>0 && COUNT(cooobj.COOELAK@1.1001:attachments)>0; customize CPShowMenu<COOELAK@1.1001:SubFileDocument, EGOVBASE@15.1001:MenuDispatchObject> showmenu = expression cooobj.cooelak@1.1001:objfinalizedat!= null customize CPShowMenu<COOELAK@1.1001:SubFileDocument, EGOVBASE@15.1001:MenuCancelDispatch> showmenu = expression cooobj.cooelak@1.1001:objfinalizedat!= null 7.10 CPValidateProperty (Prüfen des Werts einer Eigenschaft) FOLIOEX@15.1001:ValidateProperty import FOLIOEX@15.1001; customize CPValidateProperty<COOSYSTEM@1.1:Object, COOELAK@1.1001:incharge, null> valid = expression string @errormsg; if (state.value!= null) coouser.coowf@1.1:checkparticipant(state.value,null,null,null,null,&@errormsg, null, false, false); Customization Points der Fabasoft egov-suite 2013 mit app.ducx 20

if (@errormsg!= null) coouser.fscexpext@1.1001:raiseerror(#cooelak@1.1001:err_fmtstr, @errormsg); true else true else true 8 Customization Points aus EGOVCP@15.1001 (egov-konfiguration) 8.1 CPUseView (Zu verwendende Eigenschaften) EGOVCP@1.1001:GetUseAttrDefs import COOSYSTEM@1.1001; import EGOVCP@15.1001; customize CPUseView<FSCFOLIO@1.1001:Person, EGOVBASE@15.1001:CheckDuplicatesWhileCreate, EGOVBASE@15.1001:CtxCheckDuplicatesAttributes> attrdefs = expression [ #COOSYSTEM@1.1:userfirstname, #COOSYSTEM@1.1:usersurname ] 8.2 CPGetMapping (Verwendbares XPath-Mapping) EGOVCP@1.1001:GetMapping Customization Points der Fabasoft egov-suite 2013 mit app.ducx 21

8.3 CPGetTransformation (Verwendbare XSL-Transformation) EGOVCP@1.1001:GetTransformation 8.4 CPAllowSignature (Vorbedingungen für Unterschriften) EGOVCP@1.1001:GetAllowedSignature import EGOVCP@15.1001; customize CPAllowSignature<COOSYSTEM@1.1:Object, COOELAK@1.1001:SIGN_CANCEL> allow = expression if (cooobj.fscfolio@1.1001:objdocstate == 10) true; else Customization Points der Fabasoft egov-suite 2013 mit app.ducx 22

false; 8.5 CPExcecuteSignature (Ausführungen der Unterschrift) Anmerkung: Referenzänderung ab der egov-suite 2012 auf CPExecuteSignature. EGOVCP@1.1001:ExcecuteSignature import EGOVCP@15.1001; customize CPExecuteSignature<COOSYSTEM@1.1:Object, COOELAK@1.1001:SIGN_CANCEL> excecuted = expression cooobj.coosystem@1.1:objectlock(true, true, null, false); cooobj.fscfolio@1.1001:setdocstate(40, false); true 8.6 CPExecSgnatureAct (Aktion beim Unterschreiben) Anmerkung: Referenzänderung ab der egov-suite 2012 auf CPExecSignatureAct. EGOVCP@1.1001:GetExecSignatureAct Customization Points der Fabasoft egov-suite 2013 mit app.ducx 23

import EGOVCP@15.1001; customize CPExecSgnatureAct<COOSYSTEM@1.1:Object, COOELAK@1.1001:SIGN_DEPOSIT> act = EGOVBASE@15.1001:DepositRunningProcesses; 8.7 CPPropagateSignatureTo (Unterschrift weiterführen auf) EGOVCP@1.1001:GetSignPropagateObjects import EGOVCP@15.1001; customize CPPropagateSignatureTo<COOELAK@1.1001:GovObject, COOELAK@1.1001:SIGN_CANCEL> propagateobjs = expression object[] propobjs = null; cooobj.coosystem@1.1:getmodifypropagation(&propobjs); propobjs[fscfolio@1.1001:objdocstate!= 40] Customization Points der Fabasoft egov-suite 2013 mit app.ducx 24

8.8 CPPropagateAttribute (Einstellungen zum Propagieren von Eigenschaftswerten) EGOVCP@1.1001:GetAttrPropSettings import EGOVCP@15.1001; customize CPPropagateAttribute<COOELAK@1.1001:GovObject,COOSYSTEM@1.1:AttrObjOwnGroupSet, COOSYSTEM@1.1:objowngroup> propagateto = expression %%trace("coosystem@1.1:attrobjowngroupset", cooobj); object[] propobjs; AttributeDefinition childattrdef; cooobj.fscfolio@1.1001:getchildrenattrdef(&childattrdef); cooobj.getattributerecursive(childattrdef, &propobjs); propobjs; forcevalue = true; 8.9 CPFinalSteps (Finalisierungsschritte) Dier Customization Point CPFinalSteps erlaubt die Ausführung aufeinanderfolgender Aktionen sowie Anwendungen, z.b. bei der Finalisierung. EGOVBASE@15.1001:FinalizeObjectEx Customization Points der Fabasoft egov-suite 2013 mit app.ducx 25

import EGOVCP@15.1001; customize CPFinalSteps<COOELAK@1.1001:SubFileDocument, EGOVBASE@15.1001:CtxFinalize, 100> finalstepif = expression COOELAK@1.1001:SubFile sys_object; count(sys_object.cooelak@1.1001:addressees) > 0 finalstepobjs = expression COOELAK@1.1001:SubFile sys_object; sys_object; expr = expression COOELAK@1.1001:SubFile currobj; COOELAK@1.1001:Addressee[] finalizedaddr; currobj.egovbase@15.1001:addresseefinalizer(&finalizedaddr); currobj.coosystem@1.1:objectlock(true, true, null, false); currobj.cooelak@1.1001:finalizedaddressees = finalizedaddr; 8.10 CPDispDict (Zusätzliche Einträge für das Abfertigungs-Dictionary) keine Customization Points der Fabasoft egov-suite 2013 mit app.ducx 26

8.11 CPDispObj (Versand) EGOVCP@1.1001:GetDispObj import EGOVCP@15.1001; customize CPDispObj<EGOVBASE@15.1001:DispatchObject, COOELAK@1.1001:TransMediaMailBCC> dispaction = EGOVBASE@15.1001:DispatchMAPI; 8.12 CPSWCPriority (Priorität von Softwarekomponenten) EGOVCP@1.1001:GetSWCPriority 8.13 CPOverviewDefinitions (PDF-Übersichten) EGOVCP@1.1001:GetOverviewDefinitions Customization Points der Fabasoft egov-suite 2013 mit app.ducx 27

import EGOVCP@15.1001; customize CPOverviewDefinitions<COOELAK@1.1001:SubFileDocument, COOELAK@1.1001:filedocumentation> docdef = DocDefSFDDoc; overviewdepexpr = expression Object[] @attobjs = null; cooobj.getattributerecursive(#cooelak@1.1001:attachments, &@attobjs); [cooobj, @attobjs] 8.14 CPMergeValueFormat (Wertformatierung für Serienbriefe) EGOVCP@1.1001:GetMergeValueFormat Customization Points der Fabasoft egov-suite 2013 mit app.ducx 28

import EGOVCP@15.1001; customize CPMergeValueFormat<COOSYSTEM@1.1:Object, COOELAK@1.1001:addrname> formatval = expression COOELAK@1.1001:Addressee adr = value.entry; string val = adr.cooelak@1.1001:addrname; if (val == null) if (adr.cooelak@1.1001:addressee!= null), val = adr.cooelak@1.1001:addressee.coosystem@1.1:usersurname; val 8.15 CPValueFormat (Wertformatierung) EGOVCP@1.1001:GetValueFormat import EGOVCP@15.1001; customize CPValueFormat<COOSYSTEM@1.1:Object, CCAPRECONFIG@15.1001:CtxDocProperty, COOELAK@1.1001:filesubj> formatval = expression COOELAK@1.1001:GovObject @toplvl = null; string[] @val = null; cooobj.devext@15.1001:gettoplevel(#elakgov@1.1001:subjectareafile, null, &@toplvl); Customization Points der Fabasoft egov-suite 2013 mit app.ducx 29

if (@toplvl!= null) @val = @toplvl.cooelak@1.1001:filesubj; else @val = cooobj.cooelak@1.1001:filesubj; string @retval = ""; for (string @currval : @val) @retval+=@currval+"\n"; @retval 8.16 CPContextDictionary (Kontextsensitives Dictionary) EGOVCP@1.1001:GetContextDictionary import EGOVCP@15.1001; customize CPContextDictionary<COOSYSTEM@1.1:ContentObject, EGOVBASE@15.1001:CtxCreateEvalInstance> dict = expression dictionary @dict = coort.createdictionary(); @dict.setentry("contreport", cooobj.cooelak@1.1001:contreport); @dict 8.17 CPPreDefinedCache (Vordefinierter Cache) EGOVCP@1.1001:GetPredefinedCache Customization Points der Fabasoft egov-suite 2013 mit app.ducx 30

import EGOVCP@15.1001; customize CPPreDefinedCache<COOSYSTEM@1.1:Object, COOELAK@1.1001:defaulttransmedia> cache = expression OBJECTLIST( #COOELAK@1.1001:TermTransmissionMedia.FSCTERM@1.1001:narrowercompterms ) 8.18 CPInitContent (Inhaltsinitialisierung) Der Customization Point CPInitContent wird zur Default-Initialisierung von Inhaltsobjekten verwendet. EGOVCP@15.1001:GetInitContent objmodel MYCOMPONENT@XXX.XXX instance COOSYSTEM@1.1:ComponentContentObject InitContentFileComment COOSYSTEM@1.1:content = file("resources/files/initcontentfilecomment.doc"); Customization Points der Fabasoft egov-suite 2013 mit app.ducx 31

import EGOVCP@15.1001; customize CPInitContent<ELAKGOV@1.1001:FileComment> initobj = expression #EIBPRECONFIG@1.1001:InitContentFileComment; 9 Anwendungsfälle 9.1 Initialisierungen Für die Initialisierung von Metadaten und Ausführen von Aktionen vor bzw. nach dem Anzeigen der GUI gibt es zwei CPs: FOLIOEX@15.1001:CPObjInit Dieser CP wird für die Ausführung von Aktionen innerhalb mehrere Auslöser (z.b.: COOSYSTEM@1.1:ObjectConstructor) verwendet. Es können hier normale Aktionen ausgeführt, aber auch Metadaten initialisiert werden. Beim Erzeugen eines Objekts können immer drei Schritte der Initialisierung verwendet werden. Diese drei Schritte werden in folgender Reihenfolge ausgeführt: o Vor GUI: CPObjInit mit Auslöser COOSYSTEM@1.1:ObjectConstructor o Nach GUI: CPObjInit mit Auslöser COOSYSTEM@1.1:ObjectPrepareCommit o Nach GUI und nach COOSYSTEM@1.1:ObjectPrepareCommit: CPObjInit mit Auslöser COOSYSTEM@1.1:ObjectFinalizeCommit FOLIOEX@15.1001:CPInitFromParent Dieser CP wird nur im Kontext des Objektkonstruktors (also vor dem Anzeigen der GUI) ausgewertet. Er dient in der Regel dazu Metadaten von einem Eltern-Objekt in das neu erzeugte Objekt zu übernehmen (Bsp.: in einem Geschäftsfall wird ein Geschäftsstück angelegt und man will erreichen, dass die Adressaten aus dem Geschäftsfall übernommen werden) Ab der Version 2012 werden einige Basis-Schritte über die Initialisierungen ausgeführt. Der Entwickler hat mehr Möglichkeiten, um das Verhalten von Grund auf zu verändern. Aus diesem Grund werden die Initialisierungen auf zwei Teile aufgeteilt. So wird aus den Initialisierungen als Erstes eine erneute Initialisierung mit dem folgenden Auslösern aufgerufen: EGOVBASE@15.1001:CtxObjectConstructorBaseActions EGOVBASE@15.1001:CtxObjectFinalizeCommitBaseActions In diesen Base-Actions werden die für das System essentiellen Aktionen ausgeführt. Diese Aktionen sind zum : Setzen der Sicherheitsattribute Setzen der Fristen Behandlungen für den informellen Arbeitsbereich Bilden der Geschäftszahl Bilden des Objektnamens Initialisieren der PDF-Übersichten Werden Initialisierungen geändert so empfiehlt es sich immer als ersten Schritt die entsprechenden Initialisierungen für die Base-Actions auszuführen. Customization Points der Fabasoft egov-suite 2013 mit app.ducx 32

Der Customization Point CPObjInit wird auch noch für andere Use-Cases verwendet: Setzen von Gehört zu (FSCFOLIO@1.1001:AttrBackLinkSet) Setzen der APLA (ELAKGOV@1.1001:AttrDefApentrySet) Vorlage Kopieren (EGOVBASE@15.1001:CtxCopyTemplate) Initialisiere kopiertes Objekt aus dem Originalobjekt (EGOVBASE@15.1001:CtxInitObjectAfterCopy) Verständigungsschreiben erstellen (EGOVBASE@15.1001:CtxAgreementLetter) Objekt registrieren (EGOVBASE@15.1001:AcceptObject) 9.1.1 Initialisierungen beim Erzeugen In diesem wird die Initialisierung für die Objektklasse Akt (ELAKGOV@1.1001:SubjectAreaFile) beim Erzeugen angepasst. Ändern der Initialisierungen für ObjectConstructor eines Akts customize CPObjInit<ELAKGOV@1.1001:SubjectAreaFile, COOSYSTEM@1.1:ObjectConstructor> objinit = expression %%trace("objectconstructor", cooobj.objclass); ELAKGOV@1.1001:SubjectAreaFile obj = cooobj; obj.folioex@15.1001:initobj(#egovbase@15.1001:ctxobjectconstructorbaseactions, state); obj.cooelak@1.1001:fileresponsible = coort.getcurrentuser(); Ändern der Initialisierungen für ObjectFinalizeCommit eines Akts customize CPObjInit<ELAKGOV@1.1001:SubjectAreaFile, ObjectFinalizeCommit> objinit = expression %%trace("objectfinalizecommit", cooobj.objclass); COOELAK@1.1001:File obj = cooobj; obj.folioex@15.1001:initobj( #EGOVBASE@15.1001:CtxObjectFinalizeCommitBaseActions, state); 9.2 Erzeugen In diesem Teilbereich werden die Einstellungen angeführt, um das Verhalten des Erzeugen Use- Cases anzupassen. 9.2.1 Aktivierung der Dublettenprüfung durch die Suche Um diesen Use-Case für eine Objektklasse zu aktivieren müssen folgende Einstellungen durchgeführt werden. Die Einstellung werden am der Objektklasse Person (FSCFOLIO@1.1001:Person) erklärt. Aktivierung der Dublettenprüfung Damit beim Erzeugen eines Objekts nicht gleich das Konstruktor-Formular angezeigt wird, sondern zuerst die Suche muss mit dem CP FOLIOEX@15.1001:CPPreCreateObject die Anwendung EGOVBASE@15.1001:ObjectCheckDuplicatesWhileCreate konfiguriert werden. customize CPPreCreateObject<FSCFOLIO@1.1001:Person> application = EGOVBASE@15.1001:ObjectCheckDuplicatesWhileCreate; Customization Points der Fabasoft egov-suite 2013 mit app.ducx 33

Anzeige des Suchformulars Für die Suche beim Erzeugen muss ein eigenes Formular erstellt werden. form ViewSearchDuplicatePerson audience = enduser; ATPRECONFIG@1.1001:PageSearchDuplicatePerson; formpage PageSearchDuplicatePerson audience = enduser; dataset COOSYSTEM@1.1:userfirstname; COOSYSTEM@1.1:usersurname; Dieses Formular muss nun noch der Aktion EGOVBASE@15.1001:CheckDuplicatesWhileCreate zugewiesen werden extend class FSCFOLIO@1.1001:Organisation forms EGOVBASE@15.1001:CheckDuplicatesWhileCreate ATPRECONFIG@1.1001:ViewSearchDuplicateOrganisation; Initialisierung der Suche Damit die Suche ausgeführt werden kann muss der Such-String zuerst als Leer-String generiert werden. Die Aktion EGOVBASE@15.1001:GenerateQueryHeader generiert die Sucheinstellungen inklusive WHERE-Clause (z.b.: LIMIT 100 TIMEOUT 30 SELECT objname FROM FSCFOLIO@1.1001:Person WHERE ). customize CPValueFormat<FSCFOLIO@1.1001:Person, EGOVBASE@15.1001:CheckDuplicatesWhileCreate, EGOVBASE@15.1001:CtxCheckDuplicatesInitQuery> formatval = expression string @query = ""; cooobj.egovbase@15.1001:generatequeryheader(&@query); @query+= ".COOSYSTEM@1.1:userfirstname SOUNDS LIKE \"\" AND.COOSYSTEM@1.1:usersurname SOUNDS LIKE \"\""; @query; Befüllung des Konstruktorformulars Wird kein Objekt gefunden, wird automatisch das Konstruktorformular angezeigt. Damit der Anwender seine bei der Suche eingegebenen Daten nicht verliert kann das Konstruktorformular damit initialisiert werden. Die Definition der Attribute, die für die Befüllung des Kontruktorformulares im Falle des Erzeugens berücksichtigt werden, müssen über den CP EGOVCP@15.1001:CPUseView definiert werden. customize CPUseView<FSCFOLIO@1.1001:Person, EGOVBASE@15.1001:CheckDuplicatesWhileCreate, EGOVBASE@15.1001:CtxCheckDuplicatesAttributes> attrdefs = expression [ #COOSYSTEM@1.1:userfirstname, #COOSYSTEM@1.1:usersurname ] Customization Points der Fabasoft egov-suite 2013 mit app.ducx 34

9.3 Sicherheit Das Kapitel Sicherheit beschreibt die sicherheitsrelevanten Konfigurationen in der Fabasoft egov- Suite. 9.3.1 Verwenden von Zugriffsdefinitionen Im Standardprodukt sind per Default drei Zugriffsdefinition konfiguriert: Zugriffsdefinition für den individuellen Zugriff (COOELAK@1.1001:IndividualAccessDefinition) Zugriffsdefinition für den hierarchischen Zugriff (COOELAK@1.1001:HierarchyAccessDefinition) Zugriffsdefinition für den loyalen Zugriff (COOELAK@1.1001:LoyalAccessDefinition) Soll eine neue Zugriffsdefinition verwendet werden, so muss über app.ducx eine neue Zugriffsdefinition mit den entsprechenden ACLs entworfen werden. Die Zugriffsdefinition spezifiziert pro Status eine ACL. In diesem wird eine Zugriffsdefinition für den eingeschränkten Zugriff nur für Leiter definiert. Definition der Zugriffsdefinition instance FSCFOLIO@1.1001:AccessDefinition HeadAccessDefinition //Detailstatus für Objekte mit dem Dokumentstatus In Bearbeitung FSCFOLIO@1.1001:adstatecfg<FSCFOLIO@1.1001:adstate, FSCFOLIO@1.1001:adacl, COOSYSTEM@1.1:component, FSCFOLIO@1.1001:adaclrec> = COOELAK@1.1001:Approved, HeadAccessACL, EGOVCUSTOMIZING@10.100, HeadAccessACL, COOELAK@1.1001:Finalized, HeadAccessACL, EGOVCUSTOMIZING@10.100, HeadAccessACL, COOELAK@1.1001:Dispatched, LoyalAccessDispatchedACL, EGOVCUSTOMIZING@10.100, LoyalAccessDispatchedACL //ACLs für den Dokumentstatus FSCFOLIO@1.1001:adaclcfg<FSCFOLIO@1.1001:adacl, FSCFOLIO@1.1001:addocstate, COOSYSTEM@1.1:component, FSCFOLIO@1.1001:adaclrec> = HeadAccessACL, DS_EDIT, EGOVCUSTOMIZING@10.100, HeadAccessACL, Customization Points der Fabasoft egov-suite 2013 mit app.ducx 35

LoyalAccessCancelledACL, DS_CANCELLED, EGOVCUSTOMIZING@10.100, LoyalAccessCancelledACL, LoyalAccessClosedACL, DS_CLOSED, EGOVCUSTOMIZING@10.100, LoyalAccessClosedACL Konfiguration der Zugriffsdefinition für die Verwendung Damit die neue Zugriffsdefinition auch für den Benutzer verwendbar ist, muss folgende Customization mit dem CP FSCCONFIG@1.1001:CPContextExpressions durchgeführt werden. Diese Expression muss eine Liste von Zugriffsdefinition (FSCFOLIO@1.1001:AccessDefinition) liefern. Die zurückgegeben Zugriffsdefinition können anschließend vom Anwender ausgewählt werden. customize CPContextExpressions<COOSYSTEM@1.1:Object, COOELAK@1.1001:CtxAvailableAccessDefintions> cfgexpression = expression [#COOELAK@1.1001:HierarchyAccessDefinition, #COOELAK@1.1001:LoyalAccessDefinition, #COOELAK@1.1001:IndividualAccessDefinition, #EGOVCUSTOMIZING@10.100:HeadAccessDefinition] Customization Points der Fabasoft egov-suite 2013 mit app.ducx 36