Expressions

Une expression est tout ce qui, dans votre script, compare une valeur ou aboutit à une valeur. Par exemple, X = 5, Y = dog et Z = "{var1}" peuvent tous être des expressions s'ils sont utilisés de manière à comparer les valeurs ou à obtenir une valeur. Par exemple, X = 5 compare la valeur de la variable X à 5. De même, Z = "{var1}" compare la valeur de la variable Z à la valeur actuelle de la variable var1.

Tous les exemples précédents pourraient également être des instructions d'affectation. Une instruction d'affectation affecte la valeur située à droite du signe égal à la variable située à gauche. Les affectations de variables ne sont pas des expressions.

Les expressions peuvent être utilisées pour :

  • Effectuer des calculs mathématiques ou algébriques.
  • Comparer deux valeurs et prendre une mesure en fonction du résultat de la comparaison.
  • Prendre des décisions logiques en se basant sur le fait qu'une expression est évaluée comme vraie ou fausse.

Les valeurs comparées dans une expression peuvent être constituées de lettres, de chiffres ou d'une combinaison des deux. Elles peuvent également inclure des variables. Dans Studio, il existe trois types d'expressions : numérique, chaîne et booléen.

Essayez.

Téléchargez le script d’exemples d’expressions et importez-le dans Studio. Les exemples de cette page d'aide sont disponibles dans les actions Snippet de l’exemple de script. Vous pouvez ouvrir la fenêtre Snippet Editor et lancer le débogueur pour voir comment fonctionne chaque exemple.

Expressions numériques

Les expressions numériques comprennent uniquement les chiffres et les opérateurs mathématiques ou booléens, tels que +, -, etc. Elles peuvent également inclure des références à des variables, si ces dernières contiennent des valeurs numériques utilisées dans les calculs.

Les expressions numériques sont utilisées dans les snippets et pour configurer les propriétés des actions Studio. Par exemple, dans l'action IF , vous configurez la propriété Expression avec une expression à évaluer comme mécanisme de prise de décision de l'action. Vous pouvez faire la même chose dans un snippet en utilisant le mot-clé IF.

Syntaxe des expressions numériques

Les expressions numériques ne peuvent pas être placées entre guillemets. Ce principe s’applique aux expressions mathématiques et booléennesFermé Un type de données qui a deux valeurs possibles : true et false.. Si vous placez une expression numérique entre guillemets, elle est traitée comme du texte. Par exemple, c1 = 123 + 456 est évaluée à 579, mais c2 = "123 + 456" est évaluée à 123 + 456.

Ne mettez pas les variables utilisées dans les expressions numériques entre accolades et guillemets. Ceci produirait une erreur dans votre script.

Évaluation des expressions numériques

Dans une expression numérique, si le script peut évaluer les valeurs numériques comme des nombres, il le fait. Cela signifie que :

  • Tout ce qui ne peut être évalué comme une valeur numérique, comme des lettres ou un mot, est considéré comme une référence de variable.
  • Si les caractères non numériques de l'expression sont une variable du script avec une valeur de chaîne, le script ignore les caractères non numériques et évalue la partie numérique de l'expression originale.
  • Si les caractères non numériques de l'expression sont une variable avec une valeur numérique, le script inclut cette valeur dans l'évaluation de l'expression.
  • Si les caractères non numériques de l'expression ne sont pas une variable du script, le script ignore ces caractères dans l'expression d’origine.

Dans l'exemple suivant, le script tente d'évaluer nextNum en tant que variable parce qu'il ne peut pas être évalué en tant que nombre  : c1 = 123 + 456 + nextNum. Les exemples suivants montrent le résultat de trois scénarios selon que nextNum est une variable ou non et quelle est sa valeur.

Lorsque nextNum est une variable avec une valeur de chaîne, le résultat est c1 = 579 :

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

Lorsque nextNum est une variable avec une valeur numérique, le résultat est c2 = 1368 :

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

Lorsque nextNum n'est pas une variable, le résultat est c3 = 579 :

ASSIGN c3 = 123 + 456 + nextNum

Si vous évaluez une expression qui comprend deux variables contenant toutes deux des valeurs numériques traitées comme des chaînes de caractères, le script convertit les valeurs en nombres et les évalue en conséquence. Le résultat de l’exemple suivant est c4 = 50 :

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

Vous pouvez inclure des expressions numériques dans des valeurs de chaînes de caractères en entourant l'expression d'accolades. Par exemple :

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

Nombres avec zéros initiaux

Il existe une différence dans la manière dont Studio gère les nombres lorsqu'ils sont traités comme des chaînes de caractères et lorsqu'ils sont traités comme des nombres. Lorsque les nombres sont traités comme une chaîne, ils peuvent comporter des zéros initiaux. Si vous additionnez deux variables contenant des valeurs de chaînes numériques avec des zéros en tête, les zéros initiaux sont supprimés. Par exemple, le résultat de l’expression suivante est c6=59 :

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

Si vous voulez que la valeur obtenue comporte des zéros initiaux, vous pouvez utiliser la fonction format() et l'espace réservé aux zéros pour ajouter les zéros à la valeur.

Expressions de chaîne

Les expressions en chaîne comprennent des caractères alphanumériques et spéciaux, tels que #, @, etc. La syntaxe des expressions de chaînes de caractères est similaire à la syntaxe d'affectation de valeurs de chaînes à des variables :

  • Dans les snippets, les valeurs des expressions doivent toujours être placées entre guillemets simples ou doubles. C'est la même chose que pour les valeurs de chaîne
  • Pour effectuer une substitution de variables dans expressions de chaîne, entourez le nom de la variable d’accolades.
  • Certains caractères, tels que les guillemets, sont considérés comme du code. Pour inclure ces caractères dans des valeurs de chaîne, vous devez utiliser des séquences d'échappement.

Comparaison de chaînes

Les chaînes de caractères peuvent être évaluées en tant que valeurs dans des expressions booléennes. Par exemple, vous pouvez utiliser l'expression suivante dans une instruction IF :

client = "Grendel Cainson"

Lorsque Client contient exactement la valeur Grendel Cainson, le résultat sera true. Pour toute autre valeur, le résultat sera false.

Vous pouvez utiliser les opérateurs « plus grand que » et « plus petit que » dans les comparaisons de chaînes de caractères. Dans ce type de comparaison, une valeur est attribuée à chaque lettre (A = 1 et Z = 26). Le script commence par comparer le premier caractère. S’ils sont différents, celui qui commence par une lettre plus éloignée dans l'alphabet est plus grand. Par exemple, dans la comparaison apple > banana, le résultat est faux. Cela s'explique par le fait que banana est plus grand que appleet que b se trouve plus loin dans l'alphabet.

Si les premiers caractères sont identiques, le script compare les seconds caractères. S’ils sont différents, la comparaison s'arrête là. Si les deuxièmes caractères sont identiques, le script continue à comparer les caractères jusqu'à ce qu'il atteigne une paire de caractères différents. Par exemple, dans la comparaison de grapes > grapey, le script compare chaque caractère jusqu'à la fin. Le résultat est faux, car grapey est plus grand que grapes, car y se trouve plus loin dans l'alphabet que s.

Les mêmes règles s'appliquent aux comparaisons « plus grand ou égal à » ou « plus petit ou égal à ». Si les scripts trouvent que la chaîne du côté gauche de l'opérateur est la même que celle du côté droit, l'expression est évaluée à vrai.

Les comparaisons de chaînes sont sensibles à la casse.

Séquences d'échappement dans les chaînes de caractères

Studio prend en charge les séquences d'échappement dans les constantes de chaîne. Les séquences d'échappement permettent d'inclure certains caractères spéciaux dans une chaîne. Les caractères tels que les guillemets doubles ou une accolade ouvrante sont reconnus comme du code. Lorsqu'ils sont inclus dans une chaîne, le compilateur les interprète avec la signification non littérale du code au lieu de leur valeur littérale. Les séquences d'échappement permettent d'inclure ces caractères dans des chaînes. Si vous incluez ces caractères dans des chaînes sans séquence d'échappement, le résultat ne sera pas celui que vous attendez et une erreur peut survenir.

Il n'est pas nécessaire d'ajouter des séquences d'échappement aux chaînes qui contiennent du XML ou du JSON converti. Les séquences d'échappement sont automatiquement ajoutées pour les caractères qui le nécessitent.

Préfixez toute chaîne dans laquelle vous utilisez une séquence d'échappement par un signe de dollar ($) : $"...". À l'intérieur des guillemets doubles, vous pouvez utiliser l'une des séquences d'échappement suivantes :

Séquence Détails
\" Intégrez un guillemet double.
\' Intégrez une citation unique.
\t Permet d'intégrer une tabulation (ASCII 9).
\r Permet d'intégrer un retour chariot (ASCII 13).
\n Permet d'intégrer un saut de ligne (ASCII 10).
\b Permet d'intégrer un retour arrière (ASCII 8).
\{ Intégrez une accolade ouverte. Vous ne devez utiliser une séquence d’échappement devant l'accolade fermante que si le texte qui la précède ne contient pas d'accolade ouverte avec séquence d’échappement. Si vous devez placer une séquence d’échappement devant une accolade fermante, voici comment procéder : \}
\0 Intégrez un null (0 est un zéro).

L'exemple suivant utilise la séquence d'échappement \n pour ajouter un saut de ligne à la chaîne. Cela permet de déplacer le curseur vers la ligne suivante sans revenir au début de la ligne.

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

Lorsque la chaîne est imprimée, la sortie ressemble à ceci :

A phrase

And a new line ]

Dans l'exemple précédent, le crochet fermant représente le curseur.

L'exemple suivant utilise la séquence d'échappement \" pour inclure des guillemets doubles dans la chaîne :

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

Lorsque la chaîne est imprimée, elle ressemble à ceci : Embedding "double quotes" in a string. Sans la séquence d'échappement, le script ne reconnaîtrait la chaîne que jusqu'au symbole de guillemets doubles précédant le mot double.

L'exemple suivant utilise la séquence d'échappement \{ pour inclure des accolades littérales dans la chaîne :

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

Lorsque la chaîne est imprimée, elle ressemble à ceci : Using {curly} braces. Sans la séquence d'échappement, le script aurait interprété {curly} comme une variable. Si aucune valeur n'est trouvée pour la variable d’accolade, le script la remplacera par rien, de sorte que la valeur de la variable sera Using braces.

Expressions booléennes

Studio permet d'utiliser des expressions booléennesFermé Un type de données qui a deux valeurs possibles : true et false.. Elles peuvent être utilisées pour créer une logique de prise de décision dans votre script. Comme les expressions booléennes sont évaluées à « vrai » ou « faux », vous pouvez les utiliser pour créer des conditions qui doivent être remplies pour décider de la voie à suivre. Si la condition est remplie, le script suit cette branche, mais si elle ne l'est pas, il suit l'autre.

Il existe un certain nombre d'opérateurs que vous pouvez utiliser dans les expressions booléennes. Cela vous permet de définir une condition logique qui répond aux besoins de votre script. Par exemple, vous pouvez vérifier si une valeur est identique à une autre à l'aide du signe égal (=) ou si une valeur est supérieure à une autre à l'aide de l'opérateur plus grand que (>).

Vous pouvez utiliser des expressions booléennes avec des actions telles que If et Snippet (pages d’aide dans CXone Studio : If et Snippet). Un certain nombre d’instructions que vous pouvez utiliser dans des snippets utilisent des expressions booléennes comme mécanisme de prise de décision :

  • IF
  • IF ... ELSE
  • SELECT

L'exemple suivant illustre l'utilisation d'une expression booléenne avec une instruction IF...ELSE dans un snippet :

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

Les expressions booléennes peuvent également être utilisés dans des scripts avec actions. L'image suivante montre la même instruction IF...ELSE utilisant des actions Studio. Vous pouvez tester cet exemple dans le script d'exemple d’expressions.

Une version script de l'exemple booléen de cette section de la page.

Valeurs booléennes pour activer ou désactiver des paramètres

Les valeurs booléennes sont parfois utilisées dans les scripts pour activer ou désactiver des paramètres dans CXone. Dans ces cas, vous attribuez une valeur booléenne à une variable. Pour activer un paramètre, attribuez la valeur vrai ou 1. Pour désactiver un paramètre, attribuez la valeur faux ou 0.

Les mots et les nombres sont des valeurs booléennes valides. Toutefois, consultez l'aide en ligne de l'action Studio que vous utilisez pour voir s'il existe une valeur préférée pour les propriétés de l'action. Dans les deux cas, la valeur utilisée ne doit pas être entre guillemets. Si vous placez la valeur entre guillemets, le script la traite comme une chaîne littérale et non comme une valeur booléenne.

Les opérateurs

Un opérateur est un symbole qui représente une opération mathématique ou une comparaison. Les symboles tels que +, - et = sont des opérateurs. Les opérateurs booléens comparent deux expressions et donnent une réponse de type vrai/faux. Snippet prend en charge les opérateurs mathématiques et les opérateurs booléens.

Outre les opérateurs mathématiques classiques pour la multiplication, la division, l'addition et la soustraction, vous pouvez également utiliser les opérateurs suivants :

  • Opérateur de module (%)
  • Puissance/exposant (^)
  • Division de nombre entier (\)
  • OU exclusif (~)

L'ordre des opérations mathématiques normales s'applique à toutes les expressions. Tout ce qui se trouve entre parenthèses est d'abord évalué en tant que sous-unité. Les opérateurs d’exposant/de puissance sont évalués en second lieu. La multiplication et la division sont évaluées ensuite, suivies de l'addition et la soustraction. Les opérateurs de comparaison sont les derniers à être évalués, après que toutes les opérations mathématiques ont été effectuées.

Opérateurs booléens

Vous pouvez utiliser les opérateurs booléens suivants dans les snippets. Tous ces opérateurs peuvent être utilisés avec les comparaisons de type numérique ou chaînenumérique ou chaîne. Les comparaisons de type chaîne utilisent l'ordre alphabétique pour déterminer lequel est supérieur ou inférieur. Dans les comparaisons, A = 1 et Z = 26. Les comparaisons de chaînes sont sensibles à la casse.

SYMBOLE de l’opérateur NOM DE L'OPÉRATEUR Détails
= Égal Si les deux côtés de l’expression sont équivalents, l'expression donne true (1) ; sinon, l'expression donne false (0).
!= Pas égal Si les deux côtés de l’expression ne sont pas équivalents, l'expression donne true (1) ; sinon, l'expression donne 0 false (0).
> Supérieur

Si le côté droit de l'expression est inférieur au côté gauche, l'expression donne true (1) ; sinon, elle donne false (0).

>= Supérieur ou égal

Si le côté droit de l'expression est inférieur ou égal au côté gauche, l'expression donne true (1) ; sinon, elle donne false (0).

< Inférieur à

Si le côté gauche de l'expression est inférieur au côté droit, l'expression donne true (1) ; sinon, elle donne false (0).

<= Inférieur ou égal

Si le côté gauche de l'expression est inférieur ou égal au côté droit, l'expression donne true (1) ; sinon, elle donne false (0).

& Et Si toutes les sous-expressions sont évaluées comme vraies, l'expression entière donne true (1) ; sinon elle donne false (0).
| Ou Si l'une des sous-expressions est évaluée comme vraie, l'expression donne true (1) ; sinon elle donne false (0).

Signes « égal » dans les expressions

L'opérateur de signe égal ( = ) a des significations différentes selon le type d'expression avec lequel vous travaillez.

Les expressions utilisées dans les instructions d'affectation attribuent à une expression la valeur d'une variable. Le signe égal utilisé dans ces instructions affecte la valeur située à droite de l’expression à la variable située à gauche.

Dans d'autres expressions, le signe égal indique l'évaluation de l'égalité. Par exemple, dans l'expression algébrique x = 3 * (5 + 10) , le signe égal signifie que x représente la valeur résultant de l'expression algébrique 3 * (5 + 10). Dans ce cas, x = 45. Vous pouvez utiliser cette expression algébrique dans une instruction d'affectation pour affecter la valeur de l'expression à une variable x. Toutefois, si la même expression était utilisée en tant que booléen, elle serait évaluée comme vraie ou fausse en fonction de la valeur de x.

Les expressions booléennes sont couramment utilisées dans les scripts Studio. Si vous utilisez un signe égal comme opérateur dans ces expressions, il compare la valeur à gauche du signe égal à la valeur à droite pour déterminer l'égalité. Si vous devez modifier la valeur d'une variable utilisée dans une expression booléenne, utilisez une action ASSIGN ou une instruction ASSIGN dans une action Snippet.