Such-Verknüpfung

Bei der Such-Verknüpfung handelt es sich um einen Einschränkungstyp der dazu dient, Boolesche Rückgabewerte aus anderen Einschränkungen logisch zu verknüpfen.

Die Such-Verknüpfung wird beim Konfigurieren von Einschränkungen in Lobster Data Platform / Orchestration in den folgenden Fällen benötigt:

Anwendungsfall

Logik

Beispiel

UND-Verknüpfung
(Konjunktion)
von mindestens zwei Einschränkungen

Die UND-Verknüpfung liefert genau dann true als Rückgabewert, wenn alle verknüpften Einschränkungen den Rückgabewert true liefern.

Alternative Definition:

Die UND-Verknüpfung liefert genau dann false als Rückgabewert, wenn mindestens eine der verknüpften Einschränkungen den Rückgabewert false liefern.


Im grafischen Editor (s. rechts) erscheinen die Einschränkungen innerhalb einer UND-Verknüpfung übereinander angeordnet.

Die Anordnung visualisiert, dass das Ergebnis Regel bestanden nur erreicht wird, wenn alle Einschränkungen von oben nach unten (also mit dem Teilergebnis "Regel bestanden") durchlaufen werden.

Das Nicht-Bestehen einer einzigen der verknüpften Einschränkungen bewirkt eine Abzweigung nach rechts zum Gesamtergebnis Regel nicht bestanden.

images/download/attachments/162410197/image-2024-1-12_10-8-4-version-1-modificationdate-1705050484713-api-v2.png Diese Such-Verknüpfung gilt für Entitäten als bestanden, deren active-Feld den Wert true enthält UND deren ownerId den Wert 1066 enthält.

ODER-Verknüpfung
(Disjunktion)
von mindestens zwei Einschränkungen

Die ODER-Verknüpfung liefert genau dann true als Rückgabewert, wenn mindestens eine der verknüpften Einschränkungen den Rückgabewert true liefert.

Alternative Definition:

Die ODER-Verknüpfung liefert genau dann false als Rückgabewert, wenn alle verknüpften Einschränkungen den Rückgabewert false liefern.


Im grafischen Editor (s. rechts) erscheinen die Einschränkungen innerhalb einer ODER-Verknüpfung nebeneinander angeordnet.

Die Anordnung visualisiert, dass das Ergebnis Regel nicht bestanden nur erreicht wird, wenn alle Einschränkungen von links nach rechts (also mit dem Teilergebnis "Regel nicht bestanden") durchlaufen werden.

Das Bestehen einer einzigen der verknüpften Einschränkungen führt nach unten Gesamtergebnis Regel bestanden.

images/download/attachments/162410197/image-2024-1-12_10-15-15-version-1-modificationdate-1705050915102-api-v2.png

Diese Such-Verknüpfung gilt für Entitäten als bestanden, deren active-Feld den Wert true enthält ODER deren ownerId den Wert 1066 enthält.

Verneinung
(Negation)
einer Einschränkung

Der Rückgabewert einer Einschränkung kann "verneint" - also "logisch umgekehrt" - werden. Die "Verneinung" liefert also true anstelle von false und umgekehrt.

WICHTIG◄ Technisch sieht Lobster Data Platform / Orchestration die Negation von Einschränkungen nur für den Einschränkungstyp Such-Verknüpfung vor. Alle anderen Typen von Einschränkungen können nur indirekt verneint werden, indem sie innerhalb einer verneinten Such-Verknüpfung eingesetzt werden.


Im grafischen Editor wird die Verneinung durch das Symbol ( ! ) am unteren Rand der Such-Verknüpfung gekennzeichnet. Zusätzlich erscheint das Textzeichen "!" auch als Präfix vor dem Verknüpfungstyp in der Titelzeile der Such-Verknüpfung (im Bild rechts: "!UND")

images/download/attachments/162410197/image-2024-1-12_10-33-13-version-1-modificationdate-1705051993644-api-v2.png Diese Such-Verknüpfung gilt für Entitäten als bestanden, für die die Projektion ownerId NICHT den Wert 1066 liefert - also entweder keinen Wert ($null) oder einen anderen Wert.

Konfiguration

Der Editor für Einschränkungen orientiert sich am Regeleditor hinsichtlich Mimik und Funktion, wenn es um den Aufbau von logischen Aggregaten geht.

Den Regeln (s. Regeln und Werte) im Regeleditor entsprechen dabei die Einschränkungen. Die Such-Verknüpfung entspricht der Verknüpfung (RuleJunction) für Regeln.

Eine Such-Verknüpfung (SearchJunction) wird automatisch erzeugt, wenn dies zum Hinzufügen einer Einschränkung oder einer Verneinung zu einer bestehenden Konfiguration erforderlich ist.

Technisch verfügt eine Such-Verknüpfung, (bzw. der Entitätstyp SearchJunction) über folgende Eigenschaften:

Feld

Datentyp

Verwendung

Erforderliche Ausdrücke
requiredExpressions

Object[]

Das Feld "Erforderliche Ausdrücke" dient dazu die Einschränkungen aufzulisten, die Gegenstand der Such-Verknüpfung sind.

Diese Liste kann eine beliebige Anzahl von Instanzen beliebiger Einschränkungstypen enthalten, also auch weitere Instanzen der Such-Verknüpfung.

Verknüpfungstyp
junction

Verknüpfungstyp
(JunctionType)

Die statische Aufzählung "Verknüpfungstyp" (JunctionType) stellt genau zwei Optionen bereit:

  • UND (CONJUNCTION) → UND-Verknüpfung (Details s. oben)

  • ODER (DISJUNCTION) → ODER-Verknüpfung (Details s. oben)

nicht
not

Boolean

Wenn dem Kennzeichen "nicht" (not) der Boolean-Wert true zugewiesen ist, wird der Rückgabewert aus der Verknüpfung "verneint".
Als Standardwert gilt false (keine Verneinung).

Der technische Aufbau der Such-Verknüpfung ist nur relevant, wenn eine Such-Verknüpfung per Automatisierung aufgebaut, verändert oder "gelesen" werden soll oder wenn die interaktive Funktion "Als XML editieren" für Manipulationen an einer Such-Verknüpfung verwendet wird.

Die folgende Tabelle zeigt dagegen typische interaktive Konfigurationsoperationen für die Such-Verknüpfung schematisch an sehr einfachen Beispielen. Mit diesen Operationen können durch Verschachteln beliebig komplexe logische Aggregate aufgebaut werden.

Ausgangssituation

images/external_images/confluence.lobster.de_8443/scroll-exporter-virtual-download/twemoji/34-20e3.svg a ODER-Verknüpfung einrichten

images/external_images/confluence.lobster.de_8443/scroll-exporter-virtual-download/twemoji/35-20e3.svg a - Ergebnis

images/external_images/confluence.lobster.de_8443/scroll-exporter-virtual-download/twemoji/36-20e3.svg a+b: Umkehrung

Zur Definition einer Einschränkung dient in den diversen Editoren immer ein Parameter für eine Wert-Konfguration, dessen Name je Kontext unterschiedlich lauten kann (z. B. "Bedingung" oder "Einschränkung").

Im Abfragekonfigurator betrifft dies z. B. den Wert für die Bedingung innerhalb der konfigurierten Suche:


images/external_images/confluence.lobster.de_8443/scroll-exporter-virtual-download/twemoji/31-20e3.svgKeine Einschränkung angelegt

images/download/attachments/162410197/image-2024-1-12_14-14-54-version-1-modificationdate-1705065295041-api-v2.png


images/external_images/confluence.lobster.de_8443/scroll-exporter-virtual-download/twemoji/32-20e3.svgKlick auf das Menüsymbol eröffnet Kontextmenü
images/download/attachments/162410197/image-2024-1-12_15-37-8-version-1-modificationdate-1705070228770-api-v2.png


images/external_images/confluence.lobster.de_8443/scroll-exporter-virtual-download/twemoji/33-20e3.svgPer Auswahl wird als Wert eine Instanz des ausgewählten Einschränkungstyps hinzugefügt:

images/download/attachments/162410197/image-2024-1-12_15-44-32-version-1-modificationdate-1705070672677-api-v2.png

ANMERKUNG◄ Auf eine konkrete Konfiguration für die hinzugefügte Einfache Feld-Einschränkung wird hier bewusst verzichtet. Für die nachfolgenden alternativen Schritte (s. images/external_images/confluence.lobster.de_8443/scroll-exporter-virtual-download/twemoji/34-20e3.svg abc) ist nur wichtig, dass bereits eine beliebige Einschränkung vorliegt.



images/download/attachments/162410197/image-2024-1-12_11-58-13-version-1-modificationdate-1705057093456-api-v2.png Ein Klick auf eine der OR-Rauten, die bei Mauszeiger-Annäherung rechts oder links an jeder Einschränkung erscheinen, öffnet ein Kontextmenü, zum Auswählen des hinzuzufügenden Einschränkungstyps oder Einfügen einer kopierten oder ausgeschnittenen Einschränkung aus der Zwischenablage.

images/download/attachments/162410197/image-2024-1-12_11-59-1-version-1-modificationdate-1705057141964-api-v2.png

Die Kontextmenüoptionen "Ausschneiden" oder "Entfernen" löschen bestehende Einschränkungen aus einer Konfiguration.

Enthält eine Such-Verknüpfung, die nicht verneint ist (s. images/external_images/confluence.lobster.de_8443/scroll-exporter-virtual-download/twemoji/35-20e3.svg c), danach nur noch genau eine Einschränkung, dann verschwindet die umgebende Such-Verknüpfung automatisch wieder aus der Konfiguration, weil sie nicht mehr benötigt wird.

images/external_images/confluence.lobster.de_8443/scroll-exporter-virtual-download/twemoji/34-20e3.svg b UND-Verknüpfung einrichten

images/external_images/confluence.lobster.de_8443/scroll-exporter-virtual-download/twemoji/35-20e3.svg b - Ergebnis

images/download/attachments/162410197/image-2024-1-12_11-59-53-version-1-modificationdate-1705057193180-api-v2.png

Ein Klick auf eine der AND-Rauten, die bei Mauszeiger-Annäherung oben oder unten an jeder Einschränkung erscheinen, öffnet ein Kontextmenü, zum Auswählen des hinzuzufügenden Einschränkungstyps oder Einfügen einer kopierten oder ausgeschnittenen Einschränkung aus der Zwischenablage.

images/download/attachments/162410197/image-2024-1-12_12-0-45-version-1-modificationdate-1705057245552-api-v2.png

images/external_images/confluence.lobster.de_8443/scroll-exporter-virtual-download/twemoji/34-20e3.svg c nicht (Verneinung) auswählen

images/external_images/confluence.lobster.de_8443/scroll-exporter-virtual-download/twemoji/35-20e3.svg c - Ergebnis

images/external_images/confluence.lobster.de_8443/scroll-exporter-virtual-download/twemoji/36-20e3.svg c Umkehrung

images/download/attachments/162410197/image-2024-1-12_16-59-15-version-1-modificationdate-1705075155282-api-v2.png

images/download/attachments/162410197/image-2024-1-12_17-5-31-version-1-modificationdate-1705075532015-api-v2.png


Durch die Auswahl der Option nicht in Schritt images/external_images/confluence.lobster.de_8443/scroll-exporter-virtual-download/twemoji/34-20e3.svg c wurde hier an der Position der ursprünglichen Einschränkung automatisch eine verneinte Such-Verknüpfung (mit Typ UND) erzeugt, die die ursprüngliche Einschränkung enthält. Das passiert nur, wenn es sich bei der ursprünglichen Einschränkung nicht um eine Such-Verknüpfung handelt.

Die als Träger der anzuwendenden Verneinung erzeugte Such-Verknüpfung verschwindet nicht automatisch wieder, wenn die Menüfunktion "nicht" erneut eingesetzt wird:

  • Wird "nicht" im Kontextmenü für die bereits verneinte Instanz der Such-Verknüpfung erneut ausgewählt, dann verschwindet zwar die Verneinung, aber die Such-Verknüpfung bleibt erhalten, obwohl sie nur eine Einschränkung enthält.

  • Wird "nicht" erneut für die ursprüngliche Einschränkung (hier: die Einfache Feld-Einschränkung) ausgewählt, wird eine zusätzliche Such-Verknüpfung erzeugt.

Zum ursprüngliche Zustand kann man nur zurückkehren, indem man für die Einfache Feld-Einschränkung "Ausschneiden" wählt, um sie nach dem Entfernen der Such-Verknüpfung wieder einfügen zu können.

WICHTIG◄ Jede Instanz der Such-Verknüpfung stellt ihrerseits eine Einschränkung dar, die in einer übergeordneten Such-Verknüpfung mit anderen Einschränkungen verknüpft oder verneint werden kann.

Im Abfragekonfigurator steht zum Konfigurieren der "Bedingung" außerdem eine Baumansicht zu Verfügung, in der die hier beschriebenen Operationen teilweise auch ausgeführt werden können.
HINWEIS◄ Die Option "nicht" zum Verneinen steht über die Baumansicht allerdings nicht zur Verfügung, sondern nur im Editor. Allerdings kann für eine im Baum ausgewählte Instanz der Such-Verknüpfung die Verneinung auf über die Funktion Als XML editieren verändert werden.

Beispiel

Eine Suche für Firmen soll Firmenkonten auflisten, ...

  • ... denen im Feld "Firmentypen" (types) der Firmentyp "Rechnungsempfänger" (INV) zugeordnet ist ...

    • ... ODER für die im Feld "Übergeordnete Firmen" (parentCompanies) keine übergeordnete Firma angegeben ist ...

  • ... UND für die nicht der Benutzer der Session als "Ersteller" (creatorId) registriert ist.

Konfiguration:

Die Bedingung der Suche kann mit den oben beschriebenen Konfigurationsoperationen wie unten dargestellt aufgebaut werden.

images/download/attachments/162410197/image-2024-1-12_18-24-30-version-1-modificationdate-1705080270867-api-v2.png

Die Baumansicht im Abfragekonfigurator verdeutlicht den hierarchischen Aufbau dieser Bedingung:

Auf der obersten Ebene der "Bedingung" findet man eine Instanz der Such-Verknüpfung mit dem Typ "UND", die zwei "Erforderliche Ausdrücke" verknüpft:

images/download/attachments/162410197/image-2024-1-12_18-39-29-version-1-modificationdate-1705081170020-api-v2.png