Schreibweise
ApptiveScript kennt wenige Regeln. Diese Seite listet sie vollständig auf.
Wert, Punkt, Funktion
Jeder Ausdruck beginnt mit einem Wert. Dahinter folgen, jeweils mit einem Punkt getrennt, Funktionen:
fieldValue('preis').multiplyBy(1.19)Das Ergebnis einer Funktion ist wieder ein Wert — deshalb lassen sich Funktionen verketten. Gelesen wird von links nach rechts:
fieldValue('nachname').concat(fieldValue('vorname'), ', ').isNotEmpty()Welche Funktion erlaubt ist, hängt vom Typ des Wertes links vom Punkt ab. Ein Text kann contains(), eine Zahl kann round(). → Funktionsreferenz
Leerzeichen und Zeilenumbrüche zwischen den Teilen sind erlaubt. Für längere Ketten ist das die lesbarere Form:
fieldValue('menge')
.multiplyBy(fieldValue('einzelpreis'))
.round(2)Funktionen haben immer Klammern
Auch dann, wenn sie kein Argument brauchen:
| Richtig | Falsch |
|---|---|
today() | today |
fieldValue('titel').isEmpty() | fieldValue('titel').isEmpty |
Ausnahme sind Eigenschaften. Sie stehen ohne Klammern, weil sie nichts berechnen, sondern nur einen Teil eines Wertes benennen — in der Funktionsreferenz stehen sie mit vorangestelltem Punkt:
loggedInUser().emailtrue und false sind ebenfalls Eigenschaften und stehen ohne Klammern.
Text, Zahlen, Wahrheitswerte
| Art | Schreibweise | Beispiel |
|---|---|---|
| Text | einfache Anführungszeichen | 'Sonstiges' |
| Ganze Zahl | ohne Trennzeichen | 42, -7 |
| Kommazahl | mit Punkt als Dezimaltrennzeichen | 1.19 |
| Wahrheitswert | ohne Klammern, klein geschrieben | true, false |
Drei Schreibfehler, die einen Ausdruck kippen
- Doppelte Anführungszeichen (
"Sonstiges") sind kein gültiger Text. Der Editor meldet einen Fehler. - Komma als Dezimaltrennzeichen (
1,19) wird nicht gelesen. Immer1.19. - Großschreibung ist verbindlich:
Trueist nichttrue,IsEmpty()ist nichtisEmpty(). Ein falsch geschriebener Name gilt als unbekannt — und ein unbekannter Name ist kein Fehler, sondern einfach leer.
Apostrophe in Texten funktionieren nicht
Ein Apostroph innerhalb eines Textwertes lässt sich nicht schreiben — 'Müller's Hof' bricht den Text nach Müller ab, ohne dass eine Fehlermeldung erscheint. Vermeiden Sie Apostrophe in Vergleichswerten, oder vergleichen Sie mit einem Teil des Textes über contains().
Rechnen
Für Zahlen gibt es beide Schreibweisen — Rechenzeichen und Funktionen:
(fieldValue('netto') + fieldValue('versand')) * 1.19
fieldValue('netto').plus(fieldValue('versand')).multiplyBy(1.19)| Rechenzeichen | Funktion |
|---|---|
+ | plus() |
- | minus() |
* | multiplyBy() |
/ | divideBy() |
Runde Klammern gruppieren, (2 + 3) * 4 ergibt 20.
Im Zweifel die Funktionsschreibweise
Der Editor fügt beim Zusammenklicken die Funktionen ein, nicht die Rechenzeichen — und Ketten aus Funktionen lassen sich ohne Nachdenken über Vorrangregeln erweitern. Die Rechenzeichen sind vor allem für kurze Formeln bequem.
Bedingungen verknüpfen
Es gibt keine Schlüsselwörter für und, oder, nicht — es sind Funktionen auf einem Wahrheitswert:
formValues.get('alter').greaterThan(17).logicalAnd(formValues.get('agb').isTrue())| Gemeint | Schreibweise |
|---|---|
| und | bedingung.logicalAnd(andereBedingung) |
| oder | bedingung.logicalOr(andereBedingung) |
| nicht | bedingung.isFalse() |
| wenn/sonst | bedingung.if(dann, sonst) |
UND und ODER nicht mischen
Die Oberfläche kann einen Ausdruck nur dann als Zeilen anzeigen, wenn er durchgehend mit UND oder durchgehend mit ODER verknüpft ist. Bei einer Mischung meldet der Flow-Dialog:
Dieser Ausdruck mischt UND/ODER oder lässt sich nicht in Zeilen aufteilen. Bearbeite ihn als einen Ausdruck oder nutze Zeilen mit einem gemeinsamen Operator (nur UND oder nur ODER).
Der Ausdruck funktioniert weiterhin — er lässt sich nur nicht mehr über die Zeilen bearbeiten.
Fehlende Werte
Ein leeres Feld liefert keinen Fehler, sondern einen leeren Wert. Zwei Funktionen fangen das ab:
fieldValue('spitzname').ifUndefined('unbekannt')
fieldValue('auftragsnummer').isNotEmpty()ifUndefined() gibt es auf jedem Typ. Wichtig ist es überall dort, wo weitergerechnet wird — eine Multiplikation mit einem leeren Feld ergibt kein Ergebnis, sondern nichts.
Was es nicht gibt
| Kommentare | // … und /* … */ sind ungültig |
| Variablen und Zwischenschritte | ein Ausdruck ist eine Zeile |
| Mehrere Ergebnisse | ein Ausdruck liefert genau einen Wert |
| Deutsche Funktionsnamen | die Namen sind englisch, auch in der deutschen Oberfläche |
Fehlermeldungen des Editors
Der Ausdruckseditor zeigt Fehler unterhalb des Feldes an, auf Englisch und mit internen Typnamen:
| Meldung | Bedeutung |
|---|---|
| ASString class has no function named … | Diese Funktion gibt es für diesen Typ nicht — prüfen Sie die Funktionsreferenz |
| function needs 1 arguments | Zu wenige oder zu viele Argumente in den Klammern |
| Unexpected token … | Der Ausdruck ist unvollständig, etwa eine fehlende Klammer oder ein Punkt am Ende |
| No field with id … | Die Spalte, auf die verwiesen wird, gibt es nicht mehr |
Lässt sich ein Ausdruck nicht lesen, bleibt der eingegebene Text unverändert im Feld stehen, statt in Bausteine umgewandelt zu werden. Das ist das schnellste Erkennungsmerkmal für einen Schreibfehler.
Weiter
- Werte referenzieren — womit ein Ausdruck anfängt
- Bedingungen bauen — Vergleiche, UND/ODER, Verzweigungen
- Der Ausdruckseditor — Token-Ansicht, Picker, Beispielergebnis
- Funktionsreferenz — alle Funktionen je Typ
- Was ist ApptiveScript