Ausdrücke
LoyJoy bietet eine leistungsfähige Ausdruckssprache, mit der Sie Ausdrücke in KI-Agenten auswerten können. Die Ausdruckssprache ist eine aus Sicherheitsgründen vereinfachte Teilmenge der Jakarta Expression Language und ermöglicht es Ihnen, Prozessvariablen und Funktionen programmatisch zu lesen und zu kombinieren.
Ausdrücke können in Bedingungen, in Variablen-Wertzuweisungen und in interpolierten Texten wie Chat-Nachrichten-Blasen Willkommen ${firstname}, Alter ${customerAgeYears()} oder E-Mail-Vorlagen verwendet werden. Ausdrücke können von einfachen Ausdrücken wie gender == "male" ? "Dear Mr." : "Dear Ms." bis zu beliebig komplexen Ausdrücken wie stringContains(getParam("haystack"), "needle") reichen.
Literale
Als Literale können Sie true, false, Ganzzahlen wie 1 oder 2, Fließkommazahlen wie 1.5 oder 3.14, Strings wie "foo" und null verwenden.
Der Dezimalpunkt von Fließkommazahlen wird als Punkt . geschrieben und nicht als Komma ,.
Arithmetische Operatoren
Es gibt 5 arithmetische Operatoren:
- Addition
+wie1 + 2oder1 + someVar - Subtraktion
-wie1 - 2oder1 - someVar - Multiplikation
*wie2 * 4oder4 * someVar - Division
/wie4 / 2oder4 / someVar - Rest (Modulo)
%wie8 % 3oder8 % someVar
Vergleichsoperatoren
Es gibt 6 Vergleichsoperatoren:
- Gleich
==wie1 == 1oder1 == someVar - Ungleich
!=wie1 != 2oder1 != someVar - Kleiner als
<wie1 < 2oder2 < someVar - Größer als
>wie3 > 2oder3 > someVar - Kleiner oder gleich
<=wie1 <= 2oder2 <= someVar - Größer oder gleich
>=wie3 >= 2oder3 >= someVar
Logische Operatoren
Es gibt 3 logische Operatoren:
- Und
&&/andwie2 > 1 && true != falseoder2 > 1 and true != false - Oder
||/orwie2 > 1 || true != falseoder2 > 1 or true != false - Nicht
!wie!someVar
Empty-Operator
Mit dem Empty-Operator können Sie feststellen, ob ein Wert null oder leer ist, wie empty someVar. Im Beispiel gibt er true zurück, wenn die Variable someVar nicht existiert, nicht gesetzt ist, null oder ein leerer String ist, andernfalls false.
Bedingungsoperator
Der Bedingungsoperator wertet eine Bedingung aus und gibt je nach Bedingungsergebnis einen von zwei Ergebnissen zurück, z. B. age >= 18 ? "Willkommen" : "Nicht alt genug".
Klammern
Klammern können verwendet werden, um die Präzedenz zu ändern, z. B. a * (b + c).
Arrays
Auf Array-Elemente kann über den Index zugegriffen werden, z. B. someArray[0] oder someArray[someIndex]. Der erste Array-Index ist 0. Der letzte Array-Index ist Array-Länge minus 1.
Objekte
Auf Objekteigenschaften kann mit . zugegriffen werden, z. B. someObject.someProperty, oder mit [], z. B. someObject["someProperty"]. Der Index kann ein Ausdruck sein, z. B. someObject[someVar]. Typische Anwendungsfälle für den Zugriff auf Objekteigenschaften sind der Zugriff auf Eigenschaften von JSON-Objekten, die von APIs abgerufen wurden.
Funktionen
LoyJoy bietet eine wachsende Liste von Funktionen, die aus Ausdrücken aufgerufen werden können, z. B. customerAgeYears() >= 18 oder isoLocalDate().
Variablen
Sie können Variablen in Ausdrücken verwenden, wenn sie zuvor im Prozess erzeugt wurden, z. B. cheesePreference == "strong".
Typkonvertierung
In LoyJoy sind alle Variablen Texte (Typ String). Wenn Sie Variablen als Zahlen oder Booleans verwenden möchten, kann daher eine Typkonvertierung notwendig sein. LoyJoy bietet für die Typkonvertierung mehrere Funktionen:
- Konvertierung zu Ganzzahlen mit
toBigInteger,toLong,toInteger,toShort,toBytewietoBigInteger("2")odertoBigInteger(someVar). BigInteger kann größere Ganzzahlen verarbeiten als Long. Long kann größere Ganzzahlen verarbeiten als Integer, Short oder Byte. In den meisten Fällen wird BigInteger empfohlen. - Konvertierung zu Fließkommazahlen mit
toBigDecimal,toDouble,toFloatwietoBigDecimal("2.5")odertoBigDecimal(someVar). BigDecimal kann größere Fließkommazahlen verarbeiten als Double. Double kann größere Fließkommazahlen verarbeiten als Float. In den meisten Fällen wird BigDecimal empfohlen. - Konvertierung zu Boolean mit
toBooleanwietoBoolean("true")odertoBoolean(someVar).