Die folgenden Funktionen stehen im Standard zur Verfügung. Applikationen können auch Expression Eigene Funktionen bereitstellen.
Namespace
Es ist immer notwendig den Namespace der Funktion anzugeben. Dieser wird mit Punkt (.) verknüpft.
Die Ausnahme ist der Global Namespace. Dieser kann weggelassen werden. Zum Beispiel sind Global.EndOfTime() und EndOfTime() äquivalent.
Typen-Umwandlung
Die Angegebenen Rückgabe-Werte der Funktionen sind fixiert. Jedoch werden Parameter-Typen u.U. umgewandelt in den entsprechend angegeben Typ.
Zum Beispiel:
Wenn ein String als Parameter erwartet wird und ein DateTime übergeben wird. Dann wird zuerst das DateTime automatisch in einen String umgewandelt. z.B. in "2022-10-22 12:00:00".
Wenn ein Int als Parameter erwartet wird und ein String übergeben wird, z.B. "Hello". Dann kann keine automatische Konvertierung erfolgen und es kommt zu einem Fehler.
Für ein besseres Verständnis werden einige Operatoren als Funktionen zur Verfügung gestellt. Diese sind hier aufgelistet. Weitere Operatoren finden Sie unter Expression Operatoren.
Formats a DateTime or TimeSpan to a String according the format.
value: A DateTime or TimeSpan
format: A format string or constant. Use the functions below for formatting according to the system standard. See a list of format options here: Custom date and time format strings - .NET
Format(Ereignis.Start, "dddd dd.MM.yyyy")
= "Sonntag 01.08.2021"
ShortTimeFormat(): String
Corresponds to t; formats to e.g. 06:30
-
Format(Now(), ShortTimeFormat())
oder
Now() => ShortDateFormat()
LongTimeFormat(): String
Corresponds to T; formats to e.g. 06:30:00
-
Format(Now(), ShortTimeFormat())
oder
Now() => ShortDateFormat()
ShortDateFormat(): String
Corresponds to d; formats to e.g. 10.04.2008
-
Format(Today(), ShortDateFormat())
oder
Today() => ShortDateFormat()
LongDateFormat(): String
Corresponds to D; formats to e.g. Thursday, 10 April 2008
-
Format(Today(), LongDateFormat())
oder
Today() => LongDateFormat()
System
Die folgenden Funktionen stehen im System namespace zur Verfügung.
Funktion
Namespace System
Beschreibung
Parameter
Funktion
Namespace System
Beschreibung
Parameter
CreateGuid(String): Guid
creates a Guid from the given parameter
Die folgenden Funktionen stehen im Global namespace zur Verfügung.
Funktion
Namespace Global
Beschreibung
Parameter
Funktion
Namespace Global
Beschreibung
Parameter
Format(value, formatString): String
Formats the given value into the formatString
If(boolean, object, object): void
Tests the first argument, returning the second if true and the third if false
The Format function is relatively limited. Applications are encouraged to use the Expression Text Formatierung instead.
String
Die folgenden Funktionen stehen im String Namespace zur Verfügung.
Funktion
Namespace String
Beschreibung
Parameter
Funktion
Namespace String
Beschreibung
Parameter
Trim(text): String
Entfernt führende und folgende (White-) Spaces Zeichen von text
text: String
substring(text, startIndex [, laenge])
Kopiert Text ab der Position startIndex aus text mit der optionalen Länge laenge
text: String startIndex: Int laenge: Int (optional)
replace(text, suchText, ersatzText)
Entfernt in text alle Vorkommnisse von suchText mit ersatzText
text: String sucheText: String ersatzText: String
tolower(text)
Konvertiert alle Zeichen in text zu Kleinbuchstaben
text: String
toupper(text)
Konvertiert alle Zeichen in text zu Grossbuchstaben.
text: String
length(text)
Die Anzahl Zeichen in text
text: String
left(text, laenge)
Kopiert die ersten laenge Zeichen aus text von links.
text: String laenge: Int
right(text, laenge)
Kopiert die letzten laenge Zeichen aus text von von rechts.
text: String laenge: Int
chr(zahl)
Gibt das Zeichen mit der Nummer zahl zurück.
zahl: Int
TAB()
Text bestehend aus dem Tab-Zeichen
-
CR()
Text bestehend aus dem CarriageReturn -Zeichen
-
LF()
Text bestehend aus dem LineFeed-Zeichen
-
CRLF()
Text bestehend aus dem CarriageReturn- und LineFeed-Zeichen
-
Math
Die folgenden Funktionen stehen im Math Namespace zur Verfügung.
Funktion
Namespace Math
Beschreibung
Parameter
Funktion
Namespace Math
Beschreibung
Parameter
ceiling(value): result
Rundet value auf die nächst höhere Ganzzahl auf. Unterstützte Datentypen: double, decimal
floor(value): result
Rundet value auf die nächst tiefere Ganzzahl ab. Unterstützte Datentypen: double, decimal
round(value, granularity = 1): result
Rundet value mathematisch auf oder ab. Die Genauigkeit wird durch granularity bestimmt. So rundet “0.05” einen Betrag auf 5 Rappen genau. Falls der Parameter weggelassen wird wird auf eine Ganzzahl gerundet.
Unterstützte Datentypen: double, decimal
min(value1, value2): result
Bestimmt das Minimum der beiden Parameter. Unterstützte Datentypen: double, decimal, byte, short, int, long
max(value1, value2): result
Bestimmt das Maximum der beiden Parameter. Unterstützte Datentypen: double, decimal, byte, short, int, long
Data
Die folgenden Funktionen stehen im this namespace zur Verfügung.
Funktion
Namespace this
Beschreibung
Parameter
Funktion
Namespace this
Beschreibung
Parameter
Persisted(): Boolean
Gibt zurück ob das aktuelle Objekt gespeichert wurde.
Gets a value indicating whether the current object has been stored.
Deleted(): Boolean
Gibt zurück ob das aktuelle Objekt gelöscht wurde.
Gets a value indicating whether the current object has been deleted.
ValuesChanged(): Boolean
Gibt zurück ob das aktuelle Objekt geändert wurde seitdem es geladen wurde.
Edited(): Boolean
Gets a value indicating whether the object is considered to have been changed (some UX will want to consider an object not to have been edited even though some fields have changed).
MetaClass(): string
Gibt den Namen der MetaClass für das aktuelle Objekt zurück.
SetValue(Property, Value): bool
Setzt den Wert des Property mit dem mitgegebenen Value.
Property: Property Referenz oder string um die Property zu identifizieren.
Value: Wert der gesetzt werden soll.
GetValue(Property): Object
Gibt den aktuellen Wert eines Properties zurück.
Property: Property Referenz oder string um die Property zu identifizieren.
User
Die folgenden Funktionen stehen im User namespace zur Verfügung:
Funktion
Namespace User
Beschreibung
Parameter
Funktion
Namespace User
Beschreibung
Parameter
IsInRole(Role: String): Boolean
Gibt an ob der aktuelle Benutzer die angegebene Rolle besitzt.
Role: String Der Wert der Rolle, die im Administrationsmenü konfiguriert ist. Siehe Benutzerverwaltung.
IsCurrentlyInRole(Roles: String): Boolean
Gibt an, ob der aktuelle Benutzer gerade im Kontext einer der angegebenen Rollen ist.
Note: Entspricht CurrentContext.Role() (mit der zusätzlichen Möglichkeit, mehrere Rollen anzugeben).
Roles: String Rollen (Komma-separiert), auf die geprüft werden soll
Id(): Guid
Die Id des aktuellen Benutzers.
Claim(clainName: string)
Zugriff auf die Claims des aktuellen Users.
claimName: string Der Name des Claims.
Language
Die folgenden Funktionen stehen im Language namespace zur Verfügung:
Funktion
Namespace Language
Beschreibung
Parameter
Funktion
Namespace Language
Beschreibung
Parameter
Current(): String
Gibt die aktuelle Sprache des Benutzers zurück. z.B. “de-CH” oder “de”
Translate(Translationkey: String): String
Gibt die Übersetzung für den mitgegebenen Übersetzungsschlüssel zurück. Die Sprache des aktuellen Benutzers wird gewählt zur Übersetzung.
Der Breakpoint Namespace stellt Funktionen zur Layout-Steuerung bereit:
Funktion
Namespace Breakpoint
Beschreibung
Parameter
Funktion
Namespace Breakpoint
Beschreibung
Parameter
IsDesktop(): Boolean
Gibt zurück, ob aktuell das Desktop-Layout angezeigt wird.
IsTablet(): Boolean
Gibt zurück, ob aktuell das Tablet-Layout angezeigt wird.
IsPhone(): Boolean
Gibt zurück, ob aktuell das Phone-Layout angezeigt wird.
CurrentContext
Der Context eines Benutzer beschreibt die aktuell aktive Rolle welche ausgewählt/aktiv ist. Ein User kann mehrere Rollenzuweisungen haben - jedoch im Context nur jeweils eine Rolle aktiv haben.
Die folgenden Funktionen stehen im CurrentContext namespace zur Verfügung:
Funktion
Namespace CurrentContext
Beschreibung
Parameter
Funktion
Namespace CurrentContext
Beschreibung
Parameter
Id(): Any
Gibt die aktuelle Id des Context des Users zurück. Wird z.B. auf eine Person in der User-Role Zuweisung verwiesen so wird die Id der Person zurückgegeben.
Class(): String
Gibt die Klasse des aktuellen Context zurück. z.B. “Person”.
Role(): String
Gibt die Rolle des aktuellen Context zurück. z.B. “Administrator”
CurrentScope
Der Scope eines Benutzer schränkt alle Anfragen auf diesen Scope ein
Die folgenden Funktionen stehen im CurrentScope namespace zur Verfügung:
Funktion
Namespace CurrentScope
Beschreibung
Parameter
Funktion
Namespace CurrentScope
Beschreibung
Parameter
Scope(): String
Gibt den aktuellen Scope zurück
Aggregation
Die folgenden Funktionen stehen im Aggregation namespace zur Verfügung:
Funktion
Namespace Aggregation
v9 Namespace Relation
Beschreibung
Parameter
Funktion
Namespace Aggregation
v9 Namespace Relation
Beschreibung
Parameter
Count(Relation/Klasse: string): Int
Wenn mit einer Klasse ausgeführt wird beim Count die Anzahlt der vorhandenen Einträge in der Tabelle ermittelt.
Wird eine Relation eingesetzt so wird versucht diese im aktuellen Kontext zu evaluieren und das Resultat anhand der verbundenen Objekte berechnet.
Relation/Klasse: string Name der Klasse oder Name der Relation. Anhand des Namens wird bestimmt ob es sich in diesem Kontext um eine Klasse oder Relation handelt. Falls der Name nicht eindeutig ist sollte die Funktion mit einem zusätzlichen Parameter verwendet werden.
Count(Relation/Klasse: string, IsRelation: bool): Int
Siehe Count()
Relation/Klasse: string Name der Klasse oder Name der Relation. Anhand des Namens wird bestimmt ob es sich in diesem Kontext um eine Klasse oder Relation handelt.
IsRelation: bool auf true gesetzt wird exklusiv nur nach Relationen gesucht. Wenn dieser auf false ist wird versucht die entsprechende Klasse zu finden.
Count(Relation/Klasse: string, Filter: string): Int
Siehe Count()
Relation/Klasse: string Name der Klasse oder Name der Relation. Anhand des Namens wird bestimmt ob es sich in diesem Kontext um eine Klasse oder Relation handelt.
Filter: string Der Filter kann das Resultat weiter verfeinern. z.B. können nur aktive Personen gewählt werden. Der string muss eine gültige Expressions beinhalten die im Kontext der Klasse interpretiert werden kann.
Count(Relation/Klasse: string, Filter: string, IsRelation: bool): Int
Siehe Count()
Relation/Klasse: string Name der Klasse oder Name der Relation. Anhand des Namens wird bestimmt ob es sich in diesem Kontext um eine Klasse oder Relation handelt.
Filter: string Der Filter kann das Resultat weiter verfeinern. z.B. können nur aktive Personen gewählt werden. Der string muss eine gültige Expressions beinhalten die im Kontext der Klasse interpretiert werden kann.
IsRelation: bool auf true gesetzt wird exklusiv nur nach Relationen gesucht. Wenn dieser auf false ist wird versucht die entsprechende Klasse zu finden.
Exists(Relation/Klasse: string): bool
Exists() Gibt zurück ob mindestens ein passender Eintrag vorhanden ist.
Wird eine Relation eingesetzt so wird versucht diese im aktuellen Kontext zu evaluieren und das Resultat anhand der verbundenen Objekte berechnet.
Relation/Klasse: string Name der Klasse oder Name der Relation. Anhand des Namens wird bestimmt ob es sich in diesem Kontext um eine Klasse oder Relation handelt. Falls der Name nicht eindeutig ist sollte die Methode mit einem zusätzlichen Parameter verwendet werden.
Relation/Klasse: string Name der Klasse oder Name der Relation. Anhand des Namens wird bestimmt ob es sich in diesem Kontext um eine Klasse oder Relation handelt.
IsRelation: bool auf true gesetzt wird exklusiv nur nach Relationen gesucht. Wenn dieser auf false ist wird versucht die entsprechende Klasse zu finden.
Relation/Klasse: string Name der Klasse oder Name der Relation. Anhand des Namens wird bestimmt ob es sich in diesem Kontext um eine Klasse oder Relation handelt.
Filter: string Der Filter kann das Resultat weiter verfeinern. z.B. können nur aktive Personen gewählt werden. Der string muss eine gültige Expressions beinhalten die im Kontext der Klasse interpretiert werden kann.
Relation/Klasse: string Name der Klasse oder Name der Relation. Anhand des Namens wird bestimmt ob es sich in diesem Kontext um eine Klasse oder Relation handelt.
Filter: string Der Filter kann das Resultat weiter verfeinern. z.B. können nur aktive Personen gewählt werden. Der string muss eine gültige Expressions beinhalten die im Kontext der Klasse interpretiert werden kann.
IsRelation: bool auf true gesetzt wird exklusiv nur nach Relationen gesucht. Wenn dieser auf false ist wird versucht die entsprechende Klasse zu finden.
Holt einen Wert aus einer Property von einer spezifischen Entität welche über einen Filter eingeschränkt wird.
Relation/Klasse: string Name der Klasse oder Name der Relation. Anhand des Namens wird bestimmt ob es sich in diesem Kontext um eine Klasse oder Relation handelt.
Filter: string Der Filter kann das Resultat weiter verfeinern. z.B. können nur aktive Personen gewählt werden. Der string muss eine gültige Expressions beinhalten die im Kontext der Klasse interpretiert werden kann.
Selector: string Der dritte Parameter gibt den Pfad zur Property an welche zurückgegeben werden soll falls ein Resultat gefunden wird.
Reduziert eine Relation welche auf mehrere Objekte zeigt zu einer einzigen Zeichenfolge. z.B. Fabrizio Niedda, Remo von Ballmoos, Daniel Graf
Relation: string Name der Relation welche reduziert werden soll.
Filter: string Der Filter kann das Resultat weiter verfeinern. z.B. können nur aktive Personen gewählt werden. Der string muss eine gültige Expressions beinhalten die im Kontext der Ziel-Klasse interpretiert werden kann.
Layout: string Das Layout welches verwendet wird um den Titel des Objektes zu berechnen.
Delimiter: string Das Trennzeichen welches verwendet wird. Standardmässig wird ein “,” verwendet.
Navigation
Die folgenden Funktionen stehen im Navigation namespace zur Verfügung:
Funktion
Namespace Navigation
Beschreibung
Parameter
Funktion
Namespace Navigation
Beschreibung
Parameter
HasParentOfClass(ClassName: string): boolean
Gibt zurück, ob das aktuelle Objekt ein Parent-Objekt der angegebenen Klasse hat.
ClassName: string Der Name der Parent-Metaklasse
ParentProperty(PropertyName: string): any
Gibt den Wert des Properties mit dem angegebenen Namen auf dem Parent-Objekt zurück. Rückgabewert ist null, falls kein Parent-Objekt existiert.
PropertyName: string Der Name des Properties auf dem Parent-Objekt
ParentOfClassProperty(ClassName: string, PropertyName: string): any
Gibt den Wert des Properties mit dem angegebenen Namen auf dem Parent-Objekt mit der angegebenen Klasse zurück. Rückgabewert ist null, falls kein Parent-Objekt der angegebenen Klasse existiert.
ClassName: string Der Name der Parent-Metaklasse
PropertyName: string Der Name des Properties auf dem Parent-Objekt
Remote Data
Die folgenden Funktionen stehen im RemoteData namespace zur Verfügung:
Funktion
Namespace RemoteData
Beschreibung
Parameter
Funktion
Namespace RemoteData
Beschreibung
Parameter
GetSingleValue(url: string): Promise<any>
Fetcht einen Wert vom angegebenen Endpunkt.
url: string Die Endpunkt-Url zum fetchen des Werts. Relative Urls sind möglich.