Version 7.3.0

Wichtige Hinweise

Python-Upgrade

Python wurde auf Version 3.11 aktualisiert. Customisation-Skripte können daher nun auch Features aus dieser Version verwenden.

Key-Value-Felder

Datenfelder vom Typ „Text“ können nun mit speziellen Vorschlagsarten als Key-Value-Felder konfiguriert werden. Die Eigenschaft von Key-Value-Feldern ist, dass der in der Oberfläche angezeigte und der intern im Vorgang abgespeicherte Wert unterschiedlich und über die Vorschlagsquelle miteinander verknüpft sind.

Die neue Vorschlagsquelle „Benutzer“ ist ein solches Key-Value-Feld. In der Oberfläche wird eine Liste der Namen aller aktiven Benutzer zur Auswahl angezeigt. Beim Abspeichern wird jedoch die interne ID des Benutzers in der Datenbank hinterlegt. Wenn der Name des Benutzers anschließend in der Benutzer-Konfiguration geändert wird, spiegelt sich diese Änderung auch in den Vorgängen wider, da die Benutzer-ID als stabile Verknüpfung fungiert.

Verbesserte Fehlermeldung beim Löschen in der Administrations-Oberfläche

Das Verhalten des Löschens wurde in der Administrations-Oberfläche geändert. Zuvor wurde der „Löschen“-Knopf unter bestimmten Bedinungen deaktiviert (zum Beispiel, wenn sich das Archiv im produktiven Modus befand und Vorgänge enthielt). Nun ist die Schaltfläche immer aktiv. Wenn ein Datensatz nicht gelöscht werden kann, werden in einem Dialog die Gründe aufgelistet, warum das Löschen nicht möglich ist.

Verschlüsselung von Zugangsdaten in INI-Dateien

In der Datei settings.ini wurde die Datenbank-URL database in eine eigene Sektion Database verschoben. Diese Konfiguration wird beim Upgrade automatisch migriert.

Darüber hinaus wurden sensible Konfigurationsoptionen in bestimmten Abschnitten nun verschlüsselbar gemacht. Im Abschnitt Zusätzliche Verschlüsselung der Zugangsdaten wird dazu weiterführend erläutert.

Pflichtfeld-Steuerung bei Statusübergängen

Bei Statusübergängen besteht nun die Möglichkeit, Pflichtfelder zu steuern. In der Archiv-Konfiguration der Administrator-Oberfäche wird für jedes Datenfeld eine neue Sektion „Pflichtfelder bei Statuswechsel“ zur Verfügung gestellt. Mit dieser Option kann das Verhalten beim Wechsel des Status für jedes Datenfeld festgelegt werden. Diese Einstellung bewirkt, dass der ausgewählte Status nur verlassen werden kann, wenn das entsprechende Datenfeld einen Wert enthält. Die Pflichtfeldprüfung erfolgt dabei erst beim Statuswechsel, nicht beim Bearbeiten und Speichern des Vorgangs. Bei Standardtypen ist eine Pflichtfeldprüfung pro Status möglich. Bei Untertabellen kann dies wiederum für jede Spalte in der Tabelle und für jeden Status individuell konfiguriert werden.

Im Workflow-Designer besteht außerdem die Möglichkeit, für jede Workflow-Aktion in einem regelbasierten Workflow die Option „Pflichtfeldprüfung ignorieren“ zu aktivieren. Dadurch wird die Prüfung beim Wechsel von Status A auf B unterbunden.

Verbesserungen in STAR

String-Methoden

Das Update beinhaltet eine Erweiterung der String-Variablen, die nun eine Reihe von Methoden zur Abfrage von Eigenschaften oder zur Erzeugung veränderter Strings bieten. Hier ist ein Beispiel:

s = "test"
s = s.upper()

Die Verfügbaren Methoden sind im Abschnitt String-Methoden der STAR-Dokumentation beschrieben.

Index-Operator

Der neue Index-Operator ermöglicht die Extraktion eines Elements oder einer Teilsequenz (Slice) aus einem String. Dieser Operator wird im Abschnitt Index-Operator der STAR-Dokumentation beschrieben.

Iteratoren und Funktionen

Mit for-Schleifen ist es nun möglich, über Container oder Daten zu iterieren. Die Datenreihen der Untertabellen werden mittels table.enumerate() durchlaufen. Zusätzlich besteht die Möglichkeit, benutzerdefinierte Funktionen in einem Skript zu erstellen.

Iteration:

for idx in _table.enumerate() do
    sum = sum + _table.get(idx, 'amount')
end

Funktion:

function calculate(a, b, c=1)
    return (a + b) * c
end

print(calculate(1, 2))

Rückgabe-Wert und Abbruch

In einem STAR-Skript besteht nun die Möglichkeit, an einer bestimmten Stelle im Code auszusteigen. Hierfür wird das Schlüsselwort return verwendet. Beim Ausstiegspunkt werden alle bis dahin durchgeführten Änderungen übernommen, und es wird keine Fehlermeldung erzeugt.

betrag = lookup("test_tabelle", "netto_betrag", fallback=null, _name = "Mitarbeiter X")

if betrag > 1000 then
    return
end

Mit der Funktion abort bietet es sich an, ein STAR-Skript vorzeitig mit einer Fehlermeldung abzubrechen. Dabei kann der optionale Parameter message verwendet werden, um eine individuelle Fehlermeldung anzugeben. Falls kein eigener Text angegeben wird, wird standardmäßig die Fehlermeldung „Skript wurde durch die abort-Funktion abgebrochen.“ angezeigt.

name = lookup("firmen", "firma", fallback=null, _name="Meine Firma")

if name == null then
    abort("Firma konnte nicht gefunden werden.")
end

Postfacheinträge nach X Wochentagen zum Vertreter

In der Administrationsoberfläche, im Benutzerbereich unter der Sektion „Vetreter“, wurde nun die Möglichkeit hinzugefügt, Wochenenden bei der Weiterleitung zur Vertretung auszuschließen. Dadurch besteht nun die Option, Postfacheinträge entweder nach einer bestimmten Anzahl von Tagen ohne Bearbeitung oder nach einer bestimmten Anzahl von Arbeitstagen automatisch an den Vertreter weiterzuleiten. Bei der zweiten Option werden Wochenenden nicht berücksichtigt, wodurch sich die Zeit bis zur Weiterleitung ohne Bearbeitung im Vergleich zur vollen Woche verlängern kann.

Mandanten in SmartIndexing

Wenn die Mandantenfunktion in einem Archiv aktiviert ist, steht eine neue Konfigurationsoption zur Verfügung: „Mandantenspezifisches SmartIndexing“. Bei Aktivierung dieser Option wird das SmartIndexing im Archivieren-Dialog erst ausgeführt, sobald ein Mandant ausgewählt wird. Dadurch ist es möglich, das SmartIndexing unter Berücksichtigung einer Mandantenfilterung durchzuführen. Bei einem Wechsel des ausgewählten Mandanten wird das SmartIndexing erneut ausgeführt, um die Ergebnisse entsprechend für den neuen Mandanten zu aktualisieren.

Bei den beiden Eingangsrechnungsregeln „Kreditor“ und „Lieferant“ wird diese Mandantenfilterung angewendet. Wenn in der Lieferantendatentabelle eine Spalte mit dem Kurznamen client_identifier vorhanden ist (diese Spalte wird automatisch bei der Installation von Invoice 2.0 angelegt), liefern diese beiden SmartIndexing-Regeln nur Ergebnisse zurück, bei denen in dieser Spalte das Kürzel des ausgewählten Mandanten eingetragen ist. Dadurch wird gewährleistet, dass nur relevante Ergebnisse entsprechend dem ausgewählten Mandanten zurückgegeben werden.

Mandant bei SmartIndexing im Hotfolder

Die Methode self.run_smartindexing() des ImportServices wurde um einen zusätzlichen Parameter client vom Typ string erweitert. Dieser Parameter erwartet das Kürzel des Mandanten, um eine mandantenspezifische Smartindexing-Funktion auf Ebene des ImportServices auszuführen.

Wenn in einer INI-Datei sowohl Smartindexing=1 als auch eine Zuweisung Client=... festgelegt sind, wird beim Smartindexing ebenfalls auf den Mandanten geachtet.

Mehr dazu unter Zusätzliche Funktionen

Neuer SmartSafe

Der frühere SmartSafe, der eine vollständige Oberfläche enthielt, wurde durch ein neues Kommandozeilenprogramm ersetzt. Dieses Programm ermöglicht die strukturierte Synchronisierung eines oder mehrerer Archive in ein konfigurierbares Verzeichnis. Zusätzlich kann das Programm Excel-Dateien für eine übersichtliche Darstellung aller Vorgänge generieren.

Es werden sowohl die Vorgangsinformationen im JSON-Format als auch die Dokumente synchronisiert.

Mehr dazu im Kapitel SmartSafe des Handbuchs für die Administration.

Dynamische Datums-Filter

In einer Spaltensuche vom Typ „Abfrage“ bzw. in einem Filter eines gefilterten Archivs ist es nun möglich, bei Date- und Datetime-Spalten auf einen dynamisch berechneten Zeitpunkt relativ zum jeweils heutigen Tag zu filtern.

Der folgende Filter gibt alle Datensätze zurück, bei denen das Datum im Datenfeld _kuendbis zwischen heute und 14 Tagen in der Zukunft liegt:

_kuendbis >= <today> AND _kuendbis <= <date:+14d>

Das allgemeine Format zwischen den spitzen Klammern sieht folgendermaßen aus:

  1. date gefolgt von einem Doppelpunkt.

  2. + für ein Datum in der Zukunft oder - für ein Datum in der Vergangenheit.

  3. Eine Ganzzahl.

  4. Eine Einheit:

    • y für Jahre

    • m für Monate

    • w für Wochen

    • d für Tage

Beispiele:

  • <date:+7d>: Das Datum in 7 Tagen.

  • <date:-1m>: Das Datum vor 1 Monat.

  • <date:+3w>: Das Datum in 3 Wochen.

  • <date:-2y>: Das Datum vor 2 Jahren.

Bitte beachten, dass zwischen den spitzen Klammern keine Leerzeichen erlaubt sind. Das berechnete Datum ist jeweils relativ zum heutigen Tag.

Der folgende Filter liefert alle Vorgänge zurück, die in den letzten drei Monaten archiviert worden sind:

creation_date >= <date:-3m>

Invoice 2.0

Die Business-Lösung Invoice wurde auf Version 2.0 aktualisiert. Die Änderungen führen zu folgenden Erweiterungen und Konfigurationsmöglichkeiten:

  • Mandantentrennung

  • Verwaltung von Steuerschlüsseln

  • Anpassungen im Workflow

  • Neue Spalten für Sachkontoname und Kostenstellenname in Kontierung

  • Neues Feld für Export-Fehlermeldungen

  • Dublettenprüfung

Mit der neuen Version sind in der Archiv-Konfiguration Mandanten standardmäßig aktiviert. Das bedeutet, dass bei der Installation der App automatisch ein Platzhalter-Mandant erstellt wird und dem Administrator zugewiesen wird, falls kein aktiver Mandant vorhanden ist. Der Administrator kann dann weitere Einstellungen und Zuweisungen vornehmen. Wenn ein oder mehrere Mandanten vorhanden sind, werden die neu eingerichteten Business-Archive allen Mandanten zugeordnet.

Verschiedenes

  • Wertzuweisungen in der STAR-Sprache werden nun validiert.

  • Beim Abspeichern von Datenfeldern mit einem Vorschlagsfilter in Kombination mit der Einstellung „Nur Werte aus der Vorschlagsliste zulassen“ wird serverseitig validiert, ob der übermittelte Wert dem Vorschlagsfilter entspricht.

  • Der Postfach-Betreff wird nun beim Einfügen eines Vorgangs ins Postfach berechnet und Änderungen des Postfach-Betreffs in den Archiv-Einstellungen wirken sich nicht mehr auf bereits existierende Postfach-Einträge aus.

  • Im Formular-Editor können die Reihenfolge der Tabs durch Drag & Drop geändert werden.

  • In der SmartIndexing-Regel „USt-IdNr“ ist es nun möglich, eine „eigene USt-IdNr“ zu hinterlegen, damit diese beim Ausführen der SmartIndexing-Regel ignoriert werden kann.

  • In Bedingungen von Workflow-Übergängen kann nun auch auf Untertabellen-Werte zugegriffen werden, indem die gleiche Syntax wie in STAR-Code verwendet wird.

  • In Untertabellen können mehrere Werte gleichzeitig ausgewählt und gelöscht werden.

  • Im Formular-Editor kann das Formular mit der Tastenkombination „Strg + S“ abgespeichert werden.