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 |
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. |
|
ODER-Verknüpfung |
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. |
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 |
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") |
|
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 |
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 |
Verknüpfungstyp |
Die statische Aufzählung "Verknüpfungstyp" (JunctionType) stellt genau zwei Optionen bereit:
|
nicht |
Boolean |
Wenn dem Kennzeichen "nicht" (not) der Boolean-Wert true zugewiesen ist, wird der Rückgabewert aus der Verknüpfung "verneint". |
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 |
→ |
→ |
← |
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:
►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. |
|
|
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. |
→ |
→ |
||
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. |
|
||
→ |
→ |
← |
|
|
Durch die Auswahl der Option nicht in Schritt |
Die als Träger der anzuwendenden Verneinung erzeugte Such-Verknüpfung verschwindet nicht automatisch wieder, wenn die Menüfunktion "nicht" erneut eingesetzt wird:
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.
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:
|
|