Sub-Outbar "Allgemein"

In diesem Kapitel werden die Konfigurations-Ordner der Outbar "Allgemein" beschrieben.

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.

image-1586863979396.png

 

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.

image-1586865316868.png

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!

image-1586865450256.png       image-1586868568797.png

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.

image-1586867063178.png

Ü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 image-1586868728075.png oder welche Benutzer gesperrt wurdenimage-1586868776908.png.

image-1586866022473.png

Bei abwesenden Benutzern wird in der Mappenansicht der Button "Benutzer anwesend setzen" eingeblendet. Über den Button wird die Abwesenheitseinstellung direkt wieder aufgehoben.

image-1586868927818.png

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.

image-1586866760366.png

Benutzergruppen

Bei den Benutzergruppen kann neben der Benutzer-Zuordnung lediglich die Übersetzung in den unterschiedlichen Sprachen angegeben sowie eine Beschreibung der Verwendung angegeben werden.

image-1586870984917.png

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

image-1586937389414.png

 

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.

image-1586940184538.png

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 image-1586957581692.png bearbeitet werden. Über die Mülltonne image-1586957610052.png 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.

image-1586947175500.png

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.

image-1586957464441.png

 

Aus den properties-Dateien in die Datenbank schreiben image-1586957930114.png

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 image-1586957866476.png

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.

image-1587043216773.png

 

Property Cache löschen

Über den Button kann ein spezifischer oder bei Bedarf können auch alle Cache-Werte auf einmal gelöscht werden. Das sollte in der Regel nicht notwendig sein, denn sobald über die Konfigurationen Werte angepasst werden, welche sich auf einen Cache auswirken, wird dieser Cache automatisch geleert. Das manuelle Zurücksetzen eines Cache kann notwendig sein, wenn Anpassungen direkt über die Datenbank vorgenommen werden oder wenn der Cache nicht über eine Konfiguration automatisch zurückgesetzt werden kann, wie zum Beispiel bei den Datenbankverbindungen. Der Cache wird automatisch neu erstellt, sobald ein Skript auf den Cache zugreift.

 

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.

image-1587044923334.png

 

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!  

image-1587045218723.png