Ausdrücke

Ein Ausdruck ist ein Teil des Skripts, der einen Wert vergleicht oder in einem Wert resultiert. Beispielsweise können X = 5, Y = dog und Z = "{var1}" Ausdrücke sein, wenn sie so verwendet werden, dass die Werte oder die Ergebnisse in einem Wert miteinander verglichen werden. Beispiel: X = 5 vergleicht den Wert der Variablen X mit 5. Und Z = "{var1}" vergleicht den Wert der Variablen Z mit dem aktuellen Wert der Variablen var1.

Alle vorherigen Beispiele könnten auch Zuweisungsanweisungen sein. Eine Zuweisungsanweisung weist den Wert rechts vom Gleichheitszeichen der Variablen auf der linken Seite zu. Variablenzuweisungen sind keine Ausdrücke.

Ausdrücke können für folgende Zwecke verwendet werden:

  • Mathematische oder algebraische Berechnungen
  • Zwei Werte vergleichen und auf Grundlage des Ergebnisses des Vergleichs eine Aktion ausführen
  • Logische Entscheidungen treffen, je nachdem, ob ein Ausdruck als "true" oder "false" ausgewertet wird

Die Werte, die in einem Ausdruck verglichen werden, können aus Buchstaben, Zahlen oder aus einer Kombination von Buchstaben und Zahlen bestehen. Sie können auch Variablen enthalten. In Studio gibt es drei Arten von Ausdrücken: numerisch, String und boolesch.

Testen

Laden Sie das Skript mit Ausdrucksbeispielen herunter und importieren Sie es in Studio. Die auf dieser Hilfeseite genannten Beispiele sind in Snippet-Aktionen im Beispielskript enthalten. Sie können das Snippet Editor -Fenster öffnen und den Debugger ausführen, um zu sehen, wie die einzelnen Beispiele funktionieren.

Numerische Ausdrücke

Numerische Ausdrücke enthalten ausschließlich numerische Werte und mathematische oder boolesche Operatoren, wie +, - usw. Sie können auch Variablenverweise umfassen, sofern die Variablen numerische Werte enthalten, die in den Berechnungen verwendet werden.

Numerische Ausdrücke werden in Snippets und zur Konfiguration der Eigenschaften von Studio-Aktionen verwendet. Beispiel: In der IF-Aktion konfigurieren Sie die Expression-Eigenschaft mit einem Ausdruck, der ausgewertet wird, um für die Aktion eine Entscheidung zu treffen. Alternativ können Sie in einem Snippet das IF-Schlüsselwort verwenden.

Syntax numerischer Ausdrücke

Numerische Ausdrücke können nicht in Anführungszeichen eingeschlossen werden. Das gilt auch für mathematische und boolescheGeschlossen Ein Datentyp, der zwei mögliche Werte hat: wahr und falsch. Ausdrücke. Wenn Sie einen numerischen Ausdruck in Anführungszeichen einschließen, wird er wie Text behandelt. Beispiel: c1 = 123 + 456 wird als 579 ausgewertet, aber c2 = "123 + 456" hat das Ergebnis 123 + 456.

Variablen, die in numerischen Ausdrücken verwendet werden, dürfen nicht in geschweifte Klammern und doppelte Anführungszeichen eingeschlossen werden. Dies würde zu einem Fehler im Skript führen.

Auswertung numerischer Ausdrücke

Das Skript wertet die numerischen Werte in einem numerischen Ausdruck als Zahlen aus, sofern möglich. Das bedeutet:

  • Alle Elemente, die nicht als numerische Werte ausgewertet werden können, wie Buchstaben oder Wörter, werden als Variablenverweise ausgewertet.
  • Wenn nicht numerische Zeichen im Ausdruck im Skript eine Variable mit einem Stringwert sind, ignoriert das Skript die nicht numerischen Zeichen und wertet den numerischen Teil des ursprünglichen Ausdrucks aus.
  • Wenn die nicht numerischen Zeichen im Ausdruck eine Variable mit einem numerischen Wert sind, berücksichtigt das Skript diesen Wert bei der Auswertung des Ausdrucks.
  • Wenn die nicht numerischen Zeichen im Ausdruck keine Variable im Skript sind, ignoriert das Skript diese Zeichen im ursprünglichen Ausdruck.

Im folgenden Beispiel versucht das Skript, das Element nextNum als Variable auszuwerten, da es nicht als Zahl ausgewertet werden kann: c1 = 123 + 456 + nextNum. Die folgenden Beispiele zeigen das Ergebnis von drei Szenarien, je nachdem, ob nextNum eine Variable ist und wie der Wert lautet.

Wenn nextNum eine Variable mit einem Stringwert ist, lautet das Ergebnis c1 = 579:

ASSIGN nextNum = "my string"
ASSIGN c2 = 123 + 456 + nextNum

Wenn nextNum eine Variable mit einem numerischen Wert ist, lautet das Ergebnis c2 = 1368:

ASSIGN nextNum = 789
ASSIGN c3 = 123 + 456 + nextNum 

Wenn nextNum keine Variable ist, lautet das Ergebnis c3 = 579:

ASSIGN c3 = 123 + 456 + nextNum

Beim Auswerten eines Ausdrucks mit zwei Variablen, die beide numerische Werte enthalten, die als Stringwerte interpretiert werden, konvertiert das Skript die Werte in Zahlen und wertet sie entsprechend aus. Das Ergebnis des folgenden Beispiels lautet c4 = 50:

ASSIGN nextNum = "20"
ASSIGN otherNum = "30"
ASSIGN c4 = nextNum + otherNum

Sie können numerische Ausdrücke in Stringwerte aufnehmen, indem Sie den Ausdruck in geschweifte Klammern einschließen. Beispielsweise:

ASSIGN nextNum = 6
ASSIGN otherNum = 7
ASSIGN c5 = "There are {nextNum + otherNum} fish in the aquarium."

Zahlen mit führenden Nullen

Studio handhabt numerische Werte unterschiedlich, je nachdem, ob sie als Strings oder als Zahlen interpretiert werden. Wenn numerische Werte als String interpretiert werden, können sie führende Nullen haben. Wenn Sie zwei Variablen addieren, die numerische Stringwerte mit führenden Nullen enthalten, werden die führenden Nullen entfernt. Das Ergebnis des folgenden Ausdrucks lautet z. B. c6=59:

ASSIGN nextNum = "00020"
ASSIGN otherNum = "000039"
ASSIGN c6 = nextNum+otherNum

Wenn der resultierende Wert führende Nullen enthalten muss, können Sie die Funktion format() und den Null-Platzhalter verwenden, um die Nullen wieder zum Wert hinzuzufügen.

String-Ausdrücke

String-Ausdrücke enthalten alphanumerische Zeichen und Sonderzeichen, wie beispielsweise # und @. Die Syntax für String-Ausdrücke ähnelt der Syntax zum Zuweisen von Stringwerten zu Variablen:

  • In Snippets müssen Stringwerte für Ausdrücke immer in einzelne oder doppelte Anführungszeichen eingeschlossen werden. Dies entspricht der Vorgehensweise für Stringwerte.
  • Für eine Variablenersetzung in String-Ausdrücken muss der Name der Variablen in geschweifte Klammern eingeschlossen werden.
  • Einige Zeichen, wie z. B. doppelte Anführungszeichen, gelten als Code. Wenn Sie diese Zeichen in Stringwerten verwenden möchten, müssen Sie Escape-Sequenzen verwenden.

String-Vergleiche

Strings können in booleschen Ausdrücken als Werte ausgewertet werden. Beispielsweise können Sie in einer IF-Anweisung den folgenden Ausdruck verwenden:

Kunde = "Grendel Cainson"

Wenn Kunde den exakten Wert Grendel Cainson enthält, lautet das Ergebnis true. Bei jedem anderen Wert lautet das Ergebnis false.

Sie können die Operatoren "größer als" und "kleiner als" in String-Vergleichen verwenden. Bei dieser Art von Vergleich wird jedem Buchstaben ein Wert zugewiesen (A = 1 und Z = 26). Zunächst vergleicht das Skript das erste Zeichen. Wenn sich die Werte unterscheiden, ist derjenige größer, der mit einem Buchstaben beginnt, der weiter hinten im Alphabet vorkommt. Beispiel: Im Vergleich apple > banana lautet das Ergebnis false. Grund hierfür ist, dass banana größer als apple ist, da b im Alphabet weiter hinten steht.

Wenn die ersten Zeichen gleich sind, vergleicht das Skript die zweiten Zeichen. Wenn sie sich unterscheiden, stoppt der Vergleich an dieser Stelle. Wenn die zweiten Zeichen gleich sind, fährt das Skript mit dem Vergleichen von Zeichen fort, bis ein unterschiedliches Paar erreicht wird. Beispiel: Bei grapes > grapey vergleicht das Skript jedes Zeichen, bis es das Ende erreicht. Das Ergebnis ist false, weil grapey größer als grapes ist, da y im Alphabet hinter s steht.

Bei Vergleichen des Typs "größer als oder gleich" und "kleiner als oder gleich" gelten dieselben Regeln. Wenn das Skript feststellt, dass der String links vom Operator mit dem String auf der rechten Seite identisch ist, wird der Ausdruck als true ausgewertet.

Bei String-Vergleichen wird zwischen Groß- und Kleinschreibung unterschieden.

Escape-Sequenzen in Strings

Studio unterstützt Escape-Sequenzen mit String-Konstanten. Escape-Sequenzen ermöglichen Ihnen das Einbeziehen bestimmter Sonderzeichen in einen String. Zeichen wie doppelte Anführungszeichen oder eine öffnende geschweifte Klammer werden als Code erkannt. Wenn diese Zeichen in einem String enthalten sind, interpretiert der Compiler sie nicht mit ihrem Literalwert, sondern als Code. Escape-Sequenzen ermöglichen es Ihnen, diese Zeichen in Strings einzuschließen. Wenn Sie diese Zeichen ohne eine Escape-Sequenz in Strings einschließen, entspricht die Ausgabe nicht Ihren Erwartungen. Möglicherweise tritt auch ein Fehler auf.

Sie müssen keine Escape-Sequenzen in Strings einfügen, die konvertierten XML- oder JSON-Code enthalten. Die Escape-Sequenzen werden für Zeichen, bei denen sie erforderlich sind, automatisch hinzugefügt.

Stellen Sie jedem String, in dem Sie eine Escape-Sequenz verwenden, das Dollarzeichen ($) als Präfix voran: $"...". In den doppelten Anführungszeichen können Sie dann irgendeine der folgenden Escape-Sequenzen verwenden:

Sequenz Details
\" Betten Sie ein doppeltes Anführungszeichen ein.
\' Betten Sie ein einfaches Anführungszeichen ein.
\t Betten Sie ein Tabulatorzeichen ein (ASCII 9).
\r Betten Sie einen Wagenrücklauf ein (ASCII 13).
\n Betten Sie einen Zeilenvorschub ein (ASCII 10).
\b Betten Sie eine Rücktaste ein (ASCII 8).
\{ Betten Sie eine offene geschweifte Klammer ein. Für eine schließende geschweifte Klammer müssen Sie nur dann ein Escape-Zeichen verwenden, wenn vor der öffnenden geschweiften Klammer im Text davor kein Escape-Zeichen steht. Wenn Sie eine schließende geschweifte Klammer mit einem Escape-Zeichen versehen müssen, sieht sie folgendermaßen aus: \}
\0 Betten Sie eine Null ein (0 ist eine Null).

Im folgenden Beispiel wird die Escape-Sequenz \n verwendet, um dem String einen Zeilenvorschub hinzuzufügen. Dadurch wird der Cursor nach unten zur nächsten Zeile verschoben, ohne dass er zum Anfang der Zeile zurückkehrt.

x = $"A phrase\nAnd a new line"

Wenn der String gedruckt wird, sieht die Ausgabe folgendermaßen aus:

A phrase

And a new line ]

Im vorherigen Beispiel stellt die schließende eckige Klammer den Cursor dar.

Im folgenden Beispiel wird die Escape-Sequenz \" verwendet, um doppelte Anführungszeichen in den String einzufügen:

y = $"Embedding \"double quotes\" in a string."

Wenn der String gedruckt wird, sieht er folgendermaßen aus: Embedding "double quotes" in a string. Ohne die Escape-Sequenz würde das Skript den String nur bis zu den doppelten Anführungszeichen vor dem Wort double erkennen.

Im folgenden Beispiel wird die Escape-Sequenz \{ verwendet, um geschweifte Klammern als Literalwert in den String einzufügen:

z = $"Using \{curly} braces."

Wenn der String gedruckt wird, sieht er folgendermaßen aus:  Using {curly} braces. Ohne die Escape-Sequenz hätte das Skript {curly} als Variable interpretiert. Wenn kein Wert für die Variable "curly" gefunden wird, ersetzt das Skript sie durch nichts. Der Wert der Variablen wäre dann Using braces.

Boolesche Ausdrücke

Studio unterstützt die Verwendung von booleschenGeschlossen Ein Datentyp, der zwei mögliche Werte hat: wahr und falsch. Ausdrücken. Sie können damit in Ihrem Skript Logik erstellen, mit der Entscheidungen getroffen werden. Boolesche Ausdrücke werden als entweder "true" oder "false" ausgewertet. Deshalb können Sie damit Bedingungen erstellen, die erfüllt werden müssen, um zu entscheiden, welchem Pfad gefolgt wird. Wenn die Bedingung erfüllt wird, folgt das Skript der jeweiligen Verzweigung; wird sie nicht erfüllt, folgt es der anderen Verzweigung.

In booleschen Ausdrücken können Sie verschiedene Operatoren verwenden. So können Sie eine logische Bedingungsanweisung definieren, die für Ihr Skript geeignet ist. Beispielsweise können Sie mit dem Gleichheitszeichen (=) überprüfen, ob zwei Werte identisch sind. Oder Sie verwenden den Operator "größer als" (>), um zu bestimmen, ob ein Wert größer als ein anderer ist.

Sie können boolesche Ausdrücke mit Aktionen wie If und Snippet verwenden (Hilfeseiten in CXone Studio: If und Snippet). Einige Anweisungen, die Sie in Snippets verwenden können, nutzen boolesche Ausdrücke, um Entscheidungen zu treffen. Dazu zählen:

  • IF
  • IF ... ELSE
  • SELECT

Das folgende Beispiel veranschaulicht die Verwendung eines booleschen Ausdrucks mit einer IF...ELSE-Anweisung in einem Snippet:

ASSIGN var1 = "Cat"
IF var1 = "Dog"
{
	ASSIGN dogWasFound = true
}
ELSE
{
	ASSIGN dogWasFound = false
}

Boolesche Ausdrücke können bei der Skripterstellung auch mit Aktionen verwendet werden. Die folgende Abbildung zeigt dieselbe Anweisung IF...ELSE mit Studio-Aktionen. Sie können dieses Beispiel im Beispielskript für Ausdrücke testen.

Eine Skriptversion des booleschen Beispiels aus diesem Abschnitt der Seite.

Aktivieren oder Deaktivieren von Einstellungen mithilfe von booleschen Werten

Boolesche Werte werden manchmal in Skripten verwendet, um Einstellungen in CXone zu aktivieren oder zu deaktivieren. In diesen Fällen weisen Sie einer Variablen einen booleschen Wert zu. Um eine Einstellung zu aktivieren, weisen Sie den Wert true oder 1 zu. Um eine Einstellung zu deaktivieren, weisen Sie den Wert false oder 0 zu.

Sowohl die Wörter als auch die Zahlen sind gültige boolesche Werte. Sie sollten jedoch in der Online-Hilfe für die jeweilige Studio-Aktion nachschlagen, ob es für die Eigenschaften der Aktion einen bevorzugten Wert gibt. In jedem Fall darf der verwendete Wert nicht in Anführungszeichen eingeschlossen werden. Wenn Sie den Wert in Anführungszeichen einschließen, interpretiert das Skript ihn nicht als booleschen Wert, sondern als Literalstring.

Operatoren

Ein Operator ist ein Symbol, das eine mathematische Operation oder einen Vergleich darstellt. Symbole wie +, - und = sind Operatoren. Boolesche Operatoren vergleichen zwei Ausdrücke und geben als Ergebnis eine "true/false"-Antwort zurück. In Snippets werden sowohl mathematische Operatoren als auch boolesche Operatoren unterstützt.

Zusätzlich zu regulären mathematischen Operatoren für Multiplikation, Division, Addition und Subtraktion können Sie auch die folgenden Operatoren verwenden:

  • Modulo-Operator (%)
  • Potenz/Exponent (^)
  • Ganzzahldivision (\)
  • Exklusives ODER (~)

Für alle Ausdrücke gilt die reguläre Reihenfolge der mathematischen Operationen. Alle Werte in Klammern werden zuerst als Untereinheit ausgewertet. Exponenten/Potenz-Operatoren werden im zweiten Schritt ausgewertet. Darauf folgen Multiplikation und Division und schließlich Addition und Subtraktion. Vergleichsoperatoren werden zuletzt ausgewertet, nachdem alle mathematischen Operationen abgeschlossen wurden.

Boolesche Operatoren

Sie können die folgenden booleschen Operatoren in Snippets verwenden. Alle diese Operatoren können mit numerischen oder String-numerischen oder String- Vergleichen verwendet werden. Bei String-Vergleichen wird die alphabetische Reihenfolge verwendet, um zu bestimmen, welcher Wert größer oder kleiner ist. Bei Vergleichen gilt: A = 1 und Z = 26. Bei String-Vergleichen wird zwischen Groß- und Kleinschreibung unterschieden.

OPERATOR-SYMBOL OPERATOR-NAME Details
= Gleich Wenn beide Seiten des Ausdrucks gleich sind, resultiert der Ausdruck in true (1); andernfalls resultiert er in false (0).
!= Ungleich Wenn die beiden Seiten des Ausdrucks ungleich sind, wird der Ausdruck als true (1) ausgewertet; andernfalls wird er als 0 false (0) ausgewertet.
> Größer als

Wenn die rechte Seite des Ausdrucks kleiner ist als die linke Seite, resultiert der Ausdruck in true (1); andernfalls resultiert er in false (0).

>= Gleich oder größer als

Wenn die rechte Seite des Ausdrucks gleich oder kleiner als die linke Seite ist, resultiert der Ausdruck in true (1); andernfalls resultiert er in false (0).

< Kleiner als

Wenn die linke Seite des Ausdrucks kleiner als die rechte Seite ist, resultiert der Ausdruck in true (1); andernfalls resultiert er in false (0).

<= Gleich oder kleiner als

Wenn die linke Seite des Ausdrucks gleich oder kleiner als die rechte Seite ist, resultiert der Ausdruck in true (1); andernfalls resultiert er in false (0).

& UND Wenn alle Unterausdrücke als "true" ausgewertet werden, resultiert der ganze Ausdruck in true (1); andernfalls resultiert er in false (0).
| ODER Wenn ein Unterausdruck als "true" ausgewertet wird, resultiert der Ausdruck in true (1); andernfalls resultiert er in false (0).

Gleichheitszeichen in Ausdrücken

Das Gleichheitszeichen ( = ) wird unterschiedlich interpretiert, je nachdem, mit welchem Ausdruck Sie arbeiten.

Die Ausdrücke in Zuweisungsanweisungen weisen einen Ausdruck zu, der als Wert einer Variablen interpretiert werden soll. In diesen Anweisungen repräsentiert das Gleichheitszeichen die Zuweisung des Wertes auf der rechten Seite des Ausdrucks zur Variablen auf der linken Seite.

In anderen Ausdrücken weist das Gleichheitszeichen auf eine Entsprechung hin. Beispiel: Im algebraischen Ausdruck x = 3 * (5 + 10) bedeutet das Gleichheitszeichen, dass x den Wert darstellt, der sich aus dem algebraischen Ausdruck 3 * (5 + 10) ergibt. In diesem Fall: x = 45. Sie können diesen algebraischen Ausdruck in einer Zuweisungsanweisung verwenden, um den Wert des Ausdrucks der Variablen x zuzuweisen. Wenn derselbe Ausdruck jedoch als boolescher Ausdruck verwendet wird, wäre das Ergebnis je nach dem Wert von x entweder "true" oder "false".

Boolesche Ausdrücke werden häufig in Studio-Skripten verwendet. Wenn Sie in diesen Ausdrücken das Gleichheitszeichen als Operator verwenden, vergleicht es den Wert auf der linken Seite des Gleichheitszeichens mit dem Wert auf der rechten Seite, um festzustellen, ob die Werte gleich sind. Wenn Sie den Wert einer Variablen in einem booleschen Ausdruck ändern müssen, verwenden Sie entweder eine ASSIGN-Aktion oder eine ASSIGN-Anweisung in einer Snippet-Aktion.