Bildungsregeln (CreationRule)

<< Inhaltsverzeichnis anzeigen >>

Navigation:  Start > Templates anpassen > Templates erstellen > Alle Template-Typen > Eingabemöglichkeiten > Grundsätzlicher Aufbau einer Eingabemöglichkeit >

Bildungsregeln (CreationRule)

Für alle Eingabefelder, die ein Constraints-Feld enthalten, können Sie innerhalb des Constraints-Feldes eine Bildungsregel (CreationRule) definieren, die automatisch den Wert des Feldes berechnet.

 

Bildungsregeln sind nur gültig, wenn Sie keinen Standardwert (DefaultValue) definieren.

 

Bildungsregeln können beliebig aneinander gehängt werden, z.B.  „<firstLetter>({givenname}).{sn}@[fqdn]“. Dabei sind auch Leerzeichen relevant.

 

Die Bildungsregel wird auch ausgeführt, wenn das Feld

versteckt ist ("IsHiddenFromRequester": true bzw. "IsHidden": true)

nicht editierbar ist ("IsEnabled": false).

 

 

Möglichkeiten für Bildungsregeln

{sn}

Dieser Text wird ersetzt durch den aktuellen Wert des Eingabefeldes für das in geschweiften Klammern spezifizierte LDAP-Attribut (in diesem Beispiel „sn“).

Dies funktioniert auch, wenn das referenzierte Eingabefeld versteckt und/oder nicht editierbar ist.

Enthält das referenzierte Feld seinerseits eine Bildungsregel, wird diese zuerst ausgeführt. Die Reihenfolge der Ausführung wird auf der Basis solcher Feldabhängigkeiten berechnet. Falls die Bildungsregeln eines Templates eine zyklische Feldabhängigkeit bilden (z.B. wenn die Bildungsregel für „sn“ {cn} und die für „cn“ {sn} enthält), wird das Template beim Laden als ungültig abgelehnt. Der Fehler wird im Gesundheitscheck angezeigt.

 

 

[fqdn]

Dieser Text wird ersetzt durch den im Template definierten Domänennamen (FullQualifiedDomainName).

 

 

Hallo 123

Zeichenfolgen werden eins zu eins übernommen, in diesem Fall also „Hallo 123“.

Die folgenden Sonderzeichen müssen mit einem Backslash (\) escaped werden: Backslash, runde Klammern, geschweifte Klammern, Komma.

Achtung: Im JSON-Format müssen das doppelte Anführungszeichen sowie der Backslash selbst mit einem Backslash escaped werden. Backslashes in Bildungsregeln müssen also verdoppelt werden, z.B.

„\\(“ für die runde Klammer auf

„\\\\“ für einen Backslash

Eine einfache Lösung bieten Online-Tools, die für das JSON-Format das Escaping vornehmen, z.B. http://www.infobyip.com/jsonencoderdecoder.php, so dass man das Escaping nur noch für die Bildungsregeln manuell ausführen muss.

 

 

<firstLetter>(…)

Gibt das erste Zeichen des Arguments zurück.

Beispiel

<firstLetter>(Hallo) wird durch „H“ ersetzt.

 

 

<toUpperCase>(…)

Wandelt das Argument in Großbuchstaben um.

Beispiel

<toUpperCase>(Hallo) wird durch „HALLO“ ersetzt.

 

 

<toLowerCase>(…)

Wandelt das Argument in Kleinbuchstaben um.

Beipiel

<toLowerCase>(Hallo) wird durch „hallo“ ersetzt.

 

 

<trim>(…)

Löscht Leerzeichen am Anfang und Ende des Arguments.

Beispiel

<trim>(  Hallo  ) wird durch „Hallo“ ersetzt.

 

 

<subst>(…)

Löscht Leerzeichen und Bindestriche aus dem Argument, und ersetzt Buchstaben mit Akzenten durch Buchstaben bzw. Buchstabenkombinationen ohne Akzente.

Beispiel

<subst>(Zoë Roßmäßler-Öker) wird durch „ZoeRossmaesslerOeker“ ersetzt.

 

 

<replace>(.,.,.)
<replaceOnce(.,.,.)>

Ersetzt Zeichen.

Beispiele

<replace>(the dog and the fox,the,a) = "a dog and a fox"

<replaceOnce>(the dog and the fox,the,a) = "a dog and the fox"

<replace>(Norbert Van Eggert, ,) = "NorbertVanEggert"

<replace>(Norbert Van Eggert, ,.) = "Norbert.Van.Eggert"

 

 

<reverse>(...)

Kehrt die Reihenfolge der Zeichen um.

Beispiel

<reverse>(apfel) = "lefpa"

 

 

<regExpr>('…',…)

Gibt den ersten Match des angegebenen regulären Ausdrucks (innerhalb der einfachen Anführungszeichen), angewendet auf das zweite Argument (fängt direkt hinter dem Komma an, Leerzeichen nach dem Komma werden also mitgezählt).

Beispiel

<regExpr>('.{3}',Hallo) wird durch „Hal“ ersetzt.

 

Es werden alle gängigen regulären Ausdrücke unterstützt. Als Besonderheit wird außerdem das Gruppierungskonstrukt (?<this>…) unterstützt. Der Match auf diese Gruppe wird zurückgegeben.

Beispiel

<regExpr>('.{3}(?<this>.*)',Hallo) wird durch „lo“ ersetzt.

 

Es gibt Online-Tools, mit denen reguläre Ausdrücke getestet werden können, z.B. http://regex101.com.

Alle Funktionen können beliebig verschachtelt werden.

Beispiel

<regExpr>('.{1}',<trim>(<toLowerCase>({sn})))

 

 

komplexes Beispiel für eine E-Mail Adressprüfung

"Name": "emailaddresses",

"Definition": {

  "Type": "TextArea",

  "Label": "E-Mailadressen",

  "IsRequired": true,

  "IsEnabled": true,

  "Constraints": {

    "MaxLength": 500,

    "ValidationRule": "^((([a-z][a-z0-9]+:)?([A-Z][A-Z0-9]+:)?(\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*(\\r\\n)?\\n?)+)*)$",

    "ValidationInformation": "Entpricht nicht dem E-Mail-Format!",

    "CreationRule" : "SMTP:<tolowerCase>({samaccountname})@<tolowerCase>([fqdn])\r\nsmtp:<tolowerCase>(<firstLetter>({givenname})).<tolowerCase>({sn})@<tolowerCase>([fqdn])"

  }

}