Sub-Outbar "Allgemein"
In diesem Kapitel werden die Konfigurations-Ordner der Outbar "Allgemein" beschrieben.
- Einleitung
- Verbindungen
- Benutzer und Benutzergruppen
- Übersetzungen
- PropCache
- Tabellen Exportieren / Importieren
Einleitung
Auf der Sub-Outbar "Allgemein" befinden sich die Lösungs-übergreifenden Konfigurationen, welche sowohl für Invoice als auch für Mailroom verwendet werden können. Hierzu gehört zum Beispiel die Benutzer-Konfiguration sowie die Übersetzungen und die PropertyCache-Konfiguration.
Verbindungen
Unterhalb "Verbindung" können diverse Verbindungen konfiguriert werden. Die wichtigste Verbindungs-Konfiguration ist die für den Table-Service. Der Table-Service liest und schreibt die Daten in die Datenbank-Tabellen. Ohne den Table-Service können die meisten Konfigurationen keine Daten anzeigen.
Die Table-Service Konfigurationsdateien befinden sich nach der Installation in der Documents-Installation unter "DEXPRO\TableService\". Die Konfiguration der korrekten Verbindungsdaten wird bereits in der Installations-Anleitung beschrieben. Aktuell kann über die WEB-Konfiguration lediglich die Table-Service URL konfiguriert werden. Über den Button "Table Service" kann die Verbindung getestet werden.
Die Datenbankverbindungen für die Workflow-Skripte werden in der Datei "dbConn.json" gespeichert, welche sich direkt unterhalb des "DEXPRO"-Ordners befindet. Für diese Datei existiert aktuell noch keine WEB-Konfiguration. Die Einrichtung dieser Datei wurde ebenfalls bereits in der Installations-Anleitung beschrieben.
Die Verbindung zu Squeeze wird ausführlich in einer separaten Dokumentation beschrieben.
Benutzer und Benutzergruppen
Über die WEB-Konfiguration für die Benutzer und Benutzergruppen können sowohl Benutzer als auch Zugriffsprofile über die WEB-Konfiguration erstellt und angepasst werden. Es gibt einen Ordner für die Benutzer und einen Ordner für die Benutzergruppen.
Die Konfigurations-Ordner für die Benutzer und Benutzergruppen wurden aus der Contract-Lösung adaptiert. Die Mappentypen "otrUser" und "otrAccessProfile" wurden hierfür übernommen - die hinterlegten Skripte wurden jedoch durch eigene Skripte ersetzt. Falls auf demselben System bereits ein Contract installiert ist oder installiert werden soll, müssen die Original-Mappentypen und die Original-Skripte und Ordner verwendet werden!
Bei einer aktiven LDAP-Anbindung sind diese Ordner überflüssig bzw. können nur für die nicht synchronisierten Objekte verwendet werden.
Über benutzerdefinierte Aktions-Buttons können zum einen neue Benutzer (oder Benutzergruppen) erstellt werden oder es werden die Benutzer-Daten aus Documents mit den Benutzer-Mappen synchronisiert. Bei den Benutzern ist darauf zu achten, dass die Angabe der Mail-Adresse ein Pflichtfeld am Mappentypen "otrUser" ist! Auch bei den technischen Benutzer muss eine gültige Mail-Adresse hinterlegt sein!
Benutzer
Über die Aktionsliste bei der Benutzer-Konfiguration können persönliche Ordner für alle Benutzer ausgeblendet werden oder mit Icons versehen werden. Für den Invoice-Standard werden zum Beispiel die Ordner "Gesendet", "Versendung beendet" und "In Arbeit" nicht benötigt und führen in der Anwender-Schulung zu unnötigen Fragen. Die Icons neben den persönlichen Ordnern können je nach Wunsch des Kunden gesetzt werden. Beim "Design20" haben die Icons zum Beispiel keine Auswirkung. Die zur Verfügung stehenden "entypo" Bilder befinden sich unterhalb der Documents-Installation im Ordner "doc". Die "entypo.zip" muss entpackt werden und im neuen Ordner "entypo" muss die "index.html" mit einem Browser geöffnet werden.
Über die Benutzer-Akten können die wichtigsten Benutzer-Einstellungen gesetzt werden. Beim Speichern werden die Daten zurück an den Benutzer übertragen. Über das Status-Icon am Benutzer ist schnell sichtbar welche Benutzer abwesend sind oder welche Benutzer gesperrt wurden
.
Bei abwesenden Benutzern wird in der Mappenansicht der Button "Benutzer anwesend setzen" eingeblendet. Über den Button wird die Abwesenheitseinstellung direkt wieder aufgehoben.
In der Aktions-Liste zum Benutzer befinden sich weitere benutzerdefinierte Aktionen. Über "Passwort ändern" kann zum Beispiel ein initiales Passwort gesetzt werden oder ein vergessenes Passwort kann auf ein Standard-Passwort zurückgesetzt werden. Die Abwesenheits-Einstellung umfasst auch den Zeitraum der Abwesenheit und die Abwesenheitsmitteilung. Über die Einstellung "E-Mails sammeln" können die Uhrzeiten ausgewählt werden, zu denen die Sammel-Mails versendet werden. Die Sammel-Mails betreffen die Documents-Standard-Mails bei einem neuen Posteingang und haben keinen Einfluss auf die Invoice-spezifischen Eskalations-Mails! Bei abwesenden Benutzern können die Mappen aus dem Posteingang delegiert werden.
Benutzergruppen
Bei den Benutzergruppen kann neben der Benutzer-Zuordnung lediglich die Übersetzung in den unterschiedlichen Sprachen angegeben sowie eine Beschreibung der Verwendung angegeben werden.
Im Folgenden werden die im Standard ausgelieferten Gruppen genauer erläutert. Die Benutzer der Gruppe "Invoice" erhalten Mappenrechte am Mappentypen "Invoice". Alle Benutzer die am Rechnungs-Workflow teilnehmen müssen der Gruppe "Invoice" zugeordnet werden! Spezifischere Zugriffsrechte werden durch ein GACL-Feld gesteuert.
Die Gruppe "TechAccessProfile" wird im Workflow an Stelle von einem Signaleingang verwendet, wenn Mappen länger auf weitere Verarbeitung warten. Die Gruppe sperrt die Mappe im Workflow. Bei den Signaleingängen findet die Überprüfung auf die Weiterleitung alle 5 Minuten statt. Bei der Umsetzung über die sperrende Mappe kann passend abgestimmtes Job-Skript zu definierten Zeitpunkten ausgeführt werden. Ein weiterer Vorteil ist, dass der Wartezustand einfacher unterbrochen werden kann und während ein Signaleingang nur einen ausgehenden Kontrollfluss hat kann die Weiterleitung bei einer sperrenden Gruppe über beliebige ausgehende Kontrollflüsse erfolgen. Der Gruppe dürfen nur rein technische Benutzer wie der hinterlegte Job-Benutzer oder der Import-Benutzer zugeordnet werden!
Bei Fehlern im Workflow-Verlauf wird die Gruppe "WorkflowError" angesprochen. Technisch wird in der Aktion das gleichnamige Feld angesprochen und die Vorbelegung für das Feld ist ebenfalls "WorkflowError". Über die User-Exit-Funktionen kann der Feldwert manipuliert werden, um zum Beispiel unterschiedliche Gruppen pro Mandant anzusteuern. Der Gruppe "WorkflowError" sollten Support-Benutzer mit technischem Hintergrundwissen zugewiesen werden. Die Gruppe wird zuständig, wenn Skript-Fehler aufgetreten sind. Die Benutzer dieser Gruppe sehen am Invoice-Mappentypen zusätzliche Feld-Register mit technischen Feldwerten. Benutzer dieser Gruppe sollten initiale GACL-Berechtigungen erhalten.
Etwas spezifischer verhält es sich bei der Gruppe "WorkflowRulesError". Diese Gruppe wird angesteuert, wenn Fehler bei der Workflow-Regel-Ermittlung aufgetreten sind. Auch hier erfolgt die Zuordnung über das gleichnamige Feld mit der Vorbelegung "WorkflowRulesError". Fehler bei der Workflow-Regel-Ermittlung treten in der Regel auf, wenn für eine Mappe keine passende Workflow-Regel gefunden werden konnte - also wenn eine spezifische Workflow-Regel für die aktuelle Mappe fehlt. Benutzer dieser Gruppe sollten Zugriff auf die Workflow-Regeln haben und die Gruppe sollte initiale GACL-Berechtigungen an allen Mappen erhalten. Benutzer dieser Gruppe sehen am Mappentypen Invoice das zusätzliche Feld-Register "Workflow" mit technischen Feldwerten.
Die Workflow-Regeln und weitere Konfigurationen befinden sich auf der Administrations-Outbar. Zugriff auf diese Outbar haben Benutzer der Gruppe "Administration". Projektspezifisch können Benutzer mit Administrations-Berechtigung auch einige spezielle benutzerdefinierte Aktionen wie den Workflow-Neustart oder die Übernahme sehen.
Die Gruppe "Validierung" kann in den Workflow-Regeln für die Validierung verwendet werden.
Die Geschäftsführung ("BusinessManagement") soll in der Regel initiale GACL-Zugriffsberechtigungen erhalten und kann bei den Workflow-Regeln für die finale Freigabe verwendet werden.
Übersetzungen
Übersetzungen können in Documents mit der Schreibweise "de:Deutscher Anzeigewert;en:English label" angegeben werden. Alternativ können sogenannte properties-Dateien verwendet werden. Bei der Verwendung der properties-Dateien wird lediglich ein Text im Format "pf:TechnischerWert" angegeben. Der Anzeigewert wird aus einer properties-Datei ermittelt. Für jede Sprache existiert eine Datei mit demselben Namens-Aufbau - wie zum Beispiel "DEXPRO_%lang%.properties", wobei das "%lang%" jeweils durch die gültigen Sprach-Abkürzungen ("de", "en") ersetzt wird.
Der Vorteil bei der Verwendung der properties besteht darin, dass neue Sprachen relativ einfach hinzugefügt werden können. Die bestehenden Anzeigewerte müssen nicht mühselig gesammelt werden, sondern befinden sich bereits gesammelt in einer Datei. Sobald Werte hinzukommen muss jedoch pro Sprache eine Datei angepasst werden. Wenn nicht extrem sorgfältig gearbeitet wird, dann entsteht schnell ein Schiefstand zwischen den Dateien. Zudem bleibt der große Nachteil bei projektspezifischen Anpassungen für den Kunden. Nach einem Update müssen die projektspezifischen Anpassungen mit sehr hohem Aufwand manuell wieder hergestellt werden.
Die WEB-Konfiguration für die Übersetzungen bietet eine Lösung für die genannten Problemstellungen. Die Übersetzungen werden nebeneinander angezeigt und müssen nicht aufwändig zusammen gesucht werden. Projektspezifische Anpassungen können durch einen Klick als solche markiert werden und werden bei einem Update nicht überschrieben.
Die Einträge aus den properties-Dateien werden hierzu in Datenbank-Tabellen geschrieben. Der technische Name steht in der Spalte "Name" und jede Übersetzung wird in einer separaten Spalte angezeigt. Durch eine gesetzte Checkbox "Projektspezifische Anpassung" werden die gesetzten Einträge beim Import nicht überschrieben. Hinzu kommen die Spalten "Applikation", "Typ" und "Unterkategorie".
Applikation
In der Spalte "Applikation" kann zwischen den einzelnen Software-Komponenten unterschieden werden. Der Großteil der properties-Dateien wird für die Documents-Oberflächen benötigt und werden durch den Eintrag "Documents" gekennzeichnet. Weitere properties-Dateien werden für die Konfigurations-Seiten selber verwendet. Die Konfigurationen wurden mit dem Framework Vue.js erstellt und die zugehörigen properties-Dateien wurden der Applikation "Vue" zugeordnet.
Typ
Für unterschiedliche Bereiche wurden zur Abgrenzung unterschiedliche properties-Dateien erstellt. Jedem properties-Aufbau wird ein Typ zugeordnet. In dem Unterordner "Properties" können die einzelnen Zuordnungen der properties-Dateien eingesehen werden. Jeder Typ muss einer Applikation zugeordnet sein und jeder Typ enthält einen technischen Namen als eindeutige ID.
Der Dateipfad kann entweder komplett als String oder durch vorgegebene Abkürzungen angegeben werden. Kombinationen sind nicht möglich! Folgende Abkürzungen sind definiert und verweisen auf folgende Pfade innerhalb der Documents-Installation:
%DocumentsLocale% ...\server\locale\
%DexproLocale% ...\DEXPRO\Locale\
%GentablePath% ...\DEXPRO\Gentable\
Vorhandene Einträge können über das Stift-Icon bearbeitet werden. Über die Mülltonne
können bestehende Einträge gelöscht werden. Durch einen Doppelklick auf einen Eintrag öffnet sich die Ansicht mit den bereits gefilterten properties-Einträgen. Über den Eintrag in der Kopfleiste kann wieder zurück in die ursprüngliche Ansicht gesprungen werden.
Die von Documents ausgelieferten properties-Dateien eignen sich nicht für die Verwendung mit dieser WEB-Konfiguration. Das liegt zum einen daran, dass in den Dateien immer wieder Sonderfälle wie Zeilenumbrüche und ähnliche Sonderfälle zu berücksichtigen sind und zum anderen liegt es daran, dass die hier verwendete Logik Unterkategorien unterstützt.
Unterkategorie
Die properties-Einträge können in Unterkategorien gruppiert werden, was bei der Suche nach spezifischen Einträgen eine enorme Hilfe darstellt. Die Unterkategorien werden beim Export in die properties-Dateien als Kommentar geschrieben.
Aus den properties-Dateien in die Datenbank schreiben 
Bei der Installation oder bei einem Produkt-Update werden gegebenenfalls aktualisierte properties-Dateien ausgeliefert. Um eine properties-Datei aus dem Dateipfad in die Datenbank einzulesen kann der Button mit der Wolke und dem Pfeil nach unten verwendet werden. Beim Einlesen wird nach Dateien mit passendem Dateiaufbau gesucht. Befindet man sich im Sub-Ordner "Properties" in einer spezifischen Ansicht, dann werden auch nur die passenden properties-Dateien ausgelesen. Wenn man sich in der globalen Ansicht befindet werden in jedem Fall alle properties ausgelesen (auch wenn Such-Filter gesetzt wurden!).
Die Verarbeitung prüft zunächst für jeden technischen Wert, ob bereits ein Eintrag besteht. Wenn noch kein Eintrag besteht wird ein Insert ausgeführt. Wenn bereits ein Eintrag besteht wird geprüft, ob der Haken "Projektspezifische Anpassung" gesetzt wurde. Wenn der Haken gesetzt wurde wird nur ein Update ausgeführt, wenn der Wert in der Datenbank leer oder NULL ist. Somit werden die projektspezifischen Anpassungen in der Datenbank nicht überschrieben und alle Datenbank-Einträge die nicht in den properties-Dateien vorkommen bleiben ebenfalls bestehen. Nach einem Export aus der Datenbank heraus enthalten die neu erstellten properties-Dateien alle neuen Einträge samt aller projektspezifischer Anpassungen!
Nach der Verarbeitung wird ein eine Rückmeldung in Form eines HTML-Pop-Ups ausgegeben.
Aus der Datenbank in die properties-Dateien schreiben 
Anpassungen sollten immer über die WEB-Oberfläche vorgenommen werden und Anpassungen sollten immer mit der Checkbox "Projektspezifische Anpassung" versehen werden, damit die Änderungen nicht überschrieben werden. Beim Schreiben der properties-Dateien wird die bestehende Datei mit einem Zeitstempel versehen und in einen Backup-Ordner im selben Pfad verschoben. Die Werte werden nach der Unterkategorie und nach technischem Namen sortiert in die properties geschrieben. Die Unterkategorien werden als Kommentare festgehalten.
Damit nicht immer alle properties-Dateien neu erstellt werden bietet es sich an die Anpassung über den Unter-Ordner "Properties" in der spezifischen Ansicht vorzunehmen, denn hier werden beim Export nur die zum spezifisch ausgewählten propertie neu geschrieben.
Am Ende der Verarbeitung wird ein "context.reloadCurrentPrincipal(true)" ausgeführt, um die properties direkt zu laden. Zudem wird eine Rückmeldung in Form eines HTML-Pop-Ups ausgegeben. Je nachdem wo der angepasst Wert angezeigt wird wirkt sich die Anpassung entweder direkt oder erst nach einer Neu-Anmeldung oder erst nach einem Neustart von Documents samt Tomcat aus.
PropCache
In Documents können häufig verwendete Daten in einen Cache geladen werden. Hierdurch wird die Performance deutlich gesteigert. Der Ordner listet lediglich 2 Buttons zur Anzeige und zum Löschen eines bestehenden PropCache. Die propCache-Werte werden automatisch erstellt, sobald ein Skript zum ersten Mal auf den Cache zugreift. Die jeweiligen Cache werden automatisch gelöscht, sobald über die Konfigurationen Anpassungen vorgenommen werden.
Property Cache löschen
Property Cache anzeigen
Die Anzeige des propCache-Wertes kann für den Support hilfreich sein, um ein bestimmtes Verhalten besser nachvollziehen zu können. In der Regel werden die propCache-Werte als JSON-String gespeichert. Dieser wird in einem HTML-Pop-Up angezeigt.
Tabellen Exportieren / Importieren
Die Tabellen der Konfigurations-Datenbank "DEX_Workflow" können über eine Konfiguration Exportiert und wieder importiert werden. Nicht alle Tabellen eignen sich jedoch für diesen Übertragungs-Weg, da beim Import neue Spalten-ID erzeugt werden.
Export
Über den Unterordner Export können einzelne oder alle Tabellen exportiert werden. Die WEB-Konfiguration zeigt alle Tabellen der Datenbank "DEX_Workflow" an. Die Export-Dateien werden im Documents-Verzeichnis unter "DEXPRO\JsonExport\" im JSON-Format abgelegt. Eine Export-Datei enthält den Aufbau der Tabelle sowie die Daten.
Import
Bei der Invoice-Installation müssen bereits einige der JSON-Dateien importiert werden. Die Dateien müssen sich im Ordner "DEXPRO\JsonImport\" befinden. In der WEB-Konfigurations-Oberfläche werden nur die vorhandenen JSON-Dateien angezeigt. Beim Import werden alle Daten gelöscht und neu geschrieben und dabei ändern sich die Auto-Inkrement-Werte! Falls Abhängigkeiten über diese ID gebildet werden (z. B. bei Sub-Workflow-Regeln), dann eignet sich dieser Import nicht für die Übertragung der Tabelle!