Skip to content

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:

RichtigFalsch
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().email

true und false sind ebenfalls Eigenschaften und stehen ohne Klammern.

Text, Zahlen, Wahrheitswerte

ArtSchreibweiseBeispiel
Texteinfache Anführungszeichen'Sonstiges'
Ganze Zahlohne Trennzeichen42, -7
Kommazahlmit Punkt als Dezimaltrennzeichen1.19
Wahrheitswertohne Klammern, klein geschriebentrue, 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. Immer 1.19.
  • Großschreibung ist verbindlich: True ist nicht true, IsEmpty() ist nicht isEmpty(). 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)
RechenzeichenFunktion
+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())
GemeintSchreibweise
undbedingung.logicalAnd(andereBedingung)
oderbedingung.logicalOr(andereBedingung)
nichtbedingung.isFalse()
wenn/sonstbedingung.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 Zwischenschritteein Ausdruck ist eine Zeile
Mehrere Ergebnisseein Ausdruck liefert genau einen Wert
Deutsche Funktionsnamendie 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:

MeldungBedeutung
ASString class has no function named …Diese Funktion gibt es für diesen Typ nicht — prüfen Sie die Funktionsreferenz
function needs 1 argumentsZu 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