Version 8.1.0

E-Mail-Benachrichtigungen konfigurierbar

Benutzer können sich jetzt im Konfigurationsdialog zum eigenen Benutzer-Profil (über den Button links unten zu öffnen) detailliert konfigurieren, für welche Benachrichtigungsarten (z. B. Termine, neue Postfacheinträge) E-Mails verschickt werden und wann bzw. in welcher Häufigkeit der Versand stattfindet.

Neu hinzugekommen sind dabei Benachrichtungen über neue Dateien im Eingang.

Tägliche Zusammenfassung

Die tägliche Zusammenfassung ist eine E-Mail, die über die aktuell offenen Aufgaben im Postfach informiert. Es wird nur dann eine E-Mail verschickt, wenn auch Einträge im Postfach vorhanden sind. Optional kann in dieser E-Mail auch über Dateien im Eingang informiert werden.

Die Voreinstellung ist, dass die Zusammenfassung täglich um 6 Uhr verschickt wird (außer an Wochenenden) und nur über die Aufgaben im Postfach informiert.

Einstellungen für E-Mail-Benachrichtigungen

Neben der täglichen Zusammenfassung kann für neue Postfach-Einträge (und jetzt auch für neue Dateien im Eingang) weiterhin eine zusätzliche E-Mail-Benachrichtigung verschickt werden. Dabei gibt es folgende Optionen:

Deaktiviert

Es wird für die Kategorie keine E-Mail-Benachrichtigung verschickt. Die Einstellung hat keine Auswirkung auf die tägliche Zusammenfassung, d. h., auch wenn individuelle Postfach-Benachrichtungen deaktiviert sind, kann man eine tägliche Postfach-Übersicht erhalten.

Einzeln

Es wird eine E-Mail verschickt, sobald das Ereignis für die Benachrichtigung ausgelöst wird.

Gesammelt

Benachrichtigungen werden nicht mehr sofort verschickt, sondern es wird in einem konfigurierbaren Zeitintervall nur noch eine E-Mail verschickt, die alle neu hinzugekommen Benachrichtigungen in einem gemeinsamen Report enthält. Im Bereich „E-Mail-Benachrichtigungen: Versandoptionen“ kann die Länge des Intervalls in Minuten (mindestens 5) konfiguriert werden. Über Startzeit und Stoppzeit kann eingestellt werden, zwischen welchen Uhrzeiten der Versand der Reports stattfinden soll, um das beispielsweise auf die Arbeitszeit zu begrenzen. Wenn sowohl Startzeit als auch Stoppzeit auf 0 Uhr eingestellt sind, findet der Versand rund um die Uhr statt, da die Option „00:00“ bei der Stoppzeit Mitternacht des Folgetages bedeutet. Wenn es in einem Zeit-Intervall keine neuen Benachrichtigungen gibt, wird auch keine E-Mail verschickt.

In der Tabelle im Bereich „E-Mail-Benachrichtigungen: Archiv-Konfiguration“ können die Voreinstellungen für einzelne Archive für Postfach-Benachrichtigungen überschrieben werden, wenn beispielsweise gewünscht ist, dass man für ein bestimmtes Archiv keine Postfach-Benachrichtungen erhalten möchte. Dazu muss in der Tabelle eine neue Zeile hinzugefügt und das Archiv ausgewählt werden, für das man die Optionen überschreiben möchte.

Im Bereich „E-Mail-Benachrichtigungen: Versandoptionen“ gibt es darüber hinaus noch folgende Option:

Benachrichtigungen für eigene Aktionen

Wenn diese Option eingeschaltet ist, erhält man auch Benachrichtigungen für Aktionen, die man selbst ausgeführt hat, beispielsweise, wenn ein Benutzer sich eine Datei ins eigene Postfach legt oder in den eigenen Eingang hochlädt. Diese Option ist standardmäßig deaktiviert.

Hinweis

Wenn in einer Gruppe eine E-Mail-Adresse konfiguriert ist, werden E-Mail-Benachrichtungen für neue Postfach-Einträge sowie jetzt auch Weiterleitungen an den Gruppeneingang nicht mehr an alle einzelnen Mitglieder der Gruppe gesendet, sondern nur noch an die in der Gruppe konfigurierte Adresse. Der Versand an die Gruppen-E-Mail findet grundsätzlich sofort statt.

Bessere Übersicht und automatische Abmeldung für Mehrbenutzer-Lizenzen

Die Übersicht über aktuell belegte Mehrbenutzer-Lizenzen wurde verbessert:

  • In der Administrations-Oberfläche wird im Bereich „Übersicht“ bei den verfügbaren Ressourcen nun auch die Anzahl der belegten Mehrbenutzer-Lizenzen angezeigt.

  • In der Tabelle der Benutzerkonfiguration wird in der neuen Spalte „Lizenz“ angezeigt, welcher Lizenz ein Benutzer zugewiesen ist. Einzelbenutzer-Lizenzen werden grün hervorgehoben und wenn ein Benutzer aktuell eine Mehrbenutzer-Lizenz belegt, wird dies blau hervorgehoben angezeigt.

Darüber hinaus wurden die Möglichkeiten verbessert, versehentlich blockierte Mehrbenutzer-Lizenzen durch eine Abmeldung wieder freizugeben:

  • Im Bereich „Übersicht“ in der Administrations-Oberfläche kann eine automatische Abmeldung bei Mehrbenutzer-Lizenzen in Minuten eingestellt werden, die sich bei Inaktivität des Benutzers auswirkt. Die Voreinstellung sind hier 10 Minuten, d. h., wenn ein Benutzer mindestens 10 Minuten lang keine Aktionen in der Oberfläche mehr ausführt (z. B. durch Mausbewegung oder Tastatureingaben), wird die Mehrbenutzer-Lizenz automatisch freigegeben. Es handelt sich hierbei um eine „weiche“ Abmeldung: Sobald der Benutzer wieder Aktivität zeigt und noch eine Mehrbenutzer-Lizenz frei ist, wird die automatisch wieder aktiviert. Eine richtige Abmeldung findet nur statt, wenn die Mehrbenutzer-Lizenz wärend der Inaktivität von einem anderen Benutzer belegt wird und anschließend alle Lizenzen vergeben sind.

  • In der Tabelle der Benutzerkonfiguration ist ein neuer Button „Abmelden“ hinzugekommen, mit dem ein Administrator einen Benutzer von allen Geräten zwangsweise abmelden kann.

Sichtbarkeit von Feldern im Datengitter

Die erweiterte Datenfeld-Einstellung „Unsichtbar“ wurde in zwei Optionen „Unsichtbar im Vorgangsdialog“ und „Unsichtbar im Datengitter“ aufgetrennt.

Somit es ist nun möglich, beispielsweise einzustellen, dass ein Datenfeld zwar im Vorgangsdialog verwendet wird, aber im Datengitter nicht sichtbar ist.

Neuer Rollenfilter für bereits gesehene Vorgänge

Es kann für Rollenfilter jetzt ein neuer Ausdruck accessed = true angegeben werden. Dieser Filter gibt alle Vorgänge zurück, auf die ein Benutzer schon einmal Zugriff hatte. Das ist der Fall in folgenden Situationen:

  • Man hat den Vorgang erstellt.

  • Man hatte den Vorgang selbst im Postfach, entweder direkt oder über einen Termin.

  • Man hätte den Vorgang im Postfach gehabt, es war aber gerade der Vertreter aktiv und der Vorgang Optionist direkt an diesen gegangen.

  • Man hat den Vorgang über eine Gruppe im Postfach gehabt.

Die Information, ob ein Benutzer schon einmal Zugriff auf einen Vorgang hatte, wird beim Upgrade anfänglich anhand der Historie befüllt und ist für Bestandsdaten daher nicht vollständig.

Ersetzen von Dokumenten

Dokumente können jetzt beim Ändern eines Vorgangs ersetzt werden. Beim Bearbeiten eines Vorgangs gibt es dafür im Dokumenten-Menü einen neuen Button „Ersetzen“, der das aktuell ausgewählte Dokument durch eine andere Datei ersetzt.

Wenn es geteilte Links auf ein Dokument gibt, bleiben diese Links anschließend bestehen und zeigen auf das neue Dokument.

Optimale Spaltenbreite

In Version 8.0 wurde ein neuer Menüpunkt „Optimale Spaltenbreite“ in Untertabellen eingeführt. Diese Option wurde für folgende Bereiche in der Oberfläche erweitert:

  • Viewer: Liste der Archiv-Vorgänge, Postfach, Eingang.

  • Admin: Spalten der Listen-Ansicht des geöffneten Bereichs.

Ein Klick auf diesen Menüpunkt verändert die Breite von allen Spalten im Datengitter so, dass sowohl die Spaltentitel als auch die Werte in allen Zellen vollständig dargestellt werden.

Historie

Öffnen von Vorgängen historisieren

In einer Archiv-Konfiguration gibt es nun eine neue Checkbox „Öffnen des Vorgangs protokollieren“. Damit wird bei jedem Öffnen eines Vorgangs ein Historieneintrag angelegt. Standardmäßig ist diese Option aus.

Neues Rollenrecht „Zugriffshistorie anzeigen“

In der Rollenkonfiguration wurde ein neuer Befehl „Zugriffshistorie anzeigen“ hinzugefügt, über den gesteuert werden kann, ob ein Benutzer in der Historie die Zugriffprotokollierung für Vorgänge und Dokumente sehen darf.

Bei bestehenden Rollen ist dieser Befehl für alle sichtbaren Status aktiviert, damit bei einem Upgrade das frühere Verhalten unverändert bleibt.

Workflows

Vorgang versenden: 4-Augen-Prinzip

In der Workflow-Aktion „Vorgang versenden“ wurde eine neue Option „Versender als Empfänger verbieten“ hinzugefügt. Wenn diese Option auf „Ja“ eingestellt wird, werden bei Ausführung des Workflow-Übergangs bei freier Empfängerauswahl folgende Empfänger nicht angeboten:

  • Der aktuelle Benutzer.

  • Alle Gruppen, in denen der aktuelle Benutzer Mitglied ist.

Auf diese Weise kann beispielsweise in einem Prüfungs-Workflow verhindert werden, dass ein Benutzer sich selbst als Prüfer auswählt.

Aufbewahrungsfrist setzen

Mit der neuen Workflow-Aktion „Aufbewahrungsfrist setzen“ kann die Aufbewahrungsfrist eines Vorgangs verlängert werden. Die Aktion verfügt über zwei Konfigurationsfelder: „Jahre“ und „Tage“, die nur Ganzzahlen akzeptieren. Es ist möglich, beide Felder oder nur eines von ihnen auszufüllen, um das Gesamt-Aufbewahrungsdatum entsprechend zu berechnen. Die neue Frist startet vom aktuellen Zeitpunkt der Ausführung plus die errechnete Zeit.

Zusätzlich gibt es eine Checkbox mit der Bezeichnung „Abbruch bei Fehler“, die das Verhalten definiert, wenn der Vorgang bereits eine Aufbewahrungsfrist hat und die Aktion versucht, eine kürzere Aufbewahrungsfrist festzulegen. Wenn die Checkbox aktiviert ist, wird der Statuswechsel in diesem Fall abgebrochen. Ist die Checkbox deaktiviert, bleibt die Aufbewahrungsfrist unverändert und der Statuswechsel wird dann ausgeführt.

Anpassung in Workflow-Aktion „Plausibilität prüfen“

In der Workflow-Aktion „Plausibilität prüfen“ kann nun eine zusätzliche Option „Beim Fehlschlag der Bedingung“ eingestellt werden. Entweder „Abbruch“, dann wird - wie gewohnt - der optionale Meldungstext angezeigt, oder „Bestätigung anfragen“, bei der ein Dialog mit dem Meldungstext erscheint. Zusätzlich wird nun gefragt: „Statuswechsel trotzdem durchführen?“

Soll der Statuswechsel trotz fehlgeschlagener Plausibilität stattfinden, geschieht dies mit der Bestätigung „Ja“. Bei „Nein“ schließt sich der Dialog und der Wechsel des Status wird nicht ausgeführt.

Der Meldungstext kann nun, ähnlich wie bei der Workflow-Aktion „E-Mail versenden“, durch geschweifte Klammern mit Platzhaltern vorbelegt werden. Datenfelder aus dem verknüpften Archiv werden als Kurzname mit einem vorangestellten Unterstrich eingefügt.

Im- und Export für Übersetzungen

Übersetzungen können in eine CSV-Datei exportiert werden sowie aus einer hochgeladenen CSV-Datei auch wieder importiert werden. Beim Import kann gewählt werden, ob die zu importierenden Einträge nur hinzugefügt werden oder auch vorhandene Übersetzungen gelöscht werden.

Anzeige von gelöschten Key-Value-Verknüpfungen

Wenn in einem Datenfeld als Vorschlagsquelle ein Key-Value-Feld, z. B. vom Typ „Benutzer“, konfiguriert war und der Benutzer anschließend gelöscht wurde, konnt der verknüpfte Name des Benutzer anschließend nicht mehr angezeigt werden.

Beim Löschen von Benutzern, Gruppen und Mandanten wird der letzte Anzeigewert nun weiterhin vorgehalten, sodass auch nach der Löschung noch ein Wert in der Verknüfung angezeigt werden kann.

Benutzer-Attribute in Vorschlagsfiltern

In Vorschlagsfiltern können Vorschläge eines Archiv- oder Datentabellenfeldes nun basierend auf der Variable user gefiltert werden, die als Attribute Informationen über den aktuell eingeloggten Benutzer enthält.

Es stehen folgende Attribute zur Verfügung:

id

Die interne Benutzer-ID (die bespielsweise vom Key-Value-Feld „Benutzer“ gespeichert wird).

username

Login-Name.

fullname

Name.

email

Die E-Mail-Adresse.

language

Die Sprache, die der Benutzer in der Oberfläche eingestellt hat. Mögliche Werte sind de und en.

groups

Die Liste der Gruppen-IDs, in denen der Benutzer Mitglied ist.

groups_names

Die Liste der Gruppen-Namen, in denen der Benutzer Mitglied ist.

roles

Die Liste der Rollen-IDs, in denen der Benutzer Mitglied ist.

roles_names

Die Liste der Rollen-Namen, in denen der Benutzer Mitglied ist.

Beispiel:

table.language = user.language

Basierend auf dieser Einstellung wird die Vorschlagsliste des Datenfeldes beim Bearbeiten des Vorgangs entsprechend der aktuellen Sprache des Benutzers gefiltert.

Neue STAR-Features

Mehr Funktionalität für Tabellen

Die Funktion lookup() kann jetzt auch Untertabellenfelder zurückgeben.

Die Funktion lookup_table() nimmt ein Archiv oder eine Datentabelle als Argument, wie lookup(), aber keinen Feldnamen und gibt das Archiv oder die Datentabelle als Tabelle zurück.

Weiter gibt es eine Funktion is_table(object), die prüft ob ein Objekt eine Tabelle ist.

Tabellenobjekte haben weitere Methoden erhalten:

_table.clear()

Leert die Tabelle.

_table.delete_row(idx)

Entfernt die Zeile an der Stelle idx.

_table.extend(other, strict=false)

Fügt der Tabelle die Zeilen von other hinzu und überträgt alle vorhandenen Werte der Zeilen, die dem Schema der Tabelle entsprechen. Der optionale Parameter strict kann auf true gesetzt werden. Dann kommt es, falls das Schema der beiden Tabellen nicht gleich ist, zu einem Fehler.

Listen in Funktion lookup

Die STAR-Funktion lookup wurde um einen Parameter list erweitert, der die Werte true oder false akzeptiert (Vorgabe ist false).

Bei list=true wird von der Funktion nicht mehr der erste gefundene Wert zurückgegeben, sondern eine Liste von allen eindeutigen Werten der Spalte. Leere Werte werden somit nicht zurückgegeben und doppelt vorkommende Werte nur einmal im Ergebnis vorhanden sein. Die Reihenfolge der Wert in der Ergebnisliste ist unbestimmt.

Der Parameter fallback hat bei list=true keine Auswirkung mehr.

Benutzer-Lookup (inkl. Vertreter)

Es wurde eine Funktion für das Laden von Benutzern hinzugefügt:

lookup_user(user_username="admin")

Die Funktion versucht, einen Benutzer basierend auf den angegebenen Filteroptionen zu finden. Mögliche Optionen sind:

  • user_username

  • user_fullname

  • user_email

  • user_id

Falls kein Benutzer gefunden wird, wird null zurückgegeben.

Weiter wurde eine Hilfsfunktion zum sicheren Zugriff auf Attribute (auch bei null-Werten) hinzugefügt.

getattr(object, "attribute_name", default="default_string")

Es wird versucht, auf das Attribut des Objekts mit dem angegebenen Namen zuzugreifen. Hat das Objekt kein Attribut mit diesem Namen, beispielsweise wenn es null ist, wird entweder ein Fehler ausgelöst oder, wenn default gesetzt ist, dessen Wert zurückgegeben.

Beispiel:

active = getattr(lookup_user(user_id=_freigeber), "substitute_active", false)

Hier wird nach einem User gesucht und dann anschließend versucht das Attribut substitute_active auszulesen. Sollte lookup_user einen null-Wert zurückgeben, wird hier dann der Standardwert false zurückgegeben.

„in“-Operator

Es ist nun möglich, mittels des in-Operators zu prüfen, ob ein Wert in einem anderen enthalten ist.

Beispiel für die Überprüfung, ob ein String in einem anderen enthalten ist:

'ab' in 'abc'`` -> `true`
'ac' in 'abc'`` -> `false`

Oder eine Überprüfung, ob ein Wert in einer Liste enthalten ist:

"Vorgesetzte" in current_user.groups_names

Neue Funktion len

Es ist nun möglich, die Länge von Listen und Strings zu bestimmen.

Beispiele:

test = "test"
test_string_length = len(test) # 4
len(current_user().groups) # In wievielen Gruppen ist der Nutzer Mitglied

Neue Attribute für current_user

Die globale Variable current_user wurde um ein neue Attribute erweitert:

language

Die Sprache, die der Benutzer in der Oberfläche eingestellt hat. Mögliche Werte sind de und en.

groups

Die Liste der Gruppen-IDs, in denen der Benutzer Mitglied ist.

groups_names

Die Liste der Gruppen-Namen, in denen der Benutzer Mitglied ist.

roles

Die Liste der Rollen-IDs, in denen der Benutzer Mitglied ist.

roles_names

Die Liste der Rollen-Namen, in denen der Benutzer Mitglied ist.

substitute_id

Die Benutzer-ID des Vertreters bzw. null, falls kein Vertreter eingestellt ist.

substitute_active

Ist true, falls ein Vertreter aktiv ist, andernfalls false.

Die vollständige Liste der Attribute ist in der STAR-Dokumentation zu finden.

Die Elemente der Listen lassen sich über Schleifen abrufen:

for role_id in current_user.roles do
    print(role_id)
end

for group_name in current_user.groups_names do
    if group_name == "Einkauf" do
        print(role_name)
    end
end

Zugriff auf Wert eines Key-Value-Feldes

Für Felder eines Vorgangs, die ein Key-Value-Feld sind, kann jetzt auch der Anzeige-Text abgefragt werden.

Beispiel:

if _user.text == current_user.fullname then
    _user_refer = "You"
else
    _user_refer = _user.text
end

Neue Hotfolder-Features

Konfiguration: URL und Token pro Sektion

Bemerkung

Die Zugangsdaten für den Hotfolder wurden aus der [Hotfolder]-Sektion der settings.ini in eine [DEFAULT]-Sektion der hotfolder.ini migriert. Die Zugangsdaten, die in der settings.ini hinterlegt sind, werden weiterhin beachtet, falls die hotfolder.ini keine konfigurierten Zugangsdaten enthält.

Das Anlegen von unterschiedlichen Zugangsdaten pro Sektion wird nun unterstützt. Standardmäßig wird der Zugang aus [DEFAULT] verwendet, sofern keine sektionsspezifischen Daten hinterlegt sind.

Beispiel für unterschiedliche Konfigurationen:

[DEFAULT]
URL = http://documents.example.com:5050/
Token = bs9fMWw7c4ctgMgyRSB7y8U8qlksGOto

[DOCX]
; keine Zugangsdaten
Directory = ...
...

[CSV]
; Verwendung einer anderen URL
URL = http://documents.example.com:8551/
...

[PDF]
; Verwendung eines anderen Hotfolders
Token = 8Z6USm5wWfUu27UlQHQC351wwrqHfzJZ
...

[XML]
; Eigene URL und Token
URL = http://documents.example.com:8551/
Token = 8Z6USm5wWfUu27UlQHQC351wwrqHfzJZ
...

Selektive Ausführung von Sektionen

Die pa_hotfolder.exe unterstützt nun ein neues Kommando --section bzw. -s, mit dem spezifische Sektionen der hotfolder.ini angegeben werden können. Nur diese angegebenen Abschnitte werden berücksichtigt, während die nicht angegebenen ausgelassen werden. Die Sektionen können ohne Beachtung der Groß- oder Kleinschreibung angegeben werden.

pa_hotfolder.exe --section pdf csv

Leere Verzeichnisse und Unterverzeichnisse

Mit der neuen Hotfolder-Option DeleteEmptyDirectories werden nach Abschluss der Hotfolder-Verarbeitung rekursiv alle leeren Unterverzeichnisse entfernt, mit Ausnahme der Ordner _Completed, _Failed und _Processing. Standardmäßig ist diese Option auf false gesetzt.

DeleteEmptyDirectories = true

Methode write_viewable()

Analog zur Methode write_attachment der Export- und Import-Services steht nun im HTTP-Client und den beiden Services die Methode write_viewable zur Verfügung.

class ImportService(importservice.Base):
    def process(self, file, result):
        # Datei-Typ z.B. TIFF, DOCX
        result.add_file(file)

    def post_process(self, record):
        record = self.client.jget("records/" + record["id"])
        # Vorschau-Datei herunterladen in ein lokales Verzeichnis
        self.write_viewable(record["attachments"][0], r"D:\Documents"))

In diesem Beispiel wird die verarbeitete PDF automatisch zum Vorgang hinzugefügt und anschließend wieder in ein lokales Verzeichnis heruntergeladen. Im Unterschied zu write_attachment wird hier die Vorschau-PDF-Datei heruntergeladen. Sollte keine Vorschau existieren, dann ist der Rückgabewert der Methode None und es wird kein Download gestartet.

Unterordner berücksichtigen

In der Hotfolder-Konfiguration wird nun eine neue Optionen Subdirectories angeboten. Sobald der Wert auf true gesetzt wird, aktiviert sich das Iterieren durch Unterordner. Analog zu Filemask und FilemaskExclusion können anhand mehrerer Regeln und Ausnahmen, Dateien während des Durchlaufs ausgeschlossen werden. Eine |-getrennte Liste SubdirectoriesExclusion ermöglicht diese Ausnahmen. In der hotfolder.ini können die Konfigurationen wie folgt aussehen:

Subdirectories = true
SubdirectoriesExclusion = Test/** | C:\Users\User\Import\ExclusionFolder | a/b/c

Verzeichnisse, die von der Hotfolder-Verarbeitung ausgeschlossen werden sollen, können entweder als absolute oder relative Pfade angegeben werden oder anhand einiger Platzhalterzeichen zu einem Wildcard-Ausdruck kombiniert werden. Relative Pfade werden relativ zum Hotfolder-Verzeichnis ausgewertet, Pfade oder Muster ausserhalb des Hotfolder-Verzeichnisses werden aussortiert.

Beispiel Verzeichnis-Struktur mit Dateien:

A/
├── file1.tiff
├── file2.txt
├── test.tiff
├── AB/
│   └── file3.txt
└── AC/
    └── test123.txt

Definition mit Beispielen basierend auf den Verzeichnissen:

Platzhalter *

Entspricht einer beliebigen Anzahl von Zeichen (einschließlich keiner Zeichen).

Beispiele:

  • *B schließt die Ordner „B“ und „AB“ oder prinizpiell alle Ordner, die auf „B“ enden, aus.

  • AC/* schließt direkte Unterverzeichnisse von Ordner „AC“ aus.

  • */AC schließt das Unterverzeichnis „AC“ aus, das unmittelbar unter dem Hotfolder-Verzeichnis liegt.

Platzhalter **

Ein rekursiver Platzhalter. Deckt eine unbegrenzte Anzahl an Elementen/Verzeichnissen ab.

Beispiel:

  • **/B schließt jeden Ordner aus, dessen Name „B“ ist, unabhängig von seiner Tiefe im Verzeichnisbaum.

Platzhalter ?

Entspricht genau einem (beliebigen) Zeichen.

Beispiele:

  • ?B schließt Ordner aus, dessen Name mit einem beliebigen Zeichen beginnt, gefolgt von „B“. In diesem Fall trifft es aus das Verzeichnis „AB“ zu.

Verarbeitete Dateien aus Unterverzeichnissen werden eins-zu-eins im _Completed-Ordner hinterlegt.

Beispiel:

  • Vor der Verarbeitung unter ./Import/OrdnerA/OrdnerAB/file3.txt

  • Nach der Verarbeitung unter ./Import/_Completed/test_20240101/OrdnerA/OrdnerAB/file3.txt

Im Import-Service können über die Liste self.subdirectory_exclusions weitere Ausnahmen hinzugefügt werden. Die pre_process-Methode eignet sich dafür, da die Verarbeitung hier noch nicht stattgefunden hat.

class ImportService(importservice.Base):
    def pre_process(self):
        # Unterordner als Ausnahmen, die in der Hotfolder-Verarbeitung übersprungen werden.
        self.subdirectory_exclusions.append("foo/*")

        absolute_path = os.path.join(self.hotfolder.directory, "a/b/a")
        self.subdirectory_exclusions.append(absolute_path)

on_smartindexing-Event in run_smartindexing

Sollte im Design-Formular eines Archivs ein on_smartindexing-Event konfiguriert sein, wird bei der Ausführung eines Hotfolders mit der Option Smartindexing = true dieses aufgerufen und bei der Vorgangs-Erstellung mitverarbeitet. Mit der Methode self.run_smartindexing aus dem Import-Service wird nun der Inhalt mit den aktualisierten Werten aus dem on_smartindexing-Event bereitgestellt.

Neue Variable $importservice bei on_save

Im on_save-Event steht nun eine zusätzliche Variable bereit:

$importservice

Ist true, wenn das on_save-Event für einen gerade neu angelegten oder einen bestehenden Vorgang aus dem Import-Service heraus ausgelöst wird, ansonsten false. Solange der Vorgang innerhalb der process-Methode erstellt oder aktualisiert wurde, gilt $importservice = true.

if $importservice and $new then
    _imported = "Neuer Vorgang über den Import-Service"
elseif $importservice and $update then
    _imported = "Aktualisierter Vorgang über den Import-Service"
end

Verschiedenes

  • In der Workflow-Aktionsroutine „STAR-Code“ wird jetzt der gleiche Code-Editor mit Syntax-Highlighting wie im Formular-Editor verwendet.

  • Im Vorgangsformular können die Sonnen-Icons von SmartIndexing durch einen neuen Button in der Toolbar (ebenfalls mit einer Sonne als Icon) aus- und wieder eingeblendet werden.

  • In der Dialogsuche werden in den Textfeldern nun existierende Werte vorgeschlagen.

  • Für die Standardspalten „Aufbewahrungsfrist“, „Löschdatum“ und „Mandant“ ist jetzt auch Multiedit möglich.

  • Untertabellen in Vorgängen verwenden den gesamten horizontal verfügbaren Platz, wenn kein Formular aktiv ist.

  • Die Empfänger-Einstellung „Aus Feldinhalt“ in der Workflow-Aktionsroutine „E-Mail versenden“ ist jetzt auch kompatibel mit dem Key-Value-Feld „Benutzer“.

  • Die Workflow-Aktionsroutine „Vorgang aus Postfach entfernen“ entfern keine Postfacheinträge für Termine mehr.

  • Sind in einer Untertabelle Pflichtfelder definiert (als „Pflichtfelder bei Statuswechsel“), so werden diese nun auch farblich hervorgehoben.

  • Geänderte Aufbewahrungsfristen oder Löschdaten eines Vorgang werden nun historisiert.

  • Analog zur Maximalhöhe kann im Formular-Designer eine Minimalhöhe für Untertabellen definiert werden.

  • Die verfügbaren Ressourcen in der Übersicht werden für eine kompaktere Darstellung nun als Tabelle angezeigt.

  • Als Benutzer mit einer einzigen Administrator-Rolle konnte man sich in der Rollenkonfiguration aus dieser entfernen und sich somit aus der Administrations-Oberfläche ausschließen. Das wird nun mit einer Fehlermeldung verhindert.

Hinweise

  • In On-Premises-Umgebungen wird der Elasticsearch-Dienst entfernt, da Elasticsearch nicht mehr als Abhängigkeit benötigt wird.