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:

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

  1. rq_lang/cookie_lang
  2. Standardsprache des eingeloggten Benutzers
  3. 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