Version 2.1.0

Wichtige Hinweise

Universal C Runtime

Diese Version setzt voraus, dass die Universal C Runtime (CRT) in Windows installiert ist. Die CRT wurde von Microsoft Ende 2015 für alle Windows-Versionen als wichtiges Update (KB2999226) bereitgestellt und sollte daher in der Regel bereits installiert sein. Das Setup prüft beim Start, ob die CRT installiert ist. Falls dies nicht der Fall ist, beendet sich das Setup mit einer entsprechenden Meldung und sollte nach der Installation der CRT erneut ausgeführt werden.

Bei der separaten pa_hotfolder-Anwendung (siehe unten) gibt es aktuell kein Installationsprogramm und daher keine Überprüfung, ob die Universal C Runtime installiert ist. Wenn beim Ausführen der pa_hotfolder.exe in Fehler folgender Art angezeigt wird, sollte die CRT über das Windows-Update oder die oben verlinkte Microsoft-Seite installiert werden:

image0

Änderung des Standard-Themes

Das Theme iquadrat ist nun das Standard-Theme, sofern in der settings.ini oder beim Benutzer nichts anderes eingestellt ist. Sollte das Theme classic in einer Installation weiterhin als Standard erwünscht sein, sollte in der settings.ini die Option theme=classic hinzugefügt werden.

Hotfolder-Archivierung über die Web-API

Bisher war es so, dass die pa_hotfolder.exe bei der Verarbeitung die archivierten Daten direkt in die Speicher und Index-Datenbank geschrieben hat. Ab dieser Version verwendet die pa_hotfolder.exe ebenfalls die normale Web-API, was einige Vorteile hat:

  • Die pa_hotfolder.exe muss nicht mehr unbedingt auf dem gleichen Computer ausgeführt werden, auf dem auch docs365 documents installiert ist. Es wird eine separate pa_hotfolder.exe-Anwendung (siehe unten) bereitgestellt, die man auf beliebig vielen Computern installieren kann, die dann alle gleichzeig in eine einzige Documents-Installation archivieren.

  • Weil docs365 documents eine reine 64-Bit-Anwendung ist, konnten bei Import-Services über die Hotfolder bislang auch nur 64-Bit-ODBC-Datenquellen für Datenbankabfragen verwendet werden. Da die separate pa_hotfolder.exe-Anwendung auch in einer 32-Bit-Version bereitgestellt wird, können damit nun auch 32-Bit-ODBC-Datenquellen verwendet werden.

  • Auch wenn die pa_hotfolder.exe weiterhin direkt in der Documents-Installation ausgeführt wird, ist es nicht mehr zwingend erforderlich, dass sie unter einem Benutzerkonto läuft, das Schreibrechte auf die Speicher hat. Es reicht aus, wenn die pa_hotfolder.exe lesend auf die settings.ini und hotfolder.ini zugreifen kann.

Dienstbenutzer für die Hotfolder-Archivierung

Eine Folge dieses neuen Verfahrens ist, dass sich nun auch der Hotfolder bei der Web-API als Benutzer authentifizieren muss, selbst wenn die in der regulären Documents-Installation enthaltene pa_hotfolder.exe über localhost archiviert.

Für diesen Zweck wurden Dienstbenutzer eingeführt:

image1

Dienstbenutzer unterscheiden sich von normalen Benutzern darin, dass sie sich nicht in der Benutzer-Oberfläche anmelden können und anstatt eines Login-Namens und Passworts nur ein vom Server generiertes API-Token für die Authentifizierung kennen. Das API-Token kann in der Administrationsoberfläche invalidiert werden, indem man im Token-Feld auf das “X” klickt und anschließend speichert. Der Server generiert dann ein neues Token, sodass das alte nicht mehr gültig ist.

Auch Dienstbenutzern müssen Rollen zugewiesen werden, damit sie auf Archive zugreifen können. Somit ist es möglich, den Zugriff so weit einzuschränken, dass eine pa_hotfolder.exe auf einem externen Computer zwar in ein bestimmtes Archiv archivieren, mit dem Token aber nicht die Daten aus anderen Archiven über die API auslesen kann.

Die URL des Servers und das API-Token müssen wie folgt in der settings.ini in der neuen Sektion [Hotfolder] eingetragen werden:

[Hotfolder]
URL = http://documents.example.com:8551/
Token = ArRwFYljbSKYZHaBX2VpVhp6oHak56Ju

Beim Upgrade von docs365 documents 2.0 sowie bei neuen Installation wird diese Sektion in der settings.ini automatisch eingetragen, dafür wird ebenfalls automatisch ein erster Dienstbenutzer mit dem Namen Hotfolder erzeugt, der einer neuen Rolle Hotfolder zugewiesen wird, die zunächst einmal Schreibrechte auf alle Archive hat. Somit wird die bereits eingerichtete Hotfolder-Archivierung von Version 2.0 auch weiterhin funktionieren.

Wenn später neue Archive erstellt werden, ist es wichtig, dass der Hotfolder-Rolle Schreibrechte auf diese Archive gegeben werden, damit der Hotfolder sie ebenfalls verwenden kann.

Separate pa_hotfolder.exe-Anwendung

Ab dieser Version werden noch zwei zusätzliche Dateien mit ausgeliefert:

  • pa_hotfolder-2.1.0-x86.zip (32-Bit)

  • pa_hotfolder-2.1.0-x64.zip (64-Bit)

Diese beiden Dateien enthalten die separate pa_hotfolder.exe-Anwendung jeweils in einer 32-Bit- und einer 64-Bit-Version. Der Inhalt dieser ZIP-Dateien kann ohne Installation in einem beliebigen Dateipfad entpackt werden, um von dort aus Archivierungen über Hotfolder durchzuführen. Dafür müssen in dem config-Verzeichnis eine minimale settings.ini (mit der Sektion [Hotfolder] wie oben angeben) und eine hotfolder.ini eingerichtet werden.

Notwendige Anpassungen in Import-Services

Durch die Verwendung der Web-API gibt es in der post_process-Methode von Import-Services eine nicht rückwärtskompatible Änderung, die eine eventuelle Anpassung der Import-Services erfordert (z.B. im index-from-db-Import-Service).

Der Parameter record, der den erzeugen Vorgang repräsentiert, war bisher ein Datenbank-Objekt, auf dessen Eigenschaften über Attribute (z.B. record.id) zugreifen konnte. In der neuen Version ist record ein Python-dict, dessen Inhalt die Antwort der JSON-Web-API ist und auf dessen Eigenschaft über dict-Schlüssel zugegriffen werden kann.

Beispiel:

# Vorher:
def post_process(self, record):
    for attachment in record.attachments:
        id = attachment.id

# Nachher:
def post_process(self, record):
    for attachment in record['attachments']:
        id = attachment['id']

Parallele Hotfolder-Verarbeitung

Für eine bessere Performance verarbeitet die pa_hotfolder.exe nun mehrere Dateien gleichzeitg, was sich insbesondere bei der Hotfolder-Verarbeitung auf einem separaten Computer über eine langsame Netzwerkverbindung bemerkbar macht. Standardmäßig werden acht Dateien gleichzeitig verarbeitet, was über einen Parameter der pa_hotfolder.exe angepasst werden kann:

pa_hotfolder.exe --threads 2

Dokumente als PDF zusammenfassen

Im Menü des Datengitters von Archiven gibt es einen neuen Menüpunkt Extras -> Dokumente zusammenfassen. Wenn man einen oder mehrere Vorgänge auswählt und diesen Menüpunkt anklickt, werden alle druckbaren Seiten von sämtlichen Dokumenten der ausgewählten Vorgänge zu einer einzigen PDF-Datei zusammengefügt, die dann im Browser betrachtet oder heruntergeladen werden kann. Die Reihenfolge der Vorgänge ist dabei so, wie sie im Datengitter angezeigt werden und die Reihenfolge der Dokumente ist, wie sie in den Vorgängen zu sehen sind.

Das Zusammenfassen kann je nach Größe der Dokumente einige Sekunden dauern, anschließend wird ein Dialog mit dem Ergebnis und einem Link auf das fertige Dokument angezeigt. Es wird die Anzahl der Seiten angegeben und evtl. eine Liste der Dateinamen von Dokumenten, die nicht beachtet werden konnten (wenn sie beispielweise wie eine ZIP-Datei nicht druckbar sind).

Ein Klick auf Dokument anzeigen öffnet die generierte PDF-Datei in einem neuen Browser-Tab.

Neue Option “Revisionssicher speichern” für Datenfelder

Bisher war es möglich, ein Datenfeld als Änderbar zu markieren, sodass man die Werte dieses Feldes auch nach der Archivierung noch bearbeiten konnte. Änderbare Felder wurden bislang ausschließlich in der Datenbank und nicht revisionssicher im Speicher abgelegt, während nicht änderbare Felder grundsätzlich revisionssicher gespeichert wurden.

Nun ist auch auch möglich, revisionssicher gespeicherte Felder als Änderbar zu markieren. Dafür gibt es in den erweiterten Optionen der Datenfelder eine neue Einstellung Revisionssicher speichern, die angibt, ob das betroffene Feld revisionssicher im Speicher verwaltet oder nur in der Datenbank gespeichert wird. Bei neuen Feldern ist die Option Revisionssicher speichern standardmäßig aktiviert.

Diese Option ist bei auf Änderbar eingestellten Feldern wichtig: Wenn man in einem Vorgang auf Bearbeiten klickt und nur nicht revisionssichere Datenfelder verändert, werden die Werte im aktuellen Vorgang überschrieben. Ist jedoch mindestens eines der veränderten Felder revisionssicher gespeichert, wird eine neue Version des Vorgangs angelegt, die die veränderten Werte enthält. Die vorherige Version mit den alten Werten bleibt als versteckter Vorgang erhalten.

Beim Update von docs365 documents 2.0 werden in bestehenden Archiven alle änderbaren Felder weiterhin als nicht revisionsicher markiert und alle nicht änderbaren Felder als revisionsicher.

Da es nun möglich ist, die Option Änderbar selbst in Produktivarchiven zu jedem Zeitpunkt anzupassen, ohne dass das die Revisionssicherheit verändert, wurde in der pa_ctl.exe der Befehl pa_ctl.exe modify <archiv> chbl/nochbl entfernt, da er nicht mehr benötigt wird.

Die Option Revisionssicher speichern kann jedoch nur verändert werden, solange sich das Archiv noch im Testmodus befindet.

Eindeutige Werte in Datenfeldern

Wenn ein Datenfeld in den erweiterten Optionen als Eindeutig markiert wird, dürfen beim Archivieren nur Werte verwendet werden, die nicht bereits bei anderen Vorgängen in diesem Datenfeld existieren. Versteckte Vorgänge werden dabei nicht beachtet, d.h. es ist weiterhin möglich, einen Wert im Datenfeld zu verwenden, auch wenn ein versteckter Vorgang diesen bereits enthält.

Verbesserte Spaltenkonfiguration im Viewer

Wenn man in einer Spalte im Datengitter des Viewers durch den Klick auf den Spaltentitel das Menü aufklappt und auf Spaltenkonfiguration klickt, gibt es nun einen verbesserten Dialog, mit dem die anzuzeigenden Spalten sortiert, ausgeblendet und wieder eingeblendet werden können.

image2

image3

Verstecken von Datenfeldern

Wenn ein Datenfeld in den erweiterten Optionen als Unsichtbar markiert wird, wird dieses Datenfeld standardmäßig nicht mehr im Viewer angezeigt. Dabei ist das Verhalten bei normalen Benutzer und Benutzern mit Administrator-Rechten unterschiedlich:

  • Normale Benutzer können auf die Werte dieses Datenfeldes gar nicht mehr zugreifen. Es ist sowohl im Datengitter als auch im Vorgangsdialog und direktem API-Zugriff vollständig ausgeblendet. Jedoch ist es auch für diese Benutzer im direkten API-Zugriff weiterhin möglich, beim Archivieren Feld-Werte zu übergeben, beispielsweise wenn ein Hotfolder-Dienstbenutzer ohne Administrator-Rechte weiterhin Werte für unsichtbare Felder füllen muss.

  • Bei Administrator-Benutzern sind unsichtbare Felder im Datengitter zunächst einmal ausgeblendet, jedoch ist es möglich, sie über die Spaltenkonfiguration manuell wieder einzublenden. Im Vorgangs-Dialog werden unsichtbare Spalten weiterhin normal angezeigt.

Grundsätzlich sind unsichtbare Datenfeldern weiterhin normal aktiv und können revisionssicher Werte speichern, nur dass normale Benutzer nicht darauf zugreifen können. Die Unsichtbarkeit kann jederzeit wieder rückgängig gemacht werden.

Zeichenerkennung (OCR) in PDFs mit gemischten Text- und Bilddaten

Bisher war die Zeichenerkennung (OCR) bei PDF-Dateien nur dann möglich, wenn sie ausschließlich aus Bilddaten bestanden, so wie es im Falle eines gescannten Dokumentes der Fall ist. In Zukunft können auch solche PDF-Dateien verarbeitet werden, die aus einer Mischung aus Text- und Bilddaten bestehen, z.B. digital erzeugte Dokumente mit eingebetteten Logos oder Diagrammen. Der Textanteil bleibt erhalten und die Bilder werden getrennt einer Zeichenerkennung unterzogen, so dass erkannter Text durchsucht, markiert oder kopiert werden kann.

Anhängen von Dokumenten aus dem Eingang

Beim Hinzufügen von Dokumenten zu einem neu angelegten oder einem bestehenden Vorgang musste bisher eine Datei ausgewählt werden, die zunächst vom Browser hochgeladen und dann dem Vorgang als Dokument angehängt wurde. An dieser Stelle besteht nun die alternative Möglichkeit, anstelle einer Datei ein Dokument aus dem Eingang auszuwählen, das dann an den Vorgang angehängt und aus dem Eingang entfernt wird.

image4

Verbesserter Dialog für erweiteres Datenfeld-Optionen

Der Dialog für die erweitereten Datenfeld-Optionen ist nun übersichtlicher, da die einzelnen Einstellungen thematisch gruppiert wurden und viele Optionen zusätzlich noch einen kurzen Hilfetext enthalten haben, der ihre Funktion erklärt:

image5

Export und Import von Archiv-Konfigurationen

In der Administrationsoberfläche können Archivkonfigurationen in JSON-Dateien exportiert bzw. aus JSON-Dateien importiert werden. Für den Export steht im Archiv-Formular ein Button zur Verfügung. Für den Import muss zunächst wie gewohnt ein neues Archiv angelegt werden (Button “Neu”). Anschließend steht im Formular ein Button “Importieren” zur Verfügung, der die Felder des Formulars mit den importierten Daten vorbelegt, die in der Folge angepasst werden können.

Über den Ex- und Import wird auch der Austausch von Konfigurationen zwischen unterschiedlichen Installationen möglich. Die Archiv-Konfiguration kann jedoch Einstellungen enthalten, die sich auf die jeweilige Installation beziehen, beispielsweise die Status auf dem Reiter Workflow oder die SmartIndexing-Einstellungen in den Spalten-Optionen. Wird beim Import festgestellt, dass eine Einstellung in der exportierten Konfiguration im Import-System nicht existiert, erscheint eine Fehlermeldung und die relevante Einstellung wird zurückgesetzt. Die übrigen Daten werden trotzdem importiert.

Automatisierte Vorgabewerte für Archivspalten

Als Vorgabewerte für den Inhalt von Archivspalten können neben manuell festgelegten, festen Werten nun auch automatisierte Werte verwendet werden, beispielsweise der momentan angemeldete Benutzer oder das heutige Datum. Die Vorgabewerte werden wie bisher auch in den Spalten-Optionen innerhalb der Archiv-Konfiguration in der Administrations-Oberfläche festgelegt.

image6

Mit Hilfe eines Auswahlfeldes kann ein automatisierter Vorgabewert ausgewählt werden. Die zur Verfügung stehenden Auswahlmöglichkeiten hängen dabei von der Art des Feldes (Datum, Text oder Zahl) ab. Zur Festlegung eines manuellen Vorgabewertes wird in der Auswahlliste die Option “Spezieller Wert” ausgewählt. Der Wert kann dann wie bisher in einem Eingabefeld eingtragen werden.

Automatisch gefüllte Datenfelder

Wenn bei einem Datenfeld in den erweiterten Optionen die Einstellung Keine manuelle Eingabe aktiviert wird, ist es für Benutzer nicht möglich, im Archivieren-Dialog manuell Werte einzugeben, auch SmartIndexing ist für diese Felder deaktiviert.

Jedoch können diese Felder weiterhin durch Lookups aus externen Datenquellen gefüllt werden. Somit ist diese Einstellung sinnvoll für Felder, die ausschließlich automatisch ermittelte Werte aus externen Datenquellen enthalten sollen.

Dokumente über Import-Services an bestehende Vorgänge anhängen

Import-Services können nun auch noch dazu verwendet werden, über einen Hotfolder Dokumente an bereits bestehende Vorgänge anzuhängen. Dafür muss im result-Objekt anstatt result.archive die ID des zu erweiternden Vorgangs in result.record geschrieben werden.

Der ImportService stellt eine Hilfsfunktionen self.find_records(archive, query) bereit, mit denen nach Vorgängen gesucht werden kann. Der Parameter archive ist die ID oder der Kurzname des zu verwendenen Archivs und query ein Such-Filter mit der gleichen Syntax, die auch in den gefilterten Archiven oder der Spaltensuche verwendet wird. Der Rückgabewert ist eine Liste von gefundenen Vorgängen als dict, die ID kann über den Schlüssel id extrahiert werden:

class ImportService(importservice.Base):
    def process(self, file, result):
        result.add_file(file)
        # Vorgang im Archiv "rechnungen" suchen, dessen
        # Belegnummer "ABC123" ist.
        records = self.find_records('rechnungen', '_belegnr = "ABC123"')
        if len(records) != 1:
            raise RuntimeError('Es wurde genau ein Vorgang erwartet.')
        result.record = records[0]['id']

Beim Aufruf von find_records sollte grundsätzlich die Länge der zurückgegebenen Liste geprüft werden, da bei Filtern auch gar keine oder mehrere Vorgänge zurückgegeben werden. Die maximale Anzahl der gefundenen Vorgänge ist auf 100 beschränkt.

Verschiedenes

  • Zur Änderung des Passworts über das User-Profil (Button mit dem Usernamen unten links im Client) ist nun zusätzlich die Eingabe des alten Passworts erforderlich.