Hotfix zur docuvita Release Version 26.2

In der docuvita Version 26.2 ist eine neue, sichere und performante Engine für die Prüfung von Bedingungsausdrücken enthalten. Hierbei handelt es sich um eine Komponente, die in Workflows, Importstrecken und anderen Automatisierungen genutzt wird, um Fallunterscheidungen zu treffen und Formeln auszuwerten. Nun gab es erste Rückmeldungen aus dem Praxiseinsatz dieser Version, weshalb wir uns heute mit der Bereitstellung eines Hotfixes melden. Der Hotfix zur Version 26.2 steht ab sofort im Partnerportal zum Download bereit.

Die Version weist gegenüber der ursprünglichen 26.2 folgende Korrekturen und Neuerungen auf:

Wenn-Dann-Sonst-Ausdrücke (Ternary Operators)
In der vorherigen Engine wurden Bedingungsausdrücke der Form „Wenn-Dann-Sonst“ unterstützt. Wir haben diese Funktion in der neuen Engine nun nachgerüstet. Die Ausdrücke werden wie folgt angewendet:

Bedingung ? WertBeiErfüllt : WertBeiNichtErfüllt

Erläuterung:
Die Bedingung wird ausgewertet. Ist sie erfüllt, wird der Wert nach dem ? verwendet. Ist sie nicht erfüllt, wird der Wert nach dem : verwendet.

Beispiel:
@@BETRAG@@ > 100000 ? „Großauftrag“ : „Standardauftrag“
Ist der Betrag größer als 100000, wird „Großauftrag“ zurückgegeben.
Andernfalls wird „Standardauftrag“ zurückgegeben.

in-Operator
Zusätzlich bietet der Hotfix einen neuen Operator, mit dem geprüft werden kann, ob ein Ausdruck in einer Liste vorkommt. Das Schema ist:

Wert in (Listenelement1, Listenelement2, …)

Erläuterung:
Es wird geprüft, ob der Wert in der Liste vorkommt, d.h. einem der Listenelemente entspricht.

Beispiel:
@@BELEGART@@ in („RE“, „LS“, „GU“)
true, wenn @@BELEGART@@ den Wert „RE“, „LS“ oder „GU“ hat.
false, wenn ein anderer Wert vorliegt.

Typischer Anwendungsfall:
Mehrere mögliche Werte prüfen, ohne viele einzelne Vergleiche mit ODER zu verknüpfen.

Statt:
@@BELEGART@@ == „RE“ OR @@BELEGART@@ == „LS“ OR @@BELEGART@@ == „GU“
kann geschrieben werden:
@@BELEGART@@ in („RE“, „LS“, „GU“)

is-Operator
Mit dem neuen is-Operator können Datentyp-Vergleiche gemacht werden. Es sind nur die innerhalb der Engine zulässigen (sicheren) Datentypen zulässig. Das Schema ist:

Wert is Datentyp

Erläuterung:
Es wird geprüft, ob der Wert dem Datentyp entspricht oder nicht.

Beispiel:
@@BELEGART@@ is string
true, wenn @@BELEGART@@ ein Textwert (String) ist.
false, wenn ein anderer Datentyp vorliegt.

Korrektes Handling von @@-Werten in Zeichenketten/Strings
Kamen die von docuvita als Identifizerungsmerkmal für Variablen bzw. Ersetzungswerte genutzten Zeichen „@@“ innerhalb von Ausdrücken vor, so wurden diese bei der Formelauswertung entfernt. Das Verhalten wurde korrigiert, sodass nun nur noch @@-Werte bei der tatsächlichen Wertersetzung von Variablen ersetzt werden, nicht mehr wenn sie im normalen Inhalt vorkommen.