Literale Projektion
Projektion - Kurzfassung
Zweck: Gibt im Kontext einer Suche einen simplen Festwert zurück.
Eine Literale Projektion gibt im Kontext einer Suche einen Festwert zurück, der ausschließlich durch die Wert-Konfiguration für den Parameter Literal bestimmt ist.
Die Literale Projektion wird häufig (und oft auch mehrfach) im Kontext einer Textverkettungsprojektion verwendet, um statische Komponenten zu einem verketteten Text beizusteuern.
Konfiguration
Parameter |
Typ |
Beschreibung |
Name |
String |
Der optionale Parameter Name kann verwendet werden, um der Projektion einen (Alias-)Namen zuzuweisen.
|
Literal |
unbestimmt |
Die Wert-Konfiguration bestimmt einen Rückgabewert, der einmalig ermittelt wird und als Konstante in die Ausführung der Abfrage auf der Datenbank eingeht.
Per Standard wird ein Text-Wertauflöser (s. Statische Werte) vorgeschlagen, da die Rückgabe einer Zeichenfolge der häufigsten Verwendung für einen statischen Wert entspricht. Technisch können beliebige Wertauflöser (einzeln oder in Kombination, s. Verketteter Wertauflöser) verwendet werden, um ein Literal zu definieren. Allerdings eignen sich nicht alle Datentypen als Rückgabewert für ein Literal.
|
Beispiele
Typisches Beispiel: Textverkettung mit statischen Komponenten
Die Literale Projektion wird besonders häufig eingesetzt, um in einer Projektion einer CSV- oder Tupel-Suche Feldinhalte mit statischen Textzeichen in einer Textverkettungsprojektion zu verbinden.
Im folgenden Beispiel soll in einer Suche auf der Entität Orte ein Hinweis auf das "Bundesland" (state) eingeklammert an den Ortsnamen (placeName) angehängt werden.
Der Screenshot zeigt eine Textverkettungsprojektion mit vier Textkomponenten:
►HINWEIS◄ Alle verwendeten Projektionen verzichten hier auf eine Angabe für den Parameter Name. Effektiv wird deshalb der Spaltenname für die Textverkettungsprojektion wird daher systematisch aus den Standard-Namen für die verketteten Projektionen zusammengesetzt. Die Literale steuern dabei das komplette Literal bei. Laufzeitbeispiel: placeName (state) Neukirchen (Oberösterreich) |
|
Einfaches Beispiel: Nummernkreiswert ins Abfrageergebnis schreiben
Bei jedem Aufruf einer Suche soll über einen Nummernkreiswert-Wertauflöser eine eindeutige Zeichenfolge generiert werden, die einerseits den ausführenden Benutzer (Benutzer der Session) über seine ID (id) identifiziert und andererseits eine "Laufnummer" für die Anfrage enthält.
Konfiguration:
►HINWEIS◄ Damit eine Literale Projektion im Suchergebnis erscheinen kann, muss eine Tupel- oder CSV-Suche ausgeführt werden. Im Beispiel gehen wir von einer CSV-Suche für eine nicht näher bezeichnete Entität aus.
Der Screenshot zeigt drei Projektionen für die (CSV-)Suche, von denen die erste - eine Literale Projektion - aufgeklappt dargestellt ist:
Die weiteren Projektionen mit den (Alias-)Namen "Booking" und "Status" beinhalten die eigentliche Nutzlast unseres Abrufs. |
|
Laufzeitbeispiele:
Erster Abruf der CSV-Suche |
Späterer Abruf der CSV-Suche |
Search_ID,Booking,Status USR:1901#QRY:1000007,RE01230858,NEW |
Search_ID,Booking,Status USR:1901#QRY:1000009,RE01230859,NEW |
Der zweite Lauf ergibt im Vergleich zum ersten veränderte Statuswerte für einige Buchungen und eine zusätzliche neue Buchung.
Einfaches Beispiel: Einen Booleschen Wert "umcodieren" (z. B. in Klartext)
Über Felder mit Booleschen Werten können einer Entität qualitative Merkmale binär zu- oder abgesprochen werden. In einer direkten Projektion für so ein Feld erscheint dann jeweils ein Boolesche Wert (true/false), ohne dass beim Betrachten einer Ausgabezeile ersichtlich wäre, was dies konkret bedeuten soll.
Die "Lesbarkeit" der Daten in einem Suchergebnis kann dann gesteigert werden, indem anstelle des Booleschen Werts in jeder Ausgabezeile eine Textkennung zugeordnet wird, die das Vorhandensein oder Fehlen des ge-flag-ten Merkmal beschreibt.
Im folgenden sehr einfachen Fall soll der Status eines Benutzerkontos (s. Benutzer) anhand des Booleschen Felds "Aktiv" (active) in einer Projektion als Klartext "umcodiert" werden, sodass der Text "ACTIVE" oder "INACTIVE" erscheint.
Konfiguration:
►HINWEIS◄ Damit eine Literale Projektion im Suchergebnis erscheinen kann, muss eine Tupel- oder CSV-Suche ausgeführt werden. Im Beispiel gehen wir von einer CSV-Suche für die Entität "Benutzer" (User) aus.
Der Screenshot zeigt zwei Projektionen für die Ausgabe einer Liste von Benutzerkonten mit einem klar verständlichen Hinweis darauf, ob das jeweilige Konto aktiv ("ACTIVE") ist oder nicht ("INACTIVE"):
|
|
Laufzeitbeispiel:
Im Ergebnis der CSV-Suche zeigt die Spalte ACCOUNT_STATUS unmittelbar verständlich an, ob das jeweilige Konto aktiv ist oder nicht. Die Ausgabe von true/false wäre nur in Verbindung mit dem Spaltennamen verständlich. |
ACCOUNT_STATUS,ACCOUNT_NAME ACTIVE,mjmartinez123 |
Besondere Verwendung: Literale Projektion als Prüfwert in einer Feld Einschränkung
Konfiguration:
Der Screenshot zeigt die Konfiguration für die Einschränkung einer Eigenen Übersicht für Firmen auf der Grundlage einer ODER-Verknüpfung von zwei Instanzen der Feld Einschränkung:
|
|
ALTERNATIVE Konfiguration:
Die rechts dargestellte Konfiguration löst die Aufgabe gleichwertig allerdings noch etwas eleganter:
►ANMERKUNGEN◄ Über den Regelwert-Wertauflöser können nach diesem Schema beliebige Regeln in die Einschränkung einbezogen werden, was u. a. den Zugriff auf Zuordnungskriterien als Sub-Zuordnungskriterium ermöglicht. Allerdings ist zu berücksichtigen, dass die Rückgabewerte von Regeln auf diesem Weg nur als Konstante ins Spiel kommen, Sie können nicht auf Felder der gesuchten Entität angewendet oder in deren Kontext ausgewertet werden. Liefert dagegen z. B. eine Feldprojektion einen Prüfwert aus einem Bool-Feld der gesuchten Entität kann diesem ein Boolescher Vergleichswert aus einem Regelwert gegenübergestellt werden, ohne dass dieser (auf der rechten Seite im Vergleich) zu diesem Zweck in eine Literale Projektion "verpackt" werden müsste. |
|