Ist leer

images/download/attachments/201668058/image-2025-4-8_15-1-58-version-1-modificationdate-1744117317766-api-v2.png

Der Ist leer-Vergleichstyp prüft, ob der als Prüfwert (Wert-Konfiguration) definierte Wert als "leer" gilt.

Als "leer" gelten folgende Werte:

Prüfwert

in JSON-Notation

Datentyp

Bedeutung

null

n/a

Kein Wert

""
String

leere Zeichenfolge

[]
List, Set, Array

leere "Liste"

Konfiguration

Die Wert-Konfiguration für den Prüfwert ist für den Ist leer-Vergleichstyp nicht optional.

Beispiele

Ein Adressmerkmal auf "gefüllt" prüfen

Ein Zuordnungskriterium (s. Zuordnungskriterien) soll genau dann zutreffen, wenn das Feld "Kontonummer" (accNumber) in der Adresse einer Firma mit einer beliebigen Zeichenfolge (außer "") ausgefüllt ist.

Konfiguration:

Das Zuordnungskriterium (s. Bild rechts) verwendet zwei Regeln in einer UND-Verknüpfung:

  • Die einleitende Typprüfung stellt sicher, dass als Bezugsobjekt ein Geschäftsobjekt des Typs "Firmenkonto" (s. Firmen) vorliegt. Die folgende Regel wird nur geprüft, wenn dies der Fall ist.

  • Die Wert-Konfiguration für den Prüfwert in der Objekt-Feld-Regel greift zunächst über einen Objekt-Feld-Wertauflöser auf die Firmenadresse (address) zu.

    • Der verkettete zweite Objekt-Feld-Wertauflöser liest innerhalb der Adresse das Feld "Kontonummer" (accNumber), also das zu prüfende Feld.

  • Der Ist leer-Vergleichstyp wird hier verneint (s. not (Vergleichstyp) eingesetzt, was der Text "Nicht ( ... )" in Verbindung mit der Angabe des Vergleichstyps signalisiert.

HINWEIS◄ Der Ist leer-Vergleich gilt in diesem Kontext als bestanden, wenn sich das Firmenkonto nicht auf eine Adresse bezieht oder die referenzierte Adresse nicht über eine "Kontonummer" (accNumber) verfügt oder dem betreffenden Feld (z. B. per Schnittstelle/Automatisierung) eine leere Zeichenfolge ("") zugeordnet wurde.

images/download/attachments/201668058/image-2025-4-8_15-15-55-version-1-modificationdate-1744118154975-api-v2.png

Ergebnisse einer Suche auswerten

Nach dem Ausführen einer Suche (Ereignisaktion) (Ereignisaktion) in einer Ereignisbehandlung (s. Ereignisbehandlungen) soll eine Fallunterscheidung prüfen, ob die in eine Variable geschriebene "Ergebnisliste" leer ist. Hat die Suche Treffer geliefert, soll eine Warnung ausgegeben werden.

Konfiguration:

Die einleitende Suche (Ereignisaktion) betrifft Konten für Gastbenutzer, die im Erfolgsfall als Liste in die Variable special_guests geschrieben werden. Auf weitere Details zur Suche sie hier verzichtet.

Die rechts dargestellte Wenn Dann Sonst-Ereignisaktion realisiert die Fallunterscheidung über eine Objekt-Feld-Regel mit dem Ist leer-Vergleichstyp:

  • Als Prüfwert dient die Variable special_guest, die von der Suche (Ereignisaktion) mit einer Liste von Entitäten mit dem Typ "Gastbenutzer" (GuestUser) befüllt wird, sofern die dort konfigurierten Suchkriterien Treffern liefern. Ist dies nicht der Fall, dann gibt die Suche (Ereignisaktion) eine leere Liste ([]) zurück.

  • Wurde keine special_guests gefunden, sind keine Maßnahmen vorgesehen. Der DANN-Zweig unterhalb der Regel enthält deshalb keine Ereignisaktionen.

  • Für den SONST-Zweig (rechts) ist keine weitere Bedingung definiert. Im Aktionsblock findet sich die Hinweis anzeigen-Ereignisaktion, die eine Warnung erzeugt, wenn special guests gefunden wurden.

images/download/attachments/201668058/image-2025-4-8_15-45-1-version-1-modificationdate-1744119900761-api-v2.png

ANMERKUNG◄ Man könnte den Ist leer-Vergleichstyp per not (Vergleichstyp) verneinen und die Hinweis anzeigen-Ereignisaktion im DANN-Zweig unterhalb anordnen. Dann kann auf den SONST-Zweig komplett verzichtet werden und die Konfiguration wirkt "schlanker". Allerdings empfinden viele Anwender die hier gewählte Variante ohne Verneinung, bei der der "Regelfall" (hier: Ist leer) im DANN-Zweig und der "Sonderfall" im SONST-Zweig gehandhabt wird, als transparenter und intuitiver, auch wenn sie etwas mehr Platz beansprucht.

Erfolgskontrolle für eine Typumwandlung

Falls beim Hinzufügen eines bestimmten Arbeitsstatus für eine Entitätstyp Sendung noch keine Angabe für das Feld "Internationale Handelsklauseln" vorliegt, soll im Kontext einer Ereignisbehandlung eine entsprechende Angabe vom Benutzer über den Benutzereingabe-Wertauflöser abgefragt werden.

Der Benutzereingabe-Wertauflöser unterstützt zwar nur die Eingabe von Freitext, so dass kein Dropdown mit Bezug zur Dynamischen Aufzählung Internationale Handelsklauseln angeboten werden kann. Allerdings werden die Handelsklauseln üblicherweise durch dreistellige Buchstabenkombinationen gekennzeichnet, die einfach manuell eingegeben werden können.

Im Anschluss an die Eingabe soll allerdings anhand der Dynamischen Aufzählung Internationale Handelsklauseln überprüft werden, ob der eingegebene Buchstabencode dem internen Namen eines dort angelegten Eintrags entspricht. Anderenfalls soll die Transaktion mit einer Fehlermeldung abgebrochen werden.

Konfiguration:

In einer Ereignisbehandlung, die auf den relevanten Arbeitsstatuswechsel reagiert (s. Arbeitsstatus (Ereignisse)), wird die rechts per Ausführen mit-Ereignisaktion zusammengefasste Konfiguration verwendet:

  • Als abweichendes Bezugsobjekt für den Kontext der Ausführen mit-Ereignisaktion wird der Text aus dem Benutzereingabe-Wertauflöser festgelegt, der per Wertauflöserkette durch den Trim- und den In Großbuchstaben-Wertauflöser aufbereitet wird.

  • Im Aktionsblock prüft die Bedingung einer Wenn Dann Sonst-Ereignisaktion, ob die eingegebene Buchstabenkombination als Name (name) eines Werts der Dynamischen Aufzählung Internationale Handelsklauseln entspricht. Nur bei einem exakten Treffer gibt der Eingabeobjekt (Typsicher)-Wertauflöser diesen Aufzählungswert zurück. Sonst: "Kein Wert" ($null). Der Erfolg des "Nachschlagens" in der Dynamischen Aufzählung kann im Kontext einer Objekt-Feld-Regel kann daher einfach mit dem Ist leer-Vergleichstyp überprüft werden.

    HINWEIS◄ Der verkettete Wert als Variable speichern-Wertauflöser speichert den umgewandelten Aufzählungswert (sofern vorhanden) in der Variable inco für die spätere Zuweisung im Erfolgsfall (ganz unten).

  • Als einzige Aktion (im DANN-Zweig der Fallunterscheidung) wird unterhalb eine Abbrechen-Ereignisaktion ausgeführt, in deren Meldungstext der eingegebene Text als Parameter verwendet werden kann. Dies bewirkt per Rollback auch, dass der Arbeitsstatuswechsel verhindert wird.

HINWEIS◄ Die Setze Wert-Ereignisaktion (unten) wird nur ausgeführt, wenn kein Abbruch erfolgt. Dann wird der aus der Benutzereingabe abgeleitete Aufzählungswert in der Variable inco dem entsprechenden Feld der Sendung zugewiesen.

ANMERKUNG◄ Wir setzen hier voraus, dass das Feld für "Internationale Handelsklauseln" (incoterm) bereits in der Prüfenden Regel der Ereignisbehandlung auf den Zustand "leer" geprüft wurde, so dass der Benutzer nur befragt wird, wenn noch keine Angabe vorliegt.

images/download/attachments/201668058/image-2025-4-8_15-54-31-version-1-modificationdate-1744120470977-api-v2.png

Laufzeitbeispiel:

images/download/attachments/201668058/image-2025-4-9_7-32-57-version-1-modificationdate-1744176776785-api-v2.png

ANMERKUNGDie Eingabe "FCA" (für "Frei Frachtführer", en: Free Carrier) hätte funktioniert, sofern diese Option in der Dynamischen Aufzählung für Internationale Handelsklauseln existiert.

Negativkriterium für eine Liste

Ein Zuordnungskriterium (s. Zuordnungskriterien) soll für einen Benutzer (s. Benutzer) genau dann als bestanden gelten, wenn die Liste im Feld "Rollen" (roles) keine Rolle beinhaltet, deren Name die Zeichenfolge "admin" (ohne Beachtung der Groß-/Kleinschreibung) enthält.

Konfiguration:

Das Zuordnungskriterium verknüpft zwei Regeln in einer UND-Verknüpfung:

  • Die einleitende Typprüfung stellt sicher, dass als Eingabewert ein Benutzer (s. Benutzer) vorliegt. Nur dann wird die zweite Regel ausgewertet.

  • Die Überprüfung der "Rollen"-Liste des Benutzers erfolgt in zwei Stufen:

    • Die äußere Objekt-Feld-Regel verwendet den Ist leer-Vergleichstyp. Sie soll bestanden werden, wenn die Auswertung der Rollen des Benutzers keinen Treffer für das Negativkriterium enthält.

    • Die zugehörige Wert-Konfiguration zielt darauf ab mit dem Regel-Listen Resolver eine im Sinne des Kriteriums "kritische" Rolle zu finden. Ist dessen Rückgabewert "leer", ist keine "kritische" Rolle zugeordnet und das Zuordnungskriterium gilt als bestanden.

    • Die Basis für die Suche bildet eine Liste aller dem Benutzer zugeordneten Rollen,. Diese muss ausgehend von der Liste der Rollen-IDs im Feld "Rollen" (roles) durch einen Sammle Werte-Wertauflöser generiert werden, um die Auswertung durch den verketteten Regel-Listen Resolver zu ermöglichen. Der Wert zum Sammeln ist dabei die komplette Rolle, die ausgehend vom Listeneintrag (Long-Wert als Referenz auf die ID der Rolle) über den Eingabeobjekt (Typsicher)-Wertauflöser "aufgelöst" wird.

    • Der verkettete Regel-Listen Resolver wertet für die als Eingabewert übergebene Liste von Rollen ((Rolle[]) die innere Objekt-Feld-Regel aus, die mit dem Enthält-Vergleichstyp prüft, ob das Feld "Rollenname" (roleName) der Rolle den Text "admin" enthält. Im Prüfwert (links) wird dabei durch denn verketteten In Kleinbuchstaben-Wertauflöser sichergestellt, dass dieser String-Vergleich indifferent für Groß-/Kleinschreibung zutrifft.

images/download/attachments/201668058/image-2025-4-8_16-6-31-version-1-modificationdate-1744121191222-api-v2.png

ANMERKUNG◄ Selbst wenn die Option Alle Werte als Liste im Regel-Listen Resolver gesetzt würde, etwa um eine Liste aller kritischen Rollen(namen) in eine Variable zu speichern, gibt der Regel-Listen Resolver "Kein Wert" ($null) und nicht eine leere Liste ([]) zurück, wenn kein Rollenname wie *admin* gefunden wird. Der Ist leer-Vergleichstyp unterscheidet diese beiden Fälle ohnehin nicht.

HINWEIS◄ Auf eine Behandlung des Sonderfalls, dass das Feld "Rollen" (roles) keine einzige Rolle zuordnet, wird hier verzichtet, da ein Benutzerkonto nicht ohne Zuordnung einer Rolle gespeichert werden kann.