Tupel Suche (Formulardesigner)

Die Verhaltensweise Tupel Suche (Formulardesigner) führt eine konfigurierbare Tupel-Suche in der Lobster Data Platform / Orchestration-Datenbank aus (s. a. Such API) und übergibt die resultierenden Daten als Datenservice an die Aktionen bei "wahr". Dieser Datenservice definiert Spalten, die den Projektionen der Tupel Suche entsprechen.

images/download/attachments/189432335/image-2024-10-2_8-41-57-version-1-modificationdate-1727851317362-api-v2.png

  • Der Button Suche konfigurieren öffnet einen Dialog zum Konfigurieren der Suche.

  • Mit der Option Liefere erstes Ergebnis wird als Suchergebnis nur der erste Treffer (sofern vorhanden) zurückgegeben, ohne die Option eine Liste mit allen Treffern.

  • Die Parameter Index von erstem Ergebnis und Seitengröße werden als Berechnungsausdrücke ausgewertet und dienen in erster Linie dazu Ergebnisse dynamisch einzugrenzen. Ein klassicher Anwendungsfall ist beispielsweise das Umsetzen eines Datenpagings.
    Diese beiden Parameter sind jeweils optional und überschreiben, wenn gegeben, die statischen Angaben "Erstes Ergebnis" und "Maximale Ergebnisse" in der Suchkonfiguration.
    Tipp: Der an die Aktionen weitergegebene Datenprovider beinhaltet ein Datenfeld namens serverOverallCount, welches die Gesamtzahl der Ergebnisse ohne Einschränkung beinhaltet.

Wird mit dieser Verhaltensweise ein Element verknüpft, stehen dessen Daten als "Eingabeobjekt" direkt zur Verfügung. Mit einem "Objektfeld" Wertauflöser kann folglich direkt auf die Felder des Eingabeobjektes zugegriffen werden. Ist das Eingabeobjekt von einem bekannten Typ, lässt sich dieser zur Konfigurationshilfe in der Auswahlbox oben (Eingabetyp) einstellen.
Zusätzlich sind sämtliche Felder des übergebenen Objektes als gleichnamige Variablen zugreifbar.

►WICHTIG◄ Falls das verknüpfte Element zur Laufzeit nicht validiert werden kann (s. Element validieren und Validierer), etwa weil Pflichtfelder nicht ausgefüllt sind, unterbleibt die Suche und die Aktionen bei "falsch" werden ausgeführt. Für die Aktionen steht der "nicht valide" Bearbeitungsstand der Elementdaten des verknüpften Elements zur Verfügung. Sofern dieses nicht auf ein Datenfeld verweist, können das auch Daten einer übergeordneten Ebene bis hin zum Formular sein.

Beispiel für die Verwendung von Variablen zum Zugriff auf Daten des verknüpften Elements

In einem Portal sollen die Treffer aus einer Tupel-Suche in einem Datengrid erscheinen. Die Suche soll eine Eingabe in einem Textfeld (hier: "ID") als Parameter verwenden, um über einer geeignete Bedingung "passende" Datensätze zu identifizieren.

images/download/attachments/189432335/image2018-5-24_12_26_10-version-1-modificationdate-1727851309437-api-v2.png

  • Im Formular wird ein Zeilenlayout-Container "Suchparameter" mit dem Datenfeld searchParams verwendet, dem das Textfeld "ID" und ggf. weitere Suchparameter untergeordnet werden.

  • Dem Feld "ID" wird das Datenfeld searchId zugewiesen.

Dies ergibt folgende Datenstruktur für den Containers "Suchparameter":

JSON-Format für den Suchparametercontainer
{
searchId: 0
}

Für das Textfeld "ID" wird als Eingabebeschränkung "Große Ganzzahl (Long)" gewählt, da dieser Wert später in der Tupel-Suche mit Objekt-IDs verglichen werden soll, die den Datentyp long verwenden.

Der Button Suchen löst beim Anklicken das Tupel Suche (Formulardesigner)-Verhalten aus. In dessen Konfiguration ist der Zeilenlayout-Container "Suchparameter" als Element verknüpft. Zur Laufzeit wird daraufhin der im Textfeld "ID" eingegebene Wert für das Datenfeld searchId über eine Variable mit dem Namen searchId an die Such API übergeben:

images/download/attachments/189432335/image2020-3-27_8-59-11-version-1-modificationdate-1727851309376-api-v2.png

Die Konfiguration der Tupel-Suche selbst ermöglicht der Dialog, der über den Button Suche konfigurieren geöffnet wird:

images/download/attachments/189432335/image2018-5-24_13_49_51-version-1-modificationdate-1727851309430-api-v2.png

  • Zunächst wird unter Entität der Objekttyp ausgewählt, nach dem gesucht werden soll. Hier sollen Benutzer-Objekte gesucht werden.

  • Als Projektionen (im Bild nur links im Baum zu erkennen) wurde hier passend zum Datengrid die beiden Felder "Benutzername" (username) und "ID" (id) des Benutzer-Objekts ausgewählt.

  • Im Bild ist die Konfiguration für die Bedingung aufgeklappt, wo eine Feld Einschränkung für das Feld "ID" eine vollständige Übereinstimmung ("==") mit dem Wert der Variable searchId als Kriterium definiert.

images/download/attachments/189432335/image-2024-10-24_9-38-49-version-1-modificationdate-1729755528818-api-v2.png

Unter Aktionen bei "wahr" wird eine Grid: Füllen Aktion konfiguriert, die als Zielelement das Datengrid "Suchergebnis" verwendet, um die von der Tupel Suche (Formulardesigner) gelieferten Treffer anzuzeigen.

Dazu müssen die Spalten im Datengrid auf Datenfelder verweisen, deren Name zu den Projektionen der Suche passt. Nicht alle Projektionen müssen im Datengrid auch verwendet werden.

►ANMERKUNG◄ Da die Feld Einschränkung im Beispiel einen exakten Treffer für die eindeutige id des Benutzer-Objekts definiert, sollte in der bestehenden Konfiguration maximal ein Treffer im Datengrid erscheinen, sofern überhaupt Lesezugriff für das "gesuchte" Benutzerkonto besteht.