Fallback-Wert / Bindings
Allgemeines
Ein Binding ist die Verbindung von Datenquelle und Konsument. Die Datenquelle wird in der Binding-Notation angegeben (s. Syntax von Binding-Strings). Bindings können an verschiedenen Stellen in Intrexx definiert werden. Sie werden davon abhängig auch an verschiedenen Stellen im XML eingetragen. Bindings können wie folgt eingesetzt werden:
als Anzeigewert von Elementen
als Vorgabewert von Elementen
in Filtern
in Velocity
in Groovy
Hier wird z.B. bei einem Eingabefeld im Eigenschaftendialog unter "Binding" ein Datenfeld-Binding bei neuen Datensätzen als Vorgabe definiert.
Hier das entsprechende XML:
<textcontrol guid="5758A9C9EC60A724AC85B3CAE8F2EA28B23EFE45" name="textcontrol30057DD4" inputlength="255" label="false" readonly="false" rect="100,45,250,20" required="false" source="container['7338AC8FD8B5B5C39DBB2AD2F456529DD84A233A'].dataField['D6F55F095F2E5A5570EAB98A8773B0E2F193FBA1']">
<property>
<title de="Titel" en="Title"/>
</property>
<defaultvalue record="new" source="container['7338AC8FD8B5B5C39DBB2AD2F456529DD84A233A'].dataField['8860BBDFB02E3E9E43940D63A4A64A0AACAEF2DC']" sourceType="binding"/>
</textcontrol>
Datenfeld
Container
Wählen Sie hier den gewünschten Container aus, in dem das Datenfeld enthalten ist, dessen Wert als Fallback-Wert verwendet werden soll.
Datenfeld
Wählen Sie hier das gewünschte Datenfeld aus.
Session / Request / Verarbeitungskontext
Session / Request / Verarbeitungskontext
Tragen Sie hier jeweils den Namen des Requestparameters, der Sessionvariable bzw. der Variable aus dem Verabeitungskontext ein.
Statischer Wert
Statischer Wert
Tragen Sie hier einen statischen Wert ein. Dabei kann eine beliebige Zeichenfolge verwendet werden, solange sie zum verlangten Datentyp passt. Wenn z.B. ein Integerwert verlangt wird, kann "123" übergeben werden, nicht aber "ABC". Bei Kontrollkästchen kann hier als statischer Wert die Einstellung "Ausgewählt" aktiviert bzw. deaktiviert werden, je nachdem, ob das Kontrollkästchen beim Laden der Seite im Browser bereits ausgewählt sein soll oder nicht.
Velocity
Velocity
Hier kann Velocity-Skript eingetragen werden, das den Fallback-Wert liefert. Velocity kann bei Seiten-Parametern nur rudimentär eingesetzt werden. Objekte wie $DC, $drRecord stehen an dieser Stelle nicht zur Verfügung, if/else-Konstrukte können verwendet werden.
Neue GUID
Mit dieser Option wird automatische eine GUID erzeugt, die als Fallback-Wert verwendet wird.
Sprache
Bei der Sprache kann zwischen "Standardsprache des Portals" und "Kontextabhängige Sprache" gewählt werden. Die kontextabhängige Sprache ergibt sich über die Kette
- rq_lang/cookie_lang
- Standardsprache des eingeloggten Benutzers
- Standardsprache des Portals
Aktueller Benutzer
Aktueller Benutzer
Hier kann ein Datenfeld aus dem Modul "Benutzer" ausgewählt werden.
Systemdatengruppe
Applikation
Wählen Sie hier die Applikation aus, die die gewünschte Systemdatengruppe enthält.
Datenfeld
Wählen Sie hier das Datenfeld aus.
Parameter
Parameter
Wählen Sie hier den gewünschten Parameter aus, dessen Fallbackwerte verwendet werden sollen. Zur Auswahl stehen alle Parameter der aktuellen Seite.
Parameter (Application API)
Im API-Umfeld können hier API-Parameter für den Vergleich ausgewählt werden.
Datum & Zeit
Ist ein Datenfeld mit Kontrolltyp "Datum & Zeit", "Datum" oder "Zeit" als Anzeigewert ausgewählt, so kann hier das Datum angepasst werden. Alle Informationen zu den Einstellungen finden Sie hier.
Automatische Erhöhung
Ist ein Datenfeld mit Kontrolltyp "Ganzzahl" ausgewählt, so kann mit dieser Option ein Zähler eingerichtet werden. Bei der Anlage eines neuen Datensatzes wird dann der zuletzt erfasste Wert automatisch um 1 erhöht. Dieser neue Wert wird als Vorgabe verwendet.
Baum
Diese Option steht nur für Sprünge im Element "Baum Ansicht" zur Verfügung.
Wert des aktuellen Baumknotens
Als Wert können der Primärschlüssel, die Knoten-ID, Eltern-Knoten-ID oder der Titel für den aktuellen Baumknoten ausgewählt werden. Der Wert "Knoten-ID" ist ein kommaseparierter Wert, zusammengesetzt aus dem Schlüssel, dem übergeordneten Schlüssel und der Sortierung. Der Wert "Eltern-Knoten-ID" entspricht dem übergeordneten Schlüssel. Der Wert "Titel" ist der Titel des aktuellen Knotens.
Termin
Diese Option ist nur bei Kalender-Plugins wählbar. Hier sind alle Daten wählbar, die in den Plugin-Eigenschaften auf dem Reiter "Allgemein" definiert sind.
Ressource
Diese Option ist nur bei Kalender-Plugins wählbar, wenn auf dem Reiter "Optionen" die Einstellung "Ressourcendarstellung ermöglichen" gesetzt ist. Zur Auswahl stehen die Datenfelder, die auf dem Reiter "Optionen" als Titelfeld, Sortierfeld, Gruppierungsfeld oder Bild ausgewählt sind.
Ressource
Wählen Sie hier das gewünschte Ressourcen-Datenfeld aus.
Aktuelle Datengruppe
Diese Option ist nur wählbar, wenn kein ReadContainer unterstützt wird, wie z.B. in Prozessen.
Datenfeld
Wählen Sie hier das gewünschte Datenfeld aus.
Weitere
Hier können Bindings verwendet werden, die nicht mit den übrigen Optionen im Dialog abgedeckt sind.
Weitere
Tragen Sie hier das gewünschte Binding ein.
Bindings
Syntax von Binding-Strings
bindingType
bindingType['guid|name']
bindingType["guid|name"]
bindingType.guid
bindingType.name
bindingType['guid|name'].guid
bindingType["guid|name"].name
bindingType['guid|name'].subtype['guid|name']
bindingType["guid|name"].subtype["guid|name"]
bindingType["guid|name"].subtype["guid|name"].name
...
Nicht alle Bindings sind in jedem Kontext verfügbar.
compatibility
Wird für die Kompatibilität zu "alten" rq_RecId-Werten, die als Parameter verwendet wurden, eingesetzt (Intrexx Version 18.03). Ggfs. nach Patchvorgang vorhanden, sollte nicht selbst geschrieben werden.
compatibility.primaryKey
compatibility.primaryKey['name']
compatibility.foreignKey
compatibility.foreignKey['name']
compatibility.primaryOrForeignKey
compatibility.primaryOrForeignKey['name']
container
Liefert den Wert eines Read- oder WriteContainers. Dieses Binding kann mit der Option Datenfeld definiert werden. Es kann auch als Wert für die Option Weitere mit der folgenden Syntax eingetragen werden:
container['GUID|NAME'].dataField['GUID|NAME']
container['GUID|NAME'].member['GUID|NAME']
container['GUID|NAME'].recordOwner (The value of record owner field)
container['GUID|NAME'].userId (The value of userid field)
container['GUID|NAME'].key (The value of the single primary key)
container['GUID|NAME'].primaryKey (The value of the single primary key)
container['GUID|NAME'].key['GUID|NAME'] (The value of the primary key with the GUID or name)
container['GUID|NAME'].primaryKey['GUID|NAME'] (The value of the primary key with the GUID or name)
container['GUID|NAME'].foreignKey['GUID|NAME'] (The value of the foreign key with the GUID or name)
container['GUID|NAME'].foreignKey (The value of the single foreign key)
container['GUID|NAME'].combinedKey (The value of the single primary key or a formated Key string like "LID= 1, LANG= de")
container['GUID|NAME'].combinedPrimaryKey (The value of the single primary key or a formated Key string like "LID= 1, LANG= de")
container['GUID|NAME'].combinedForeignKey (The value of the single foreign key or a formated Key string like "LID= 1, LANG= de")
control
Liefert den Wert einer Kontrolle. Dieses Binding kann als Wert der Option Weitere mit der folgenden Syntax eingetragen werden:
control['GUID']
control['NAME']
control.guid['CONTROLGUID']
control.name['CONTROLNAME']
control.sysIdent['SYSIDENT']
currentDate
Liefert das aktuelle Datum ohne Uhrzeit.
currentDate
currentDate['Y,M,D']
currentDate[+1,2,-3] Adjust current date: Year +1, month = 2, day -3
Y=(|[+-]?\d+)
M=(|[+-]?\d+)
D=(|[+-]?\d+)
Rules definition: See p_adjust in de.uplanet.util.CalendarUtil.modifyCalendar(T, String p_adjust, boolean)
currentDatetime
Liefert das aktuelle Datum mit Uhrzeit.
currentDatetime
currentDatetime.%TIMEZONE%
currentDatetime['Y,M,D,H,m,S']
currentDatetime[+1,2,-3,2, +2, 0] Adjust current date: Year +1, month = 2, day -3, hour=3,min+2,sec=0
Y=(|[+-]?\d+)
M=(|[+-]?\d+)
D=(|[+-]?\d+)
H=(|[+-]?\d+)
m=(|[+-]?\d+)
S=(|[+-]?\d+)
currentDatetime['Y,M,D,H,m,S'].%TIMEZONE%
Rules definition: See p_adjust in de.uplanet.util.CalendarUtil.modifyCalendar(T, String p_adjust, boolean)
%TIMEZONE% muss dabei eine gültige Zeitzonen-ID (wie z.B. UTC) sein.
currentTime
Liefert die aktuelle Uhrzeit.
currentTime
currentTime['H,m,S']
currentTime[+1,2,-3] Adjust current date: Hour +1, minute = 2, second -3
H=(|[+-]?\d+)
m=(|[+-]?\d+)
S=(|[+-]?\d+)
Rules definition: See p_adjust in de.uplanet.util.CalendarUtil.modifyCalendar(T, String p_adjust, boolean)
currentUser
Liefert den aktuellen Benutzer.
currentUser[FIELDGUID|NAME]
Ersetzen Sie "NAME" mit dem Bean name.
recId
Liefert einen Wert von "alten" rq_RecId oder qs_RecId-Argumenten mit dem Format: "LID= 1; LANG= de" (Intrexx Version 18.03). Dieses Binding wird aus Kompatibilitätsgründen verwendet und sollte nicht selbst geschrieben werden.
recId['LID'](gets the LID value out of the rec id string )
recId['LANG'](gets the LANG value out of the rec id string )
request
Dieses Binding kann mit der Option Request definiert werden. Es kann auch als Wert für die Option Weitere mit der folgenden Syntax eingetragen werden:
request['name']
sharedState
Dieses Binding kann mit der Option Verarbeitungskontext definiert werden. Es kann auch als Wert für die Option Weitere mit der folgenden Syntax eingetragen werden:
sharedState['name']
session
Dieses Binding kann mit der Option Session definiert werden. Es kann auch als Wert für die Option Weitere mit der folgenden Syntax eingetragen werden:
session['variable name']
staticText
Liefert statischen Text.
staticText['TEXT'] => TEXT will be returned
systemDataGroup
Liefert den Wert eines Datenfeldes aus einer Systemdatengruppe aus der aktuellen oder einer bestimmten Applikation.
systemDataGroup['APP_GUID'].dataField['FIELD_GUID']
target.argument, parameter
Liefert einen Parameterwert.target.argument[''] kann mit der Option Parameter definiert werden. Wird ein Binding selbst mit der Option Weitere erstellt, wird in der Regel eher "parameter['']" verwendet, da diese Schreibweise intuitiver ist und das Schlüsselwort "parameter" auch im Velocity- und Groovyumfeld verwendet wird.
parameter['NAME']
target.argument['NAME']
uniqueId
Erzeugt eine Zufallszahl.
uniqueId
uniqueGuid
Erzeugt eine GUID.
uniqueGuid
velocity
Liefert den Velocity-Text des Bindings. Es wird dabei versucht, den Text zu interpretieren. Dieses Binding kann als Wert der Option Velocity mit der folgenden Syntax eingetragen werden:
velocity['TEXT'] => The interpreted velocity TEXT will be returned
Wert auflösen
Zeitpunkt zum Auflösen des Wertes
Falls möglich, kann hier der Zeitpunkt zum Auflösen des Wertes beim Laden der aktuellen Seite oder beim Laden der Zielseite konfiguriert werden.
Weitere Informationen
Parameter - eine Übersicht
Parameter, Fallback- und semantische Werte erstellen