Expression Standard Funktionen

Die folgenden Funktionen stehen im Standard zur Verfügung. Applikationen können auch https://encodo.atlassian.net/wiki/spaces/EB/pages/155877401 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.

Siehe auch https://encodo.atlassian.net/wiki/spaces/EB/pages/155811858.

Operatoren

Für ein besseres Verständnis werden einige Operatoren als Funktionen zur Verfügung gestellt. Diese sind hier aufgelistet. Weitere Operatoren finden Sie unter https://encodo.atlassian.net/wiki/spaces/EB/pages/155320393.

Funktion

Namespace Global

Beschreibung

Parameter

Funktion

Namespace Global

Beschreibung

Parameter

Contains(hayStack: String, needle: String): Boolean

Gibt zurück ob der Teil-String needle in hayStack enthalten ist.

  • hayStack: String Der String in dem gesucht wird.

  • needle: String Der Teil-String der gefunden werden soll.

ContainsCI(hayStack: String, needle: String): Boolean

Gibt zurück ob der Teil-String needle in hayStack enthalten ist.

CI = case-insensitive = Gross-/Kleinschreibung wird ignoriert.

  • hayStack: String Der String in dem gesucht wird.

  • needle: String Der Teil-String der gefunden werden soll.

BeginsWith(hayStack: String, needle: String): Boolean

Gibt zurück ob haystack mit needle beginnt.

 

  • hayStack: String Der String in dem gesucht wird.

  • needle: String Der Teil-String der gefunden werden soll.

BeginsWithCI(hayStack: String, needle: String): Boolean

Gibt zurück ob haystack mit needle beginnt.

CI = case-insensitive = Gross-/Kleinschreibung wird ignoriert.

  • hayStack: String Der String in dem gesucht wird.

  • needle: String Der Teil-String der gefunden werden soll.

EndsWith(hayStack: String, needle: String): Boolean

Gibt zurück ob haystack mit needle endet.

  • hayStack: String Der String in dem gesucht wird

  • needle: String Der Teil-String der gefunden werden soll.

EndsWithCI(hayStack: String, needle: String): Boolean

Gibt zurück ob haystack mit needle endet.

CI = case-insensitive = Gross-/Kleinschreibung wird ignoriert.

  • hayStack: String Der String in dem gesucht wird.

  • needle: String Der Teil-String der gefunden werden soll.

Matches(hayStack: String, pattern: String): Boolean

Gibt zurück ob haystack dem Muster pattern entspricht.

  • hayStack: String Der String in dem gesucht wird.

  • pattern: String Das Muster nach dem gesucht wird. Muster-Syntax als .

MatchesCI(hayStack: String, pattern: String): Boolean

Gibt zurück ob haystack dem Muster pattern entspricht.

 

  • hayStack: String Der String in dem gesucht wird.

  • pattern: String Das Muster nach dem gesucht wird. Muster-Syntax als .

EqualsCI(one: String, two: String): Boolean

Gibt zurück ob die beiden Strings one und two gleich sind.

CI = case-insensitive = Gross-/Kleinschreibung wird ignoriert.

  • one: String erster String

  • two: String zweiter String

IsNull(value: Any): Boolean

Gibt zurück ob es keinen Wert hat, der Wert null ist.

  • value: Any Ein beliebiger Wert

IsNotNull(value: Any): Boolean

Gibt zurück ob ein Wert enthalten ist, der Wert ungleich null ist.

Gets a value indicating whether value is not null

  • value: Any Ein beliebiger Wert

Date

Die folgenden Funktionen stehen im Global namespace zur Verfügung.

Funktion

Namespace Global

Beschreibung

Parameter

Funktion

Namespace Global

Beschreibung

Parameter

UtcEndOfTime(): DateTime

Eine Konstante des letzten Zeit-Wertes in UTC.

 

EndOfTime(): DateTime

Eine Konstante des letzten Zeit-Wertes .

 

UtcEpochStart(): DateTime

Eine Konstante der Start-Zeit der UNIX Epoche.

 

Current time

These functions can be mapped to most databases and will not cause local evaluation.

Funktion

Namespace Global

Beschreibung

Parameter

Funktion

Namespace Global

Beschreibung

Parameter

UtcNow(): DateTime

Gets the UTC time

 

Now(): DateTime

Gets the local time

 

UtcToday(): DateTime

Equivalent to UtcNow.Day

 

Today(): DateTime

Equivalent to Now.Day

 

Day(): Int

Gets the day of UtcNow

 

Month(): Int

Gets the month of UtcNow

 

Year(): Int

Gets the year of UtcNow

 

Hour(): Int

Gets the hour of UtcNow

 

Minute(): Int

Gets the minute of UtcNow

 

Second(): Int

Gets the second of UtcNow

 

Millisecond(): Int

Gets the millisecond of UtcNow

 

Custom dates and times

Funktion

Namespace Global

Beschreibung

Parameter

Funktion

Namespace Global

Beschreibung

Parameter

CreateDate(year : Int, month: Int, day: Int, hour: Int = 0, minute: Int = 0, second: Int = 0): DateTime

Erzeugt einen Zeitstempel in der lokalen Zeitzone.

  • year: Int Datum: Jahr

  • month: Int Datum: Monat

  • day: Int Datum: Tag

  • hour: Int = 0 Uhrzeit: Stunde. Vorbelegt mit 0 wenn hier kein anderer Wert eingetragen wird.

  • minute: Int = 0 Uhrzeit: Minute. Vorbelegt mit 0 wenn hier kein anderer Wert eingetragen wird.

  • second: Int = 0 Uhrzeit Sekunde. Vorbelegt mit 0 wenn hier kein anderer Wert eingetragen wird.

CreateUtcDate(year : Int, month: Int, day: Int, hour: Int = 0, minute: Int = 0, second: Int = 0): DateTime

Erzeugt einen Zeitstempel in UTC.

  • year: Int Datum: Jahr

  • month: Int Datum: Monat

  • day: Int Datum: Tag

  • hour: Int = 0 Uhrzeit: Stunde. Vorbelegt mit 0 wenn hier kein anderer Wert eingetragen wird.

  • minute: Int = 0 Uhrzeit: Minute. Vorbelegt mit 0 wenn hier kein anderer Wert eingetragen wird.

  • second: Int = 0 Uhrzeit Sekunde. Vorbelegt mit 0 wenn hier kein anderer Wert eingetragen wird.

CreateTime(hour: Int, minute: Int, second: Int): TimeSpan

Erzeugt eine Zeitspanne.

  • hour: Int = 0 Anzahl Stunden

  • minute: Int = 0 Anzahl Minuten

  • second: Int = 0 Anzahl Sekunden

Extract date parts

Funktion

Namespace Global

Beschreibung

Parameter

Funktion

Namespace Global

Beschreibung

Parameter

Day(dateTime): Int

Gets the day of the given dateTime

 

Month(dateTime): Int

Gets the month of the given dateTime

 

Year(dateTime): Int

Gets the year of the given dateTime

 

Hour(dateTime): Int

Gets the hour of the given dateTime

 

Minute(dateTime): Int

Gets the minute of the given dateTime

 

Second(dateTime): Int

Gets the second of the given dateTime

 

Millisecond(dateTime): Int

Gets the millisecond of the given dateTime

 

Add/Subtract date parts

Funktion

Namespace Global

Beschreibung

Parameter

Funktion

Namespace Global

Beschreibung

Parameter

AddMinutes(expression: DateTime, value: int): DateTime

Adds the given value as minutes to the given dateTime

  • expression: An expression or constant that resolves to a DateTime

  • value: The constant value to add. Can be negative as well.

AddHours(expression: DateTime, value: int): DateTime

Adds the given value as hours to the given dateTime

  • expression: An expression or constant that resolves to a DateTime

  • value: The constant value to add. Can be negative as well.

AddDays(expression: DateTime, value: int): DateTime

Adds the given value as days to the given dateTime

  • expression: An expression or constant that resolves to a DateTime

  • value: The constant value to add. Can be negative as well.

AddMonths(expression: DateTime, value: int): DateTime

Adds the given value as months to the given dateTime

  • expression: An expression or constant that resolves to a DateTime

  • value: The constant value to add. Can be negative as well.

AddYears(expression: DateTime, value: int): DateTime

Adds the given value as years to the given dateTime

  • expression: An expression or constant that resolves to a DateTime

  • value: The constant value to add. Can be negative as well.

Formatting

The following formatting constants are available for formatting DateTime or TimeSpan values in the current culture.

An application can use these constants as follows:

  • Function: Format(Now(), ShortTimeFormat())

  • Operator: Now => ShortTimeFormat (described in the  )

Funktion

Namespace Global

Beschreibung

Parameter

Funktion

Namespace Global

Beschreibung

Parameter

ShortTimeFormat(): String

Corresponds to t; formats to e.g. 06:30

Beispiel:

Format(Now(), ShortTimeFormat())

 

LongTimeFormat(): String

Corresponds to T; formats to e.g. 06:30:00

 

ShortDateFormat(): String

Corresponds to d; formats to e.g. 10.04.2008

 

LongDateFormat(): String

Corresponds to D; formats to e.g. Thursday, 10 April 2008

 

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  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 .

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 zurück. Die Sprache des aktuellen Benutzers wird gewählt zur Übersetzung.

  • Translationkey: String Der

Breakpoint

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 CurrentContext

Beschreibung

Parameter

Funktion

Namespace CurrentContext

Beschreibung

Parameter

Scope(): String

Gibt den aktuellen Scope zurück

 

Aggregation

Die folgenden Funktionen stehen im Aggregation namespace zur Verfügung:

Funktion

Namespace Aggregation

Beschreibung

Parameter

Funktion

Namespace Aggregation

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 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 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.

Exists(Relation/Klasse: string, IsRelation: bool): bool

Siehe Exists()

  • 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.

Exists(Relation/Klasse: string, Filter: string): bool

Siehe Exists()

  • 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 beinhalten die im Kontext der Klasse interpretiert werden kann.

Exists(Relation/Klasse: string, Filter: string, IsRelation: bool): bool

Siehe Exists()

  • 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 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.

Lookup(Relation/Klasse: string, Filter: string, Selector: string): object

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 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.

All(Relation: string, Filter: string, Layout: string, Delimiter: string): string

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 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.

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.