Invoice Installation
- Einleitung
- Anpassung Documents-Installations-Pfad
- Anlage Datenbanken (MS SQL / MySQL)
- XML-Importe
- Einrichtung WEB-Konfiguration
- Einleitung WEB-Konfiguration
- Einrichtung Table-Service
- Einrichtung Datenbankverbindung für Documents-Skripte
- Tabellen-Konfigurationen importieren
- Übersetzungen
- Benutzer / Benutzergruppen
- Anlage der kundenspezifischen Mandanten
- Import Kopf-Felder und Anpassung SQL-Insert
- Lizenz
- Optionale Erweiterungen
Einleitung
Umfang
Diese Dokumentation beschreibt die Installation des Invoice-Workflow-Pakets. Die Dokumentation umfasst lediglich die Documents5-Komponenten. Die Installation ist unabhängig von der Scan und Extraktions-Strecke und Sie beinhaltet auch keine Archivanbindung!
Das Installations-Paket wird als Zip-Datei zur Verfügung gestellt. Die Installation darf nur durch geschultes Personal durchgeführt werden!
Voraussetzung
Für die Installation des Invoice-Paktes muss Documents5 vorinstalliert sein! Es sollte immer die neueste für die Installation freigegebene Version verwendet werden. Bei einer bestehenden Installation muss zunächst ein Update auf diese Version erfolgen. In der "INVOICE_CHANGELOG.md" wird zur jeder Invoice-Version die Documents-Versionsnummer angegeben, welche zum Zeitpunkt der Entwicklung verwendet wurde. Bei einer Installation oder einem Update sollte die dort angegebene Versionsnummer als Mindestanforderung gesehen werden. Vor dem Invoice-Update muss zuerst Documents aktualisiert werden!
Falls es keine Vorgaben für die Installations-Pfade gibt wird eine Installation auf eine separate Applikations-Partition empfohlen und das Repository sollte ebenfalls auf eine separate Daten-Partition abgelegt werden. Die Installationen sollten sich möglichst gleichen. Für den Support sollte immer auch die Documents5 Remote Console importiert werden!
Beispiel:
- D:\Application\Documents5\
- D:\Application\Documents5_RemoteConsole\
- E:\Data\Documents5\Repository\
- E:\Data\Documents5\Archive\
Wenn für die Installation ein separater SQL-Server installiert wird, dann sollte dieser auf demselben Betriebssystem installiert werden.
Anpassung Documents-Installations-Pfad
Sowohl Documents5 als auch Documents6
Dateien kopieren
Zur Sicherheit sollte die bestehende Installation vorab gesichert werden. Der bereitgestellte Documents-Ordner aus der Installation-ZIP-Datei muss über den Documents-Installations-Pfad kopiert werden. Bei einer neuen Installation werden nur Dateien hinzugefügt. Die Update-Varianten enthalten nur die geänderten Dateien.
Anpassung documents.ini
Die documents.ini befindet sich im Sever-Verzeichnis der Documents5-Installation. Die Anpassungen mit Beschreibungen werden mit der documents_help.ini ausgeliefert. Folgende Einträge müssen aktiviert werden:
JSMaxMemory 1638400
JSMaxBranch 0
MaxLogFile 100000000
Der PDF-Druck von Handlebars-Documenten-Vorlagen wird größtenteils im Procurement-Modul benötigt. Für bessere Druck-Ergebnisse sollte auf die Chromium-Bibliotheken umgestellt werden. Die Standard-Einstellung muss deaktiviert oder überschrieben werden. Die Einstellung ist nur relevant, wenn der PDF-Druck verwendet wird.
# Usage of Chromium for html to pdf
$convert.html "[INSTALLDIR]\..\createpdf\convert\html_chrome\html2pdf.bat" %input %output
Das Passwort für den DB-Benutzer sollte verschlüsselt werden! Hierfür muss das Passwort wie folgt angegeben werden.
DBPassword {crypt:Password}
Die Anpassungen bzw. die Verschlüsselung des Passworts wirken sich erst durch einen Neustart aus.
Anpassung documents.xml
Die documents.xml befindet sich in der Documents-Installation und einem Tomcat9 unter:
...\Documents\tomcat9\conf\Catalina\localhost\documents.xml.
Abweichunde Ordner-Pfade in der Datei müssen manuell angepasst werden.
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resources>
<PreResources base="D:/Documents6/DEXPRO/ScriptExits" webAppMount="/ext/jsp/" className="org.apache.catalina.webresources.DirResourceSet" />
<PreResources base="D:/Documents6/DEXPRO_ClientExits" webAppMount="/ext/jsp/DexClientExits" className="org.apache.catalina.webresources.DirResourceSet" />
<PreResources base="D:/Documents6/DEXPRO/WEB-INF" webAppMount="/WEB-INF/" className="org.apache.catalina.webresources.DirResourceSet" />
<PreResources base="D:/Documents6/DEXPRO/Gentable" webAppMount="/WEB-INF/classes/" className="org.apache.catalina.webresources.DirResourceSet" />
<PreResources base="D:/Documents6/DEXPRO/Skin" webAppMount="/" className="org.apache.catalina.webresources.DirResourceSet" />
<PreResources base="D:/Documents6/DEXPRO/Vue/www" webAppMount="/ext/dex" className="org.apache.catalina.webresources.DirResourceSet" />
<PreResources base="D:/Documents6/DEXPRO/SQUEEZE/www" webAppMount="/ext/dex" className="org.apache.catalina.webresources.DirResourceSet" />
</Resources>
</Context>
Sollte die Datei bereits existieren, müssen die Einträge hinzugefügt werden.
Wenn bereits Einträge bestehen, dann müssen die Skript-Importe zusammengefasst werden.
Bei einem Update älterer Invoice-Versionen ist darauf zu achten, dass der SQUEEZE-Ordner in den DEXPRO-Ordner umgezogen wurde und der Vue-Ordner hinzugekommen ist.
Anlage Datenbanken (MS SQL / MySQL)
ORACLE wird nicht offiziell unterstützt!
Datenbank-Import
Das Invoice-Paket wird mit 2 separaten Datenbanken DEX_Workflow und DEX_MasterData ausgeliefert. Das Invoice-Paket wird auf einer Maria-DB (MySQL) entwickelt und wird mit einer MS-SQL Datenbank getestet. Die Anbindung an ORACLE ist nicht getestet!
Die Erstellung der Datenbanken ist im ausgelieferten SQL-Skript enthalten. In dem Skript ist ein fixer Datei-Pfad für Datenbankdateien enthalten. Die beiden Datenbanken sollten manuell vorab erstellt werden und die Datenbank-Erstellung im SQL-Skript müssen in dem Fall auskommentiert werden. Alternativ kann der Datei-Pfad manuell angepasst werden. Auf jeden Fall sollten die Angaben für die Daten- und Log-Erweiterungen angepasst werden!
Für den Import der Tabellen stehen SQL-Skripte zur Verfügung (MS SQL und MySQL bzw. Maria DB). Die Tabellen werden ohne Daten ausgeliefert! Die Konfigurations-Daten werden zu einem späteren Zeitpunkt separat über die WEB-Konfiguration importiert. Die SQL-Befehle befinden sich unter "Documents5\DEXPRO\DbTableConfig\" in den Unterordnern "MSSQL" bzw. "MYSQL".
Der Stammdaten-Import muss projektspezifisch erfolgen! Die Datenbanken müssen regelmäßig gesichert werden!
Die Datenbanknamen können abgeändert werden. Wenn die produktiven Datenbanken und die Testdatenbanken auf demselben SQL-Server installiert werden, sollten zwingend alle Namen abgeändert werden! Sollte an irgendeiner Stelle nicht die korrekte Datenbank angesprochen werden wird hierdurch verhindert, dass in eine andere bestehende Datenbank geschrieben wird. Um ganz sicher zu gehen können unterschiedliche Datenbank-Benutzer mit entsprechender Berechtigung verwendet werden.
MS SQL
In jedem Fall sollten die Anfangsgröße, die Vergrößerung und der Speicher-Pfad angepasst bzw. kontrolliert werden. Hier die empfohlenen Werte:
- Daten: 500 MB Anfangsgröße / 500MB Erweiterung / Maximale Größe unbegrenzt
- Log: 100MB Anfangsgröße / 100MB Erweiterung / Maximale Größe auf 2GB beschränken.
My SQL
Bei der Installation mit MySQL ist darauf zu achten, dass die Tabellen für die Positions-Daten bereits in der Auslieferung alle Standard-Felder als Spalten enthalten. Vor der Erstellung der DB muss die "page size" hochgestellt werden, damit es beim Import nicht zu Fehlern kommt. Der folgenden Einträge müssen zur "my.ini" im Abschnitt "[mysql]" hinzugefügt werden, welche sich im "Data"-Verzeichnis der MariaDB installation befindet.
# Die Tabellen der "dex_workflow" haben zum Teil viele Spalten.
# Die Datenbank kann ohne diese Anpassung nicht importiert werden!
innodb_page_size=32K
# Die Buffer-Poolsize sollte 2/3 vom RAM sein
innodb_buffer_pool_size=2G
# Die Logs sollte auf 1/4 vom Wert innodb_buffer_pool_size gesetzt werden!
innodb_log_file_size=512M
innodb_log_buffer_size=512M
# Schreibt 2 Transaktions-Logs (wirkt sich sehr positiv auf die Performance aus!)
innodb_flush_log_at_trx_commit=2
Die "page size" sollte vor der Anlage der ersten Datenbank erhöht werden! Andernfalls siehe folgende Anleitung.
DOCUMENTS 5 verwendet UTF-8 als Datenbank-Encoding. Bitte installieren Sie den MySQL Server mit der Option "Use UTF8 as default server's character set"!
My SQL: PageSize nachträglich ändern
Sollten bereits Datenbanken mit einer anderen PageSize existieren, dann führt der Eintrag "innodb_page_size" zu Fehlern. In dem Fall müssen die bestehenden Datenbanken exportiert und später wieder importiert werden! Der Export der Datenbanken muss mit Daten und der Einstellung "Max INSERT Länge" mit dem Wert "32.000" erfolgen!
Die Datenbank muss im Anschluss heruntergefahren werden und die Datenbank-Ordner unter "...\MariaDB\data\..." können gesichert oder gelöscht werden. Zudem müssen die Dateien
- ib_buffer_pool
- ib_logfile0
- ib_logfile1
- ...
- ibdata
aus dem "data" Verzeichnis gelöscht werden.
Erst jetzt darf der "PageSize"-Eintrag zur "my.ini" hinzugefügt werden. MariaDB kann wieder gestartet werden und die Datenbanken können wieder importiert werden.
XML-Importe
Im Installations-Paket werden XML-Dateien zur Verfügung gestellt. Diese Dateien müssen zwingend in der korrekten Reihenfolge über den Documents-Manager importiert werden.
XML-Importe und Anpassungen über den Manager
Es muss zwingend darauf geachtet werden, dass die vorgegebene Import-Reihenfolge eingehalten wird!
Die XML-Datei für die Documents-Einstellungen sollte nur bei Neuinstallationen verwendet werden! Falls das Invoice-Paket in eine bestehende Installation integriert werden soll müssen die Einträge manuell hinzugefügt werden! Relevant sind die folgenden Einträge:
- SubOutbars (Wert: 1)
- groupingNumeric (Wert: 1) // Setzt den tausender-Punkt bei Zahlen
- additionalSettingsScript (Wert: DEXPRO_GadgetStart_AdditionalSettings) // Fügt zusätzliche Funktionen hinzu
- CheckAccessRightForAgent (Wert 0) // Deaktiviert die GACL-Prüfung der Vertreter (ab Documents 5g) - die Berechtigung wird ggf. erst nach der Weiterleitung hinzugefügt bzw. kann der Anwender über "GACL-Berechtigungen prüfen" fehlende Berechtigungen automatisch korrigieren.
Die folgenden globalen Documents-Einstellungen werden empfohlen. Es muss aber pro Eigenschaft projektspezifisch geprüft werden, ob es evtl. Auswirkungen auf andere Umsetzungen beim Kunden gibt und ggf. muss abgestimmt werden, ob bestimmte Funktionen wie die Chat-Funktion beim Kunden überhaupt gewünscht sind!
- ActiveOutbar (Wert: Invoice) // Hierdurch öffnet sich bei der Anmeldung direkt die Outbar "Invoice"
- addToFavoritesButton (Wert: true) // Hierdurch können Mappen einfach zu den Favoriten hinzugefügt werden
- allowMessage (Wert: true) // Angemeldete Benutzer können sich über die WEB-Seite Nachrichten schicken
- allowNotification (Wert: true) // Aktiviert das Benachrichtigungssystem über Websockets
- allowMessageSendAll (Wert: true) // Über "@ALL" können Nachrichten an alle angemeldeten Benutzer gesendet werden
- allowResetPasswort (Wert: true) // Link in der Anmeldemaske, um Passwort über Mail zurücksetzen zu können
- alwaysShowTask (Wert: true) // Die aktuelle Workflow-Aufgabe wird immer angezeigt
- autoLogout (Wert: true) // Benutzer werden beim Schließen des Browserfensters aus Documents ausgeloggt
- baseFeatureConfigs (Wert: design20) // Aktiviert das Feature-Set "design20"
- CancelWorkflowAccess (Wert: true) // "Versendung abbrechen" wird nicht mehr in der Klappliste angezeigt
- CheckMandatoryOnSave (Wert: 2) // Prüft auch nicht angezeigte Muss-Felder unabhängig von Skripten
- datepickerPopupMode (Wert: focus) // Beim Fokus auf ein Datumsfeld öffnet sich der Pop-Up Dialog
- documentsLoginHeader // Projektspezifische Anzeige für die Login-Seite
- fileEditCommitOnEnter (Wert: true) // Speichert die Mappe über die Enter-Taste
- fileEditStartOnDoubleClick (Wert: true) // Setzt die Mappe bei einem Doppelklick in ein Feld in den Bearbeitungszustand
- fileReferenceClearButton (Wert: true) // Aktiviert den "Eintrag löschen" Button neben den Referenzfeldern
- HighlightHitwords (Wert: true) // Volltextsuchtreffer werden in der Detailansicht farblich hervorgehoben
- skinBase // Angabe eines Stylesheets (.less) für das Aussehen des Webclients
- SoapStartWorkflowAlways (Wert: 1) // Bei über SOAP angelegten Mappen wird der Workflow automatisch gestartet
- useSubselectMenu (Wert: true) // Ermöglicht die Verwendung von mehrstufigen Auswahllisten in Aktions-Klapplisten
Am Documents-Mandanten können die folgenden Eigenschaft gesetzt werden:
- EmailAsync (Wert: 1) // Hierdurch werden die asynchron versendet, Ohne die Einstellung bleibt die Mappe nach einer Weiterleitung so lange im Fokus, bis die Versendung erfolgt ist!
Der Nachteil ist, dass der Anwender bei einer Mailversendung kein direktes Feedback erhält, wenn eine Mailversendung fehl schlägt. - afterLoginScript (Wert: DEXPRO__UserExit_AfterLogin) Setzt die Benutzer-Eigenschaft für das letzte Login an ein neues Feld otrLastLogin an der otrUser-Mappe des Benutzers. Hierdurch können Administratoren selten benutzte named-Lizenzen identifizieren und sinnvoll zuordnen bzw. nicht verwendete Benutzer-Accounts sperren.
Es muss zwingend ein Job-Benutzer gesetzt sein und dieser muss zwingend alle Berechtigungen an allen Rechnungs-Akten erhalten! Es wird empfohlen das Löschen zu deaktivieren, damit ausschließlich über die Aussteuerungs-Funktion gelöscht werden kann.
Die nächste XML-Datei importiert Gruppen und Benutzer. Nach dem Import müssen die folgenden Gruppen existieren. Die Gruppen können auch manuell erstellt werden:
- Administration (Administration)
- WorkflowError (Workflow Fehler) -> nicht in Documents-Listen anzeigen!
- WorkflowRulesError (Workflow Fehlerbehebung) -> nicht in Documents-Listen anzeigen!
- TechAccessProfile (Technisches Zugriffsprofil) -> nicht in Documents-Listen anzeigen!
Für den Workflow werden kundenspezifisch weitere Gruppen benötigt.
Der hinterlegte Job-Benutzer muss entweder als Benutzer oder Redakteur existieren. Der Benutzer muss den Gruppen WorkflowError und TechAccessProfile zugeordnet werden!
Zudem muss es einen Benutzer für den Import der Rechnungs-Dokumente geben. In jedem Fall sollten weitere Benutzer für erste Tests angelegt werden und diese müssen Gruppen zugeordnet werden.
Die weiteren XML-Importe müssen zwingend in der vorgegebenen Reihenfolge durchgeführt werden, damit Verknüpfungen automatisch gesetzt werden können!
- Skripte / Skript-Kategorien
- Workflow
- Mappentypen / Mappentyp-Kategorien
- Ordner / Outbar
Die Administrations-Outbar enthält alle Konfigurations-Outbars für alle DEXPRO-Lösungen. Die nicht verwendeten Outbars können manuell ausgeblendet werden, indem die "Freigegeben"-Checkbox deaktiviert wird. Die Outbars selber enthalten ggf. nicht benötigte Konfigurations-Ordner bzw. ausgeblendete aber zwingend benötigte Konfigurations-Ordner. Die Ordner müssen projektspezifisch angepasst werden.
Die Anzeige-Reihenfolge der Outbars kann in den Documents-Einstellungen vorgenommen werden.
Es kann passieren, dass die Verknüpfung des Workflows am Invoice-Mappentypen nicht automatisch gesetzt werden konnte. In dem Fall muss die Verknüpfung manuell gesetzt werden. Der Workflow muss unter "Zulässige Workflows" hinzugefügt werden und die aktuelle Workflow-Version muss unter "Workflow" als "Standard-Workflow" gesetzt werden. Die Checkbox "Workflow bei der Neuanlage sofort starten" kann optional gesetzt werden. Wenn die Belege über Squeeze über die SOAP-Schnittstelle angelegt werden, dann dauert der Anlage-Vorgang so lange, bis der gestartete Workflow die erste Aktion erreicht. Um die Anlage-Zeit zu verkürzen und somit auch die Fehleranfälligkeit in der Schnittstelle zu minimieren, können die Vorgänge auch zeitversetzt üder den Job "Invoice_JOB_StartWorkflow" gestartet werden.
Zusammenfassung
- XML-Import der Eigenschaften oder manuelle Anlage
- XML-Import der Benutzer und Gruppen oder manuelle Anlage
- XML-Import Skripte
- XML-Import Workflow
- XML-Import Mappentyp (zwingend die Import-Reihenfolge einhalten!)
- XML-Import Ordner+Outbars (zwingend die Import-Reihenfolge einhalten!)
- Outbar-Reihenfolge anpassen und nicht benötigte Admin-Outbars ausblenden
Neustart der Documents-Dienste und Test
Nach dem Abschluss der Documents-Installationen müssen die Documents-Dienste neu gestartet werden. Erst durch den Neustart greifen einige der neue gesetzten Documents-Einstellungen wie die Sub-Outbars oder das "Design20".
Es wird empfohlen sich einmal an der Documents-Oberfläche mit einem Benutzer anzumelden, um die Anpassungen zu kontrollieren. Die Reihenfolge der Outbars kann zum Beispiel über die Konfiguration Documents-Einstellungen auf dem Reiter "Outbars" angepasst werden.
Einrichtung WEB-Konfiguration
Einleitung WEB-Konfiguration
Der abschließende Teil der initialen Invoice-Einrichtung erfolgt über die WEB-Konfigurationen. Hierzu muss man sich mit einem Benutzer aus der Gruppe "Administration" an der Documents WEB-Seite anmelden. Nur Mitglieder der Gruppe "Administration" haben initial Zugriff zu den Aministrations-Outbars. Projektspezifisch können die Berechtigungen feiner justiert werden, indem über den Documents-Manager zusätzliche Berechtigungen pro Ordner definiert werden. Dies kann zum Beispiel notwendig sein, wenn ein Anwender lediglich Workflow-Regeln ändern können soll.
Die einzelnen Konfigurationen verteilen sich auf mehrere Sub-Outbars. auf der Sub-Outbar "Allgemein" befinden sich sehr allgemeine Konfigurations-Elemente wie die Konfiguration für die Benutzer und Gruppen, Datenbank-Verbindungen und Übersetzungen. Die Sub-Outbar "Invoice" enthält spezifische Konfigurationen für die gleichnamige Documents-Lösung wie die Workflow-Regeln und Feldkonfigurationen. Die Sub-Outbar "Squeeze" enthält Konfigurations-Ordner für die Squeeze-Anbindung und -Konfiguration. Hierfür existiert eine separate Anleitung.
Die WEB-Konfigurationen wurden als Gadget-Aufruf auf öffentlichen Ordnern umgesetzt. Die Darstellung erfolgt über das Framework "Vue.js" und die Daten werden in der Regel in Datenbank-Tabellen gespeichert.
Der Zugriff auf die Datenbank-Daten erfolgt über den Table-Service.
Einrichtung Table-Service
Die WEB-Konfigurationen von Invoice greifen über den Table-Service auf Daten aus den Datenbanktabellen zu. Hierzu muss die Verbindung zur Datenbank eingerichtet werden. Der Ordner "TableService" befindet sich im DEXPRO-Ordner der Documents-Installation.
Die Datenbank-Verbindung kann über den Ordner "Verbindung" -> "Table Service" auf der Administrations-Outbar "Allgemein" konfiguriert werden. Die TableService-URL verweist auf das lokale System. Der Port kann in der Regel unverändert bleiben und der Api-Key kann über den Button "API-KEY ERZEUGEN" automatisch generiert werden. Der API key vom Table Service befindet sich im Ordner "...\DEXPRO\TableService\config\" in der Datei "local.json". Sollte der Table Service an anderer Stelle installiert sein (zum Beispiel bei Docker-Systemen), dann muss sich die Datei "local.json" trotzdem an dieser Stelle befinden und in der Datei muss der API key von der Table Service konfiguration eingetragen werden.
Pro Datenbank kann ein alternativer Zugriff definiert werden. In der Standard-Auslieferung muss der Zugriff für die Datenbanken "DEX_MasterData", "DEX_Workflow" sowie für die "Documents"-Datenbank konfiguriert werden. Da alle 3 Datenbanken in der Regel auf demselben SQL-Server liegen und die Zugriffe in der Regel über denselben Benutzer erfolgen, kann die Checkbox "Verbindungsdaten für alle Verbindungen verwenden?" gesetzt werden. Hierdurch muss der Zugriff nur einmalig konfiguriert werden. Der Anwender muss unter "Host" den SQL-Server-Namen inklusive Instanz angeben. Der SQL-Benutzer sollte volle Berechtigungen auf den Datenbanken haben.
Die WEB-Konfiguration passt die folgenden Dateien an, welche alternativ auch manuell angepasst werden können:
- ...\Documents5\DEXPRO\TableService\data\database-connections.js
- ...\Documents5\DEXPRO\TableService\data\database-users.js
- ...\Documents5\DEXPRO\TableService\config\local.json
- ...\Documents5\SQUEEZE\www\vue\conf\ServerConfig.js (Eintrag: "dexServer")
Über den Button "SERVICE INSTALLIEREN" wird das angegebene Passwort automatisch verschlüsselt und der Table-Service wird als Dienst installiert und gestartet. Sollte die Installation fehlschlagen sollte die "service-install.bat" aus dem Ordner "TableService" manuell mit Administrations-Rechten ausgeführt werden.
Nach der Table-Service-Installation muss der Browser-Cache geleert werden! Andernfalls werden auf den Konfigurations-Seiten keine Daten geladen!
Alternativ kann der Browser-Cache vorübergehend deaktiviert werden. Hierfür kann man über die "F12"-Taste auf dem Register "Netzwerk" die Checkbox "Cache deaktivieren" drücken.
Bei einem MS SQL Express Server (bitte nur auf Testservern verwenden) muss die Einstellung "Named Pipes" über den SQL Server-Konfigurations-Manager aktiviert werden und der Dienst "SQL Server-Browser" muss gestartet werden.
Sobald der Table-Service korrekt konfiguriert wurde, können auch die WEB-Konfigurationen aufgerufen werden, welche auf Daten aus den Datenbanken zugreifen. Auch die Stammdaten Pop-Up Auswahlfenster verwenden den Table-Service.
Projektspezifische Konfigurationen sollten immer nur unter "...\DEXPRO\DocumentsOS\DEXPRO\TableService\data\table-definitions\Custom\" abgelegt werden. Standard-Konfigurationen sollten durch projektspezifische Konfigurationen im Custom-Ordner ersetzt werden. Die Konfigurations-Bezeichnungen ("nameApi") dürfen immer nur einmalig vergeben werden. Andernfalls lässt sich der TableService nicht mehr starten. Projektspezifische Konfigurationen sollten immer die Bezeichnung "Custom" enthalten, um Dopplungen auch bei Updates auszuschließen. Spezielle WEB-Konfigurationen befinden sich im Ordner "...\DEXPRO\Vue\www\vue\include\". Der Ordnername entspricht dem "nameApi".
Einrichtung Datenbankverbindung für Documents-Skripte
Neben den WEB-Konfigurationen müssen auch die Documents-Skripte eine Datenbank-Verbindung herstellen können. Die Klasse "DBConnection()" enthält 4 Parameter.
In der Documents-Installation im DEXPRO-Ordner befindet sich die Datei "dbConn.json". Die Datei beinhalte Informationen zu den Datenbankverbindungen zu den 3 Datenbanken "DEX_Workflow", "DEX_MasterData" und der "Documents"-Datenbank. Die Angaben können entweder direkt über die Datei oder über den WEB-Konfigurations-Ordner "Datenbank-Verbindung" hinterlegt werden. Der Konfigurations-Ordner befindet sich auf der Administrations-Outbar "Allgmein" unter "Verbindung".
In der Regel liegen alle 3 Datenbanken auf demselben SQL-Server und der Zugriff soll über denselben Benutzer erfolgen. Über die Checkbox "Verbindungsdaten für alle Verbindungen verwenden?" muss die Verbindung nur beim ersten Eintrag gesetzt werden und die Angaben werden automatisch übertragen.
Für die Datenbankverbindung muss zunächst der SQL-Typ ("sqltype") definiert werden. Bei den Standard-Verbindungen werden nur die Angaben "MySQL" und "Microsoft-SQL" unterstützt. Bei projektspezifischen Verbindungen kann auch "ORACLE" angegeben werden. Die Angabe bezieht sich auf den "sqltype"-Eintrag in der "dbConn.json". Die Angaben hier sind "mysql", "mssql" bzw. "oracle".
Als Verbindungstyp steht bei Microsoft-SQL nur die Option via "ODBC" zur Verfügung und unter "SQL-Connection String" muss entsprechend der ODBC-Verbindungsname angegeben werden. Die entsprechenden Angaben in der "dbConn.json" sind "d5conntype" und "d5connstr".
Die ODBC muss als System-DSN (64-Bit) angelegt werden!
Bei "MySQL" kann hingegen eine direkte Verbindung zur Datenbank hergestellt werden (Beispiel: "dex_workflow@localhost").
Pro Verbindung kann genau ein Datenbankname angegeben werden. Bei einigen Kundeninstallationen liegen die Test- und Produktiv-Datenbanken auf demselben SQL-Server und die Test-Datenbank-Namen werden lediglich um ein "_Test" ergänzt. Bei Microsoft-SQL wird die Verbindung zusätzlich auf eine "dbo"-Angabe eingeschränkt.
Um Datums-Werte korrekt in die Datenbank schreiben zu können muss das korrekte Datums-Format bekannt sein. Je nach Konfiguration muss entweder zuerst der Monat oder zuerst der Tag angegeben werden.
Zuletzt muss ein Benutzer für die Datenbankverbindung angegeben werden. Dieser SQL-Benutzer muss mindestens Schreibrechte auf die 3 Datenbanken haben. Bei SQL-Benutzern muss das Passwort angegeben werden. Dieses Passwort wird beim ersten Portal-Skript-Aufruf automatisch verschlüsselt. Alternativ kann auch ein Windows-Benutzer verwendet werden. In dem Fall muss das Passwort leer bleiben.
Die Verbindung sollte zum Abschluss über den Button "VERBINDUNG PRÜFEN" getestet werden.
Bei Microsoft-SQL-Benutzern darf die Checkbox "Kennwortrichtlinie erzwingen" nicht gesetzt werden!
Bei manuellen Anpassungen über die dbConn.json muss der propCache "DbConnections" über den Ordner "Documents Property Cache" auf der allgemeinen Administrations-Outbar gelöscht werden.
Projektspezifisch können eigene Einträge zur dbConn.json hinzugefügt werden.
Tabellen-Konfigurationen importieren
Über den Ordner „Tabellendaten exportieren“ können Daten aus einer Datenbank-Tabelle exportiert und wieder importiert werden. Die Exporte werden im Ordner „…\Documents5\DEXPRO\JsonExport\“ als JSON-Dateien abgelegt. Der Dateiname entspricht dem Tabellen-Namen plus Zeitstempel.
Alle JSON-Dateien aus dem Ordner „JsonImport“ können bei einer Neu-Installation über den Button "Alle Importieren" in einem Zug importiert werden! Bei einem Update wird in der Regel nur die "parameter_config" JSON ausgeliefert.
Folgende JSON-Dateien sollten beim Import enthalten sein:
- fields_pos_definition_%yyyymmdd_HHMMSS%.json
- fields_pos_definition_alternatives_%yyyymmdd_HHMMSS%.json
- fields_pos_gentablebuttons_%yyyymmdd_HHMMSS%.json
- fields_pos_gentablebuttonssettings_%yyyymmdd_HHMMSS%.json
- fields_pos_gentablesettings_%yyyymmdd_HHMMSS%.json
- fields_pos_gentablexmlsettings_%yyyymmdd_HHMMSS%.json
- invoice_gentable_searchfields_%yyyymmdd_HHMMSS%.json
- lang_properties_config_%yyyymmdd_HHMMSS%.json
- parameter_config_%yyyymmdd_HHMMSS%.json
- rights_initial_%yyyymmdd_HHMMSS%.json
- wf_actionid_%yyyymmdd_HHMMSS%.json
- wf_configuration_%yyyymmdd_HHMMSS%.json
- wf_rules_%yyyymmdd_HHMMSS%.json
- wf_workflow_%yyyymmdd_HHMMSS%.json
- wf_workflowid_%yyyymmdd_HHMMSS%.json
Übersetzungen
Über den Ordner „Übersetzungen“ müssen die produktspezifischen properties-Dateien über den Button mit dem Wolken-Icon und dem Pfeil nach unten in die Datenbank geladen werden. Im Anschluss sollten die Daten direkt wieder über den nebenstehenden Button wieder zurück in die properties-dateien geschrieben werden.
Beim Schreiben in die Datenbank werden immer nur Daten hinzugefügt. Wenn an einem Eintrag die Checkbox "Projektspezifische Anpassung" gesetzt ist, werden die Daten bei einem Import nicht überschrieben. Bei einem Export wird die bestehende properties-Datei mit einem Zeitstempel versehen und in einen Backup-Ordner verschoben und es wird eine neue Datei erstellt.
Benutzer / Benutzergruppen
Neue Benutzer und Gruppen können über die WEB-Konfiguration über die jeweiligen Filter-Ordner erstellt werden. Über den Aktionslisten-Eintrag „Synchronisieren“ werden die jeweiligen Akten erstellt. Falls die Benutzer und Gruppen über LDAP synchronisiert werden können die Ordner über den Documents-Manager ausgeblendet werden.
Es werden die aus anderen Lösungen bekannten Mappentypen otrAccessProfile und otrUser verwendet. Allerdings wurden alle an den Mappentypen hinterlegten Skripte durch eigene Skripte ersetzt. Die Mappentypen wurde um diverse Funktionen erweitert. Falls sich diese Mappentypen bereits durch andere Lösungen auf dem System befinden, dann sollten die Mappentypen nicht überschrieben werden, damit alle bestehenden Funktionen auch weiterhin funktionieren!
Anlage der kundenspezifischen Mandanten
Es muss mindestens ein kundenspezifischer Mandant über den Stammdaten-Konfigurations-Ordner „Mandanten“ angelegt werden. Die Lösung unterscheidet "Mandanten" (Principal) und "Buchungskreise" (CompanyCode).
In der Regel reicht ein Wert zur Unterscheidung aus. Beide Werte können in dem Fall auf denselben Wert gesetzt werden und das "CompanyCode" Feld kann später über die Feldkonfiguration ausgeblendet werden. Beim Speichern können beide Feldwerte zum Beispiel über das UserExit "ue_OnSave_Start()" auf denselben Wert gesetzt werden. In den Stammdaten-Tabellen sollte "CompanyCode" hingegen immer mit "ANY" belegt werden, damit bei einem Mandanten-Wechsel ohne Zwischen-Speichern direkt die korrekten Stammdaten angezeigt werden.
Import Kopf-Felder und Anpassung SQL-Insert
Auf der Administrations-Outbar „Invoice“ gibt es den Ordner „Kopf-Felder“ unterhalb der „Feldkonfigurationen“. Die Kopffelder müssen initial über den Button „KOPFFELDER NEU LADEN“ eingelesen werden. Die Werte werden direkt aus der Documents5-Datenbank ausgelesen.
Bei den Standardwerten kann über die Checkbox „SQL Insert?“ angegeben werden, ob das Feld beim Speichern der Rechnungs-Akte in die Datenbank-Tabelle „invoice_posting_head“ geschrieben wird oder nicht. Wenn es zum Feld ein gleichnamiges Feld in der Tabelle existiert, wird die Checkbox beim Import vorbelegt. Andernfalls kann über die Feldkonfirguation automatisch eine passende Spalte in der Tabelle erzeugt werden.
Über die Spalte "In Workflow-Regel verwenden?" kann festgelegt werden, ob das Feld in den Workflow-Regeln zur Auswahl steht. In den Workflow-Regeln wird die Auswahlliste hierdurch übersichtlicher.
Lizenz
Ab der Version 1.0.300 wird eine Lizenzdatei benötigt. Die Lizenz sollte vor einem Update beantragt werden!
Lizenzdateien
Die Lizenz besteht aus 2 Dateien. Die Informationen stehen im Klartext in einer JSON-Datei. Eine zweite Datei signiert diese JSON-Datei. Sobald Änderungen an der JSON-Datei vorgenommen werden passt die Signatur nicht mehr zur JSON-Datei. Der Dateiname ist der Name der Documents-PEM.
Verwendung ab Invoice 1.0.300
Die Lizenzdateien werden ab der Invoice-Version 1.0.300 benötigt. Das betrifft sowohl Neuinstallationen als auch Updates! Vor einem Update muss die Lizenzdatei rechtzeitig beantragt werden!
JSON-Datei
Die JSON-Datei enthält Informationen zur Lizenz-Versionsnummer; eine interne ID sowie die interne Kundennummer und den Kundennamen; einen Anlagezeitstempel und ein Ablaufdatum. Zur Ausstellung einer Lizenz werden folgende Angaben benötigt:
- Documents-Lizenz (PEM-Nummer oder -Name)
- Server Hostname der Documents-Installation bzw. das, was in den Systemparametern unter "Servereinstellungen/Hostname des Portalservers" angegeben wird
- Lizenzmodul (Invoice und/oder Mailroom und/oder Procurement) samt Lizenzvolumen.
Signatur
Die JSON-Datei wird zusammen mit einer passenden Signatur-Datei ausgeliefert. Die Signatur-Datei enthält einen verschlüsselten String. Eine Anpassung an der JSON- oder Signatur-Datei führt zu einem Lizenz-Fehler!
Ablage und Prüfung
Im DEXPRO-Ordner der Documents-Installation befindet sich der Licence-Ordner. Hier müssen beide Dateien abgelegt werden. Der Ordner enthält den Unterordner "Tool" mit der "licence-tool-x64.exe". Die Datei wird benötigt um die Lizenz zu prüfen. Sollte der Pfad oder sollte eine Datei fehlen oder manipuliert worden sein wird es im Workflow zu Fehlern kommen. Zudem werden die Angaben in der Lizenz an diversen Stellen im Workflow geprüft.
Die Lizenz kann in den aktuellen Versionen über die WEB-Oberfläche angefordert und hochgeladen werden.
Optionale Erweiterungen
Single-Sign-On: Auslagerung der web.xml
Ein häufiger Kundenwunsch ist die automatische Anmeldung am System via Single-Sign-On. Hierfür müssen Anpassungen in der web.xml vorgenommen werden, welche sich im webapps-Ordner des Tomcats befindet. Nach einem Documents-Update soll jedoch immer der webapps-Ordner gelöscht werden und dadurch gehen auch diese SSO-Anpassungen in der web.xml verloren.
Hierfür kann die web.xml in den ..\DEXPRO\WEB-INF\-Ordner kopiert werden. Bei einem Documents-Update gehen die Anpassungen an der Datei nicht mehr verloren. Der Nachteil ist allerdings, dass dadurch ggf. benötigte Erweiterungen an der web.xml manuell hinzugefügt werden müssen.
Die Auslagerung der web.xml ist ausdrücklich nur als Option zu sehen.
SSL
Bei einer Umstellung auf https müssen alle Programme über dasselbe Protokoll miteinander kommunizieren! In der Regel sind folgende Programme betroffen und es werden folgende Zertifikate benötigt:
- Tomcat8
PFX / P12 Datei mit Kennwort. Eine PFX-Datei kann einfach in .p12 umbenannt werden!
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="200"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="D:\Applikationen\Documents5\tomcat8\conf\zertifikatsdatei.p12"
keystorePass="ZertifikatPasswort"
clientAuth="false"
sslProtocol="TLS"
maxPostSize="8388608"
maxHttpHeaderSize="32768"
/>
- TableService
Zertifikat BASE64 codiert (PEM Datei, wobei die Endung keine große Rolle spielt)
Private Key (unverschlüsselt – kein RSA Key) ebenfalls BASE64 codiert - Squeeze
Zertifikat BASE64 codiert (PEM Datei, wobei die Endung keine große Rolle spielt)
Private Key (unverschlüsselt – kein RSA Key) ebenfalls BASE64 codiert
Zertifikatskette (wenn vorhanden) ebenfalls BASE64 codiert.
Der Zertifikatsspeicher (PFX) bzw. das Zertifikat muss mindestens mit dem Signaturalgorithmus SHA-256 signiert sein.
Es kann bei veraltet konfigurierten CAs (Certificate Authority) vorkommen, dass ein Exportvorgang mit SHA-256 erfolgreich abgeschlossen, das Zertifikat jedoch immer noch mit SHA-1 signiert wurde. SHA-1 gilt seit 2017 als NICHT SICHER!
Der Kunde soll einen PFX Zertifikatsspeicher bereitstellen und das Passwort mitteilen. Gegebenenfalls wird im DEXPRO-Ordner bereits der Unterordner OpenSSL ausgeliefert. Der Ordner enthält die openssl.exe und 2 DLL's sowie eine ExtractPfx.bat. In der BAT-Datei müssen lediglich der Dateiname, das Passwort und der Pfad angepasst werden. Die PFX-Datei muss in den Unterordner "IN" abgelegt werden.
REM VARIABLES TO SET!
SET FILENAME=cert.pfx
SET PW=mySecretPW
SET PATH=D:\Documents5\DEXPRO\OpenSSL\
Durch die Extraktion werden die folgenden Dateien erstellt:
- Das eigentliche Zertifikat ist die
.crt
Datei. - Der Private Key (mit PEM-Passphrase) ist
.key
Datei. - Die Zertifikatskette ist die
_chain.pem
Datei, wenn diese leer ist, dann gibt es keine weitere Kette. - Der Private Key (ohne PEM-Passphrase) ist die
_nopass.key
Datei.
Die ExtrctPfx.bat sollte mit Administrator-Berechtigungen ausgeführt werden. Das Ergebnis sollte wie im folgenden Screenshot zu sehen aussehen.
Die konvertierte crt- und die ky-Datei enthalten zusätzliche Informationen, welche manuell aus der Datei gelöscht werden müssen. Die Dateien können beliebig umbenannt und verwendet werden.