Fonctions intégrées

Studio possède des fonctions intégrées que vous pouvez utiliser dans vos scripts. Certaines des fonctions intégrées sont disponibles dans la liste de remplissage automatique qui s'affiche lorsque vous tapez dans la fenêtre Snippet editor. Il existe d'autres fonctions intégrées qui ne figurent pas dans cette liste, mais que vous pouvez tout de même utiliser. Vous trouverez des informations détaillées à propos de toutes les fonctions intégrées disponibles dans la seconde moitié de cette page.

Cette page fournit également des listes de fonctions intégrées regroupées en catégories. Cela facilite la localisation d'une fonction lorsque vous connaissez le type de données avec lesquelles vous travaillez et ce que vous voulez accomplir, mais pas le nom de la fonction. Vous pouvez consulter des listes de fonctions qui vous permettent de :

Il existe également une liste d’autres fonctions qui n'entrent pas dans une catégorie.

Pour en savoir plus sur l'utilisation des fonctions dans Studio, y compris la création de vos propres fonctions personnalisées, consultez la page d'aide Fonctions.

Cette page ne fournit pas d'informations sur les fonctions intégrées à utiliser avec RestProxy, le service que vous pouvez utiliser pour connecter vos scripts aux API RESTful. Ces fonctions sont décrites dans la page d'aide RestProxy.

Essayez.

Téléchargez le script d’exemples de fonctions 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 l'exemple.

Fonctions à utiliser avec les dates et les heures

Utilisez les fonctions suivantes avec les dates et les heures dans vos scripts. Studio prend en charge le format 24 heures, et non le format 12 heures. Tenez-en compte lorsque vous définissez les heures dans les scripts.

Une date d'automatisation OLE est une date écrite sous la forme d'un nombre à virgule flottante. Le côté gauche de la virgule est le nombre de jours depuis minuit le 30 décembre 1899. Le côté droit de la virgule est l’heure de la journée, divisée par 24. Par exemple, 6 h 00 le 31 décembre 1899 correspond à 1,25.

Fonction

Description

asdate() Convertit le contenu d’une variable en une chaîne date/heure à l'aide du format de date par défaut.
asdatedow() Renvoie le jour de la semaine sous la forme d'une valeur ordinale comprise entre 0 et 6, où 0 correspond à dimanche.
asdatetime() Convertit la valeur d’une variable en une chaîne date/heure à l'aide du format de date/heure spécifié.
asgmt() et asutc() Convertit le contenu d’une variable en une chaîne date/heure convertie en GMC ou UTC.
asisodatetime()

Convertit la valeur d'une variable au format date/heure ISO 8601 : yyyy-MM-ddTHH:mm:ss.SSSXXX.

astime() Convertit le contenu d'une variable en une valeur d'heure.
dateadd(date, value) Renvoie une nouvelle date basée sur date plus value.
datebuild(year, month, day) Renvoie une chaîne date/heure en utilisant l’année, le mois et le jour spécifiés.
datediff(unit,date1, date2) Renvoie la différence entre deux dates.
datefmt(format) Convertit le contenu d’une variable en une chaîne date/heure à l'aide du format spécifié.
datepart(unit)

 

Renvoie une partie d'une date ou d'une heure en fonction de la unit spécifiée.
datetimebuild(year, month, day, hour, minute, second) Renvoie une chaîne date/heure basée sur les Year, Month, Day, Hour, Minute, Second spécifiés.
dow() Renvoie le jour actuel de la semaine sous la forme d'une valeur ordinale comprise entre 0 et 6, où 0 correspond à dimanche.

Fonctions à utiliser avec les nombres

Utilisez les fonctions suivantes avec des variables contenant des valeurs numériques. D'autres fonctions que vous pouvez utiliser avec les nombres sont les fonctions pour les calculs mathématiques.

Fonction

Description

ceil(value

Renvoie le plus petit entier inférieur ou égal à la value spécifiée.

floor(value

Renvoie le plus grand entier inférieur ou égal à la value spécifiée.

format(format) Renvoie une chaîne contenant les caractères numériques formatés à l'aide du format spécifié.
isdigit() Évalue le contenu d'une variable pour déterminer si le premier caractère est numérique (0-9).
isnumeric() Évalue le contenu d'une variable pour déterminer si tous les caractères sont alphabétiques (A-Z ou a-z).
max(value1, value2) et min(value1, value2) Renvoie la plus grande ou la plus petite des deux valeurs spécifiées.
random() Renvoie un nombre entier non négatif aléatoire.
round(value) Arrondit la value spécifiée à l'entier le plus proche.

Fonctions à utiliser avec les lettres

Utilisez les fonctions suivantes avec des variables contenant des lettres :

Fonction

Description

isalpha() Évalue le contenu d'une variable pour déterminer si tous les caractères sont alphabétiques (A-Z ou a-z).
isletter()

Évalue le contenu d'une variable pour déterminer si le premier caractère est alphabétique (A-Z ou a-z).

islower() et isupper() Évalue le contenu d'une variable pour déterminer si le premier caractère est une lettre minuscule (a-z) ou majuscule (A-Z).
lower() et upper()

Convertit toutes les lettres de la valeur en minuscules (a-z) ou en majuscules (A-Z).

Fonctions pour effectuer des calculs

Ces fonctions permettent d'effectuer des calculs mathématiques. Ces fonctions ne sont pas disponibles dans la liste de remplissage automatique qui s’affiche lorsque vous utilisez une action SNIPPET, mais elles fonctionnent si vous les entrez manuellement.

Fonction

Description

abs(value)

Renvoie la valeur absolue de la value spécifiée.

acos(value)

Renvoie l'angle en radians dont le cosinus est la value spécifiée.

asin(value)

Renvoie l'angle en radians dont le sinus est la value spécifiée.

atan(value)

Renvoie l'angle en radians dont la tangente est la value spécifiée.

atan2(x, y)

Renvoie l'angle en radians dont la tangente est le quotient des deux nombres (x, y) spécifiés.

cos(value)

Renvoie le cosinus de la value spécifiée. La value doit être en radians.

cosh(value)

Renvoie le cosinus hyperbolique de la value spécifiée. La value doit être en radians.

exp(value)

Renvoie le nombre élevé à la puissance spécifiée dans value.

ln(value)

Renvoie le logarithme naturel (base e) de la value. La value est spécifiée sous la forme d'un nombre en base 10.

log10(value)

Renvoie le logarithme en base 10 de la value spécifiée.

log2(value, base)

Renvoie le logarithme en base 2 de la value spécifiée. La value est spécifiée sous la forme d'un nombre en base 10.

logn(value, base)

Renvoie le logarithme de la value spécifiée dans la base spécifiée. Les deux paramètres sont spécifiés en tant que nombres de base 10.

round(value)

Arrondit la value spécifiée à l'entier le plus proche.

sgn(value)

Renvoie une valeur indiquant le signe de la value spécifiée. Renvoie -1 si value est inférieure à zéro, 0 si value est égale à zéro et 1 si value est supérieure à zéro.

sin(value)

Renvoie le sinus de la value spécifiée. La value doit être en radians.

sinh(value)

Renvoie le sinus hyperbolique de la value spécifiée. La value doit être en radians.

sqrt(value)

Renvoie la racine carrée de la value spécifiée.

tan(value)

Renvoie la tangente de la value spécifiée. La value doit être en radians.

tanh(value)

Renvoie la tangente hyperbolique de la value spécifiée. La value doit être en radians.

trunc(value)

Calcule la partie intégrale de la value spécifiée. trunc() arrondit la value à l'entier le plus proche vers zéro.

Fonctions de modification des valeurs

Utilisez les fonctions suivantes lorsque vous voulez modifier la valeur d'une variable en l'affectant à une autre variable.

Outre les fonctions présentées dans ce tableau, de nombreuses fonctions pour les dates et les heures permettent de modifier les valeurs. Par exemple, vous pouvez convertir une valeur de date dans un format différent.

Fonction

Description

append(text) Ajoute le contenu d'une première variable à une seconde variable
asjson() et asxml() Convertit le contenu d’une variable convertie en JSON ou XML.
dateadd(date, value)

Renvoie une nouvelle date basée sur date plus value.

datefmt(format)

Convertit le contenu d’une variable en une chaîne date/heure à l'aide du format spécifié.

format(format) Renvoie une chaîne contenant les caractères numériques formatés à l'aide du format spécifié.
lower() et upper()

Convertit toutes les lettres de la valeur en minuscules (a-z) ou en majuscules (A-Z).

replace(old, new) Remplace toutes les occurrences de old par new.
split(delimiter) Convertit le contenu de la variable en une chaîne délimitée par des barres verticales qui peut être traitée comme un tableau. Remplace la delimiter spécifiée existante par un caractère de trait vertical.
trim() , ltrim() et rtrim() Renvoie une chaîne avec les caractères d'espacement de début supprimés. Vous pouvez faire supprimer tous les caractères d'espacement, ou seulement les caractères d'espacement de début ou de fin.
urlencode() et urldecode() Encode ou décode une URL conformément à la norme internet pour l'encodage des URL.

Fonctions permettant de déterminer le contenu d'une valeur

Ces fonctions permettent de connaître le contenu d'une variable :

Fonction

Description

contains(value) Évaluer une variable pour la value spécifiée.
count() Renvoie le nombre d'éléments dans un tableau ou un objet.
index(indexValue) Renvoie l’élément du tableau à partir du contenu de la variable en fonction de la indexValue spécifiée.
indexof(text) Renvoie la position du text spécifié dans le contenu d'une variable.
isalpha () Évalue le contenu d'une variable pour déterminer si tous les caractères sont alphabétiques (A-Z ou a-z).
isdigit() Évalue le contenu d'une variable pour déterminer si le premier caractère est numérique (0-9).
isletter()

Évalue le contenu d'une variable pour déterminer si tous les caractères sont alphabétiques (A-Z ou a-z).

isnumeric()

Évalue le contenu d'une variable pour déterminer si tous les caractères sont numériques (0-9).

isupper() et islower() Évalue le contenu d'une variable pour déterminer si le premier caractère est une lettre minuscule (a-z) ou majuscule (A-Z).
length() Renvoie le nombre de caractères de la valeur de la variable.
left() et right() Renvoie les caractères les plus à gauche ou les plus à droite du contenu de la variable, si ces caractères sont des nombres. Le nombre de caractères renvoyés est basé sur le count spécifié.
size()

Renvoie le nombre d'éléments dans un tableau.

Fonctions permettant d’extraire une partie d'une valeur

Utilisez ces fonctions lorsque vous voulez extraire une partie d'une valeur d'une variable pour l'utiliser dans une autre variable :

Fonction

Description

datepart(unit)

Renvoie une partie d'une date ou d'une heure en fonction de la unit spécifiée.

index(indexValue) Renvoie l’élément du tableau à partir du contenu de la variable en fonction de la indexValue spécifiée.
left(count) et right(count) Renvoie les caractères les plus à gauche ou les plus à droite du contenu de la variable, si ces caractères sont des nombres. Le nombre de caractères renvoyés est basé sur le count spécifié.
mid(start, length) Retourne les caractères de start à start+length.
substr(start, end) Retourne les caractères de start à end.

Fonctions à utiliser avec les tableaux

Les fonctions suivantes fonctionnent avec des tableaux.

Fonction

Description

count()

Renvoie le nombre d'éléments dans un tableau ou un objet.

index(indexValue)

Renvoie l’élément du tableau à partir du contenu de la variable en fonction de la indexValue spécifiée.

indexof(text)

Renvoie la position du text spécifié dans le contenu d'une variable.

size()

Renvoie le nombre d'éléments dans un tableau.

split(delimiter)

Convertit le contenu de la variable en une chaîne délimitée par des barres verticales qui peut être traitée comme un tableau. Remplace la delimiter spécifiée existante par un caractère de trait vertical.

Autre

Fonction

Description

char(code)

Renvoie un caractère à partir de la valeur ASCII code, ce qui permet à un script d'ajouter par programmation des caractères spéciaux à une chaîne.

copy(objectName)

Crée une copie des données contenues dans l'objet de données dynamiques objectName. La copie est distincte de l'original, de sorte que vous pouvez modifier une valeur dans une version sans affecter la même valeur dans l'autre version.

iif(compare, trueval, falseval)

Inline-If pour les chiffres. Évalue compare, puis renvoie trueval ou falseval selon les résultats de l’évaluation.

iifs(compare, trueval, falseval)

Chaîne inline-if. Évalue compare, puis renvoie trueval ou falseval selon les résultats de l’évaluation.

isnull()

Détermine si un objet de données dynamique ou une propriété d'un objet est nul (indéfini ou 0).

savetodb(1or0) Vous permet d'enregistrer la valeur de la variable dans la base de données.
screenpop()

Renvoie une valeur indiquant si l'indicateur ScreenPop est activé sur la variable.

setscreenpop(1or0)

Permet d'utiliser la valeur d'une variable dans la montée de fiche-clientFermé Une fenêtre contextuelle configurable avec des informations sur le contact. Elle apparaît sur l'écran d'un agent suite à un événement spécifique, généralement lorsque l'agent se connecte à un contact., si la compétenceFermé Utilisé pour automatiser la livraison des interactions en fonction des compétences, des capacités et des connaissances des agents ACD comporte l’option Utiliser les montées de fiche-client activée. action

setscreenpop() n'est pas une vraie fonction. Il s'agit d’une propriété de variables de Studio que vous pouvez définir lorsque vous travaillez avec des montées de fiche-clientFermé Une fenêtre contextuelle configurable avec des informations sur le contact. Elle apparaît sur l'écran d'un agent suite à un événement spécifique, généralement lorsque l'agent se connecte à un contact.. Vous pouvez l'appliquer aux variables lorsque vous travaillez dans des snippets. Vous pouvez également la définir en utilisant l'action Assign pour créer des variables.

Ajoutez setscreenpop() à une variable avec 1 comme argument pour que la valeur de la variable soit transmise à la montée de fiche-client.

ASSIGN val1 = "name"
ASSIGN popthis = val1.setscreenpop(1)

 

Toutes les fonctions disponibles

Cette section fournit des informations détaillées sur l'utilisation de chaque fonction intégrée. Sauf indication contraire, vous pouvez appeler ces fonctions partout où vous utiliseriez une variable ou une expression.

abs(value)

Renvoie la valeur absolue de la value spécifiée.

ASSIGN abVal = "{abs(-42)}"

Le résultat de l’exemple est abVal = 42

acos(value)

Renvoie l'angle en radians dont le cosinus est la value spécifiée.

ASSIGN angleRad3 = "{acos(cosNum)}"

Le résultat de l’exemple est angleRad3 = 0.394791119699762

append(string)

Ajoute le string à la fin du contenu existant de la variable. Cette fonction ne fonctionne que dans le cadre d'une action Snippet ou ASSIGN.

IF TEST = 1
{
  ASSIGN originalString = "My name"
  ASSIGN originalString2 = "Whose pajamas are these? "
  ASSIGN appendWithEscape = $"They're the cat's pajamas."			
}
originalString.append(" is Inigo Montoya.")
originalString2.append(AppendWithEscape)

Le résultat de l’exemple est:

  • originalString = My name is Inigo Montoya.
  • originalString2 = Whose pajamas are these? They're the cat's pajamas.

asdate()

Convertit le contenu d’une variable en une chaîne date/heure à l'aide du format de date par défaut.

Utilisée comme une expression de chaîne : convertit le contenu de la variable en une chaîne date/heure.

Utilisée comme une expression numérique : convertit le contenu de la variable en date/heure d'automatisation OLE en analysant le contenu de la chaîne. Le contenu de la chaîne doit correspondre à l'un des formats de date standard de Windows, tels que mm/dd/yyyy.

IF TEST = 1
{
  ASSIGN myDate = "{date}"
}

//This example converts a date string into its OLE numeric equivalent
ASSIGN numericDate = myDate.asdate()

//This example converts an OLE numeric date to its string equivalent
ASSIGN stringDate = "{numericDate.asdate()}" 

Le résultat de cet exemple dépend de la date locale au moment de l'exécution de la fonction. Si la date locale actuelle est le 07/03/2023, les résultats sont les suivants :

  • numericDate = 45110
  • stringDate = 07/03/2023

asdatedow()

Convertit le contenu de la variable en une date/heure d'automatisation OLE en analysant le contenu de la chaîne, puis renvoie le jour de la semaine sous la forme d'une valeur ordinale comprise entre 0 et 6, où 0 correspond à dimanche. Le contenu de la chaîne doit correspondre à l'un des formats de date les fenêtres standard de, tels que MM/dd/yyyy.

IF TEST = 1
{
  ASSIGN MyDate = "07/03/2023"
}
ASSIGN MyDow = MyDate.asdatedow()
SWITCH MyDow
{
  CASE 0   { ASSIGN newToday = "Sunday" }
  CASE 1   { ASSIGN newToday = "Monday" }
  CASE 2   { ASSIGN newToday = "Tuesday" }
  CASE 3   { ASSIGN newToday = "Wednesday" }
  CASE 4   { ASSIGN newToday = "Thursday" }
  CASE 5   { ASSIGN newToday = "Friday" }
  CASE 6   { ASSIGN newToday = "Saturday" }
}

Le résultat de l’exemple est

  • myDow = 1
  • newToday = Monday

asdatetime()

Convertit la valeur d’une variable en une chaîne date/heure à l'aide du format de date/heure spécifié.

Utilisée comme une chaîne : convertit le contenu de la variable en une chaîne date/heure.

Utilisée comme une valeur numérique : convertit le contenu de la variable en date/heure d'automatisation OLE en analysant le contenu de la chaîne. Le contenu de la chaîne doit correspondre à l'un des formats de date/heure standard de Windows, tels que MM/dd/yyyy HH:mm:ss.

Si vous transmettez une date sans heure, la fonction ajoute une heure. La valeur par défaut est 12:00 AM.

IF TEST = 1
{
  ASSIGN MyDateTime = "{now}"
  ASSIGN anotherDateTime = "04/03/23 11:34:09 PM"
}
ASSIGN numericDateTime = myDateTime.asdatetime()
ASSIGN numericDateTime2 = anotherDateTime.asdatetime()

ASSIGN stringDateTime = "{numericDateTime.asdatetime()}"
ASSIGN stringDateTime2 = "{numericDateTime2.asdatetime()}"
		

Le résultat de l’exemple est:

  • numericDateTime = 45110.3720486111 (lorsque l'heure locale actuelle est 7/3/2023 8:55:45 AM)
  • numericDateTime2 = 45019.9820486111
  • stringDateTime = 7/3/2023 8:55:45 AM
  • stringDateTime2 = 4/3/2023 11:34:09 PM

asgmt() et asutc()

La fonction asgmt() convertit l'heure en GMT et la fonction asutc() convertit l'heure en UTC. Le format de la date dépend du contenu original de la variable.

Utilisée avec une expression de type chaîne : les fonctions convertissent la valeur en date/heure d’automatisation OLE traduite en GMT ou UTC. La variable doit contenir une représentation sous forme de chaîne valide d'une date/heure. L’heure source est basée sur le fuseau horaire de unité d’exploitationFermé Regroupement organisationnel de haut niveau utilisé pour gérer le support technique, la facturation et les paramètres globaux de votre CXone environnement ou le fuseau horaire défini via l’action Timezone.

Utilisée avec une expression numérique  : les fonctions convertissent la valeur en une chaîne date/heure traduite en GMT ou UTC. Par exemple : "Mon, 03 oct 2023 13:35:14 GMT".

Lors de l'utilisation de ces fonctions, le format de l'heure contenue dans la variable ne peut pas non plus inclure :

  • Un décalage par rapport à UTC.
  • Un caractère Z, tel que 2023-03-04 18:54:39.000Z. L’inclusion d’un Z indique que l'heure est décalée de zéro par rapport à GMT/UTC.

L'inclusion de l'un ou l'autre de ces éléments provoque une erreur lorsque asgmt()ou asutc() tente de convertir les fuseaux horaires, car le fuseau horaire d'origine est considéré comme étant différent du fuseau horaire de l’unité commerciale. De plus, pour éviter l'erreur lors de l'utilisation du format date/ heure ISO 8601, incluez une action Timezone avant l’action Snippet et configurez-la pour utiliser le fuseau horaire de votre unité commerciale. Cela définit le fuseau horaire au niveau du script afin que le script et votre unité commerciale aient le même fuseau horaire.

IF TEST = 1
{
  ASSIGN MyDateTime = #"{now}" 
}

ASSIGN GMTDateTimeNumeric = MyDateTime.asgmt()
ASSIGN GMTDateTimeString = "{GMTDateTimeNumeric.asdatetime()}"

ASSIGN UTCDateTimeNumeric = MyDateTime.asutc()
ASSIGN UTCDateTimeString = "{UTCDateTimeNumeric.asdatetime()}"

asin(value)

Renvoie l'angle en radians dont le sinus est la value spécifiée.

ASSIGN angleRad4 = "{asin(sinNum)}"

Le résultat de l’exemple est angleRad4 = 0.394791119699762

asisodatetime()

Convertit la valeur d'une variable au format date/heure ISO 8601 : yyyy-MM-ddTHH:mm:ss.SSSXXX. La sortie de cette fonction est toujours le format date/heure ISO.

Dans les appels REST API, les horodatages ISO exprimés par rapport à UTC qui apparaissent dans la réponse sont convertis en heure des Rocheuses (MT). Si aucun décalage n’est spécifié, l’horodatage n’est pas converti.

IF TEST = 1
{
	ASSIGN myDateTime = "{now}"
	ASSIGN anotherDateTime = "04/03/23 11:34:09 PM"
}
ASSIGN numericDateTime = myDateTime.asisodatetime()
ASSIGN numericDateTime2 = anotherDateTime.asisodatetime()
ASSIGN stringDateTime = "{numericDateTime.asisodatetime()}"
ASSIGN stringDateTime2 = "{numericDateTime2.asisodatetime()}"

Le résultat de l’exemple est:

  • numericDateTime = 2023-07-03T09:43:06.000Z (lorsque la date/heure locale actuelle est 7/3/2023 9:43:06 AM)
  • numericDateTime2 = 2023-04-03T23:34:09.000Z
  • stringDateTime = 2023-07-03T05:43:06.000Z
  • stringDateTime2 = 2023-04-03T19:34:09.000Z

asjson() et asxml()

Convertit un objet JSON ou XML en chaîne et l’affecte à une nouvelle variable. L'exemple suivant utilise un objet de données dynamiques, mais vous pouvez le utiliser ces fonctions avec des objets retournés depuis un appel d'API ou les objets d'actions de bot d’agent virtuelFermé Une application logicielle qui gère les interactions avec les clients à la place d'un agent humain en direct..

La fonction asjson() convertit tout ce qui se trouve dans l’objet en chaîne avec des guillemets doubles, y compris les valeurs numériques ou booléennesFermé Un type de données qui a deux valeurs possibles : true et false.. Vous pouvez en tenir compte dans votre script si vous avez besoin d’une valeur numérique ou booléenne correctement formatée dans votre JSON. Une solution consiste à utiliser la fonction replace(). Elle vous permet de remplacer les guillemets doubles de la valeur de la chaîne par une valeur nulle.

DYNAMIC object1
ASSIGN object1.value1 = "this"
ASSIGN object1.value2 = "that"
DYNAMIC object2				
ASSIGN object2.value1 = "first"
ASSIGN object2.value1 = "last"			

ASSIGN objectjson = "{object1.asjson()}"
ASSIGN objectxml = "{object2.asxml()}"		

Une autre solution consiste à injecter des chaînes d’espace réservé qui sont remplacées manuellement après conversion de l’objet dynamique en chaîne JSON.

ASSIGN integerValue = 1234
ASSIGN trueValue = true
ASSIGN falseValue = false
DYNAMIC object
ASSIGN object.myIntegerValue = "INTEGERVALUE_PLACEHOLDER"
IF trueValue = true
  {
	ASSIGN object.myTrueValue = "TRUE_PLACEHOLDER"
  }
ELSE
  {
	ASSIGN object.myTrueValue = "FALSE_PLACEHOLDER"
  }
IF falseValue = true
  {
	ASSIGN object.myFalseValue = "TRUE_PLACEHOLDER"
  }
ELSE
  {
	ASSIGN object.myFalseValue = "FALSE_PLACEHOLDER"
  }
ASSIGN objectJSON = "{object.asjson()}"

ASSIGN objectJSON = objectJSON.replace("{char(34)}TRUE_PLACEHOLDER{char(34)}","true").replace("{char(34)}FALSE_PLACEHOLDER{char(34)}","false")
ASSIGN objectJSON = objectJSON.replace("{char(34)}INTEGERVALUE_PLACEHOLDER{char(34)}",integerValue)

Meilleures pratiques : Utilisez la fonction asjson() dans une action Snippet et stockez le JSON résultant dans une variable de type chaîne. Utilisez la variable de type chaîne dans les propriétés d’autres actions Studio lorsque vous devez transmettre les données JSON. Cette approche évite le risque d'erreurs de validation lors de l'enregistrement du script.

Le résultat de l’exemple est:

  • objectjson={"value1":"this","value2":"that"}

  • objectxml=<?xml version="1.0" encoding="utf-16" standalone="yes"?><DynamicDataObject><value1>first</value1><value2>last</value2></DynamicDataObject>

astime()

Convertit le contenu d'une variable en une valeur d'heure.

Utilisée avec une valeur de chaîne : convertit le contenu de la variable en date/heure d’automatisation OLEFermé Un moyen d'écrire des dates sous forme de nombre entier à virgule flottante. Indique le nombre de jours depuis le 30 décembre 1899.. Par exemple, 0,353506944447872.

Utilisée avec une valeur numérique : convertit le contenu de la variable en une chaîne d’heure. La variable doit contenir une valeur d’heure d'automatisation OLE. Par exemple, 8:29:03 AM.

IF TEST = 1
{
  ASSIGN myTime = "{time}"
}

//This example converts a time string into its OLE numeric equivalent
ASSIGN numericTime = myTime.astime()

//This example converts a OLE numeric time to its string equivalent
ASSIGN stringTime = "{numericTime.astime()}" 

Le résultat de cet exemple dépend de l’heure locale au moment du test de la fonction. Si la valeur de time est 8:37:42 AM, les résultats sont les suivants :

  • numericTime = 0.359513888892252
  • stringTime = 8:37:42 AM

atan(value)

Renvoie l'angle en radians dont la tangente est la value spécifiée.

ASSIGN angleRad = "{atan(0.4166666666666667)}"		

Le résultat de l’exemple est angleRad=0.394791119699762

atan2(value)

Renvoie l'angle en radians dont la tangente est le quotient des deux nombres (x, y) spécifiés.

ASSIGN angleRad2 = "{atan2(5,12)}"

Le résultat de l’exemple est angleRad2=0.394791119699761

ceil(value) et floor(value)

ceil renvoie le plus petit entier inférieur ou égal à la value spécifiée.

floor renvoie le plus grand entier inférieur ou égal à la value spécifiée.

IF TEST = 1
{
  ASSIGN value = 102.589
}
ASSIGN newValue1 = floor(value)

ASSIGN newValue2 = ceil(value)

Le résultat de l’exemple est:

  • newValue1 est 102.
  • newValue1 est 103.

contains(value)

Renvoie une valeur de 1 (vrai) si la variable contient une value spécifiée. Si la variable est un tableau, tous les éléments seront vérifiés pour connaître la value exacte.

contains() n'est pas sensible à la casse.

IF TEST = 1
{
  ASSIGN varString1 = "abc!123"
  ASSIGN varString2 = "8001234567|8881234567|8771234567"
  ASSIGN dnis = 8881234567
  ASSIGN dnis2 = 8887654321
}
ASSIGN stringFoundRes1 = varString1.contains('!') // true
ASSIGN stringFoundRes2 = varString1.contains('D') // false 

ASSIGN DNISFoundRes1 = varString2.contains(dnis) // true
ASSIGN DNISFoundRes2 = varString2.contains(dnis2) // false

Le résultat de l’exemple est:

  • stringFoundRes1 est 1 (vrai).
  • stringFoundRes2 est 0 (faux).
  • DNISFoundRes1 est 1 (vrai).
  • DNISFoundRes2 est 0 (faux).

char(code)

Renvoie un caractère à partir de la valeur ASCII code, ce qui permet à un script d'ajouter par programmation des caractères spéciaux à une chaîne. Par exemple, vous pouvez ajouter des retours à la ligne, des tabulations et des caractères de saut de ligne.

Utilisez cette fonction avec prudence. char(0) à char(7) sont réservés à un usage interne et peuvent provoquer des dysfonctionnements des scripts.

IF TEST = 1
{
  ASSIGN textToSpeech = "John Doe"
  ASSIGN varWithCommas = "one,two,three,four"
}

ASSIGN character1 = "{char(34)}"
ASSIGN character2 = "{char(44)}"
ASSIGN character3 = "{char(39)}"

ASSIGN marqueeMessage = "Marquee {char(10) char(13)} Message on {char(10) char(13)} different lines."

ASSIGN promptListWithDoubleQuotes = "{char(34)}Prompts\File with space.wav{char(34)} {char(34)}{textToSpeech}{char(34)}"

ASSIGN varWithReplacedCommas = "{varWithCommas.replace(char(44),' ')}"

ASSIGN character4 = "{char(123)}"
ASSIGN character5 = "{char(125)}"
ASSIGN cssWithReplacedBrackets = "a {char(123)}text-decoration: none;{char(125)}"

Le résultat de l’exemple est:

  • marqueeMessage = "Marquee

    Message on

    different lines."

  • promptListWithDoubleQuotes = "Prompts\File with space.wav" "John Doe"
  • varWithReplacedCommas = one two three four
  • cssWithReplacedBrackets = a {text-decoration: none;}

copy(objectName)

Crée une copie des données contenues dans l'objet de données dynamiques objectName. La copie est distincte de l'original, de sorte que vous pouvez modifier une valeur dans une version sans affecter la même valeur dans l'autre version. En savoir plus sur la copie d'objets dynamiques.

Vous pouvez utiliser la fonction copy() avec des sous-propriétés, par exemple : currentContact.who = copy(beowulfCharacteristics.name).

DYNAMIC firstObject
DYNAMIC secondObject

secondObject = copy(firstObject)

La fonction copy() utilise plus de ressources système que l'attribution d'une référence. Elle effectue une copie profonde en convertissant l'objet en une représentation textuelle, puis de nouveau en objet. Si l'objet sur lequel vous travaillez contient une grande quantité de données, ce processus peut avoir un impact sur le fonctionnement du script.

cos(valeur)

Renvoie le cosinus de la value spécifiée. La value doit être en radians.

ASSIGN angleRad = 0.394791119699762 //in radians
ASSIGN cosNum = "{cos(angleRad)}"		

Le résultat de l’exemple est cosNum=0.923076923076923

cos (valeur)

Renvoie le cosinus hyperbolique de la value spécifiée. La value doit être en radians.

 ASSIGN hCosine = "{cosh(angleRad)}"

Le résultat de l’exemple est hCosine=1.07894746856059

count() et size()

Renvoie le nombre d'éléments dans un tableau. size() ne fonctionne qu'avec les tableaux. count() fonctionne avec les tableaux dans les objets.

Si la valeur n'est pas un tableau mais n'est pas vide, 1 (vrai) est renvoyé. Si la valeur est vide, 0 (faux) est renvoyé.

IF TEST = 1
{
  ASSIGN example1 = "Beowulf|Grendel|Hrothgar|Wyrm|Breca|Scyld|Hrethel"
  ASSIGN example2 = "8015551234"
  ASSIGN example3 = ""
  DYNAMIC example4 
  ASSIGN example4[1].name = "Beowulf"
  ASSIGN example4[2].name = "Grendel"
}
ASSIGN ex1Size = example1.size()
ASSIGN ex2Size = example2.size()
ASSIGN ex3Size = example3.size()

ASSIGN ex1Count = example1.count()
ASSIGN ex2Count = example2.count()
ASSIGN ex3Count = example3.count()

ASSIGN ex4Count = count(example4)

Le résultat de l’exemple est:

  • exSize et ex1Count sont 7.
  • ex2Size et ex2Count sont 1.
  • ex3Size et ex3Count sont 0.
  • ex4Count est 2.

dateadd(unit, date, value)

Renvoie une nouvelle date basée sur date plus value.. La nouvelle date est renvoyée sous la forme d'une date/heure d’automatisation OLEFermé Un moyen d'écrire des dates sous forme de nombre entier à virgule flottante. Indique le nombre de jours depuis le 30 décembre 1899.. L’interprétation de value est déterminée par unit. Si value est négative, value est soustrait de date.

La meilleure pratique consiste à la transmettre dans une variable date/heure valide, comme indiqué dans l’exemple ci-dessous, où la valeur de myDateTime est précédée d’un dièse (#). Cela en fait une variable date/heure

Les choix possibles pour l’ unité sont : year, month, week, day, hour, minute et second.

unit est sensible à la casse. Placez unit entre guillemets doubles ou simples, ou transmettez une variable qui contient unit. Si vous transmettez une variable, ne la mettez pas entre guillemets ou entre accolades.

Pour utiliser cette fonction dans une chaîne, incluez asdatetime(), comme le montre l'exemple ci-dessous.

IF TEST = 1
{
  ASSIGN myDateTime = #"{now}"
}
//These are examples of adding to a datetime variable:

ASSIGN newDateYearNumeric = dateadd('year', myDateTime, 1) //add a single year
ASSIGN newDateYearString = "{newDateYearNumeric.asdatetime()}"

ASSIGN newDateMonthNumeric = dateadd('month', myDateTime, 1) //add a single month
ASSIGN newDateMonthString = "{newDateMonthNumeric.asdatetime()}"

ASSIGN newDateWeekNumeric = dateadd('week', myDateTime, 1) //add a single week
ASSIGN newDateWeekString = "{newDateWeekNumeric.asdatetime()}"

ASSIGN NewDateDayNumeric = dateadd('day', MyDateTime, 1) //add a single day
ASSIGN NewDateDayString = "{NewDateDayNumeric.asdatetime}"

ASSIGN newDateHourNumeric = dateadd('hour', myDateTime, 1) //add a single hour
ASSIGN newDateHourString = "{newDateHourNumeric.asdatetime()}"

ASSIGN NewDateMinuteNumeric = dateadd('minute', myDateTime, 1) //add a single minute
ASSIGN NewDateMinuteString = "{NewDateMinuteNumeric.asdatetime()}"

ASSIGN newDateSecondNumeric = dateadd('second', myDateTime, 1) //add a single second
ASSIGN newDateSecondString = "{newDateSecondNumeric.asdatetime()}"

//This is an example of subtracting from a date:
ASSIGN oldDateMonthNumeric = dateadd('month', myDateTime, -2) //remove 2 months
ASSIGN oldDateMonthString = "{0ldDateMonthNumeric.asdatetime()}"

Le résultat de l’exemple est comme suit, en utilisant le 3 mars 2023 au format 3/3/2023 10:42:44 AM comme valeur de now :

newDateYearString = 3/3/2024 10:42:44 AM

newDateMonthString = 4/3/2023 10:42:44 AM

newDateWeekString = 3/10/2023 10:42:44 AM

newDateDayString = 3/4/2023 10:42:44 AM

newDateHourString = 3/3/2023 11:42:44 AM

newDateMinuteString = 3/3/2023 10:43:44 AM

newDateSecondString = 3/3/2023 10:42:45 AM

datebuild(year, month, day)

Renvoie une chaîne date/heure en utilisant les Year, Month et Day fournies.

Lorsqu'elle est utilisée dans une chaîne : renvoie une date numérique formatée dans le format date/heure standard, qui inclut l'heure. L'heure est fixée par défaut à minuit. Si vous voulez que la date utilise les noms des mois et des jours, utilisez les fonctions asdate() ou asdatetime(), comme indiqué dans l'exemple ci-dessous.

Lorsqu'elle est utilisée dans une expression numérique : renvoie une date sous forme de chaîne date/heure d'automatisation OLEFermé Un moyen d'écrire des dates sous forme de nombre entier à virgule flottante. Indique le nombre de jours depuis le 30 décembre 1899..

IF TEST = 1
{
  ASSIGN month = "1"
  ASSIGN day = "24"
  ASSIGN year = "1936"
}

ASSIGN stringDate1 = "{datebuild(Year,Month,Day).asdate}"
ASSIGN stringDate2 = "{datebuild(Year,Month,Day)}"

ASSIGN numericDate = datebuild(Year,Month,Day)

Le résultat de l’exemple est:

  • stringDate1 = 1/24/1936
  • stringDate2 = 1/24/1936 12:00:00 AM
  • numericDate = 13173

datediff(unit, date2)

Renvoie la différence entre deux dates, date1 et date2.

unit spécifie la partie de date à comparer et date2 spécifie la date à comparer avec la valeur de la variable. Si date2 est supérieur à la valeur de la variable, les résultats seront positifs.

Les choix possibles pour l’ unité sont : week, day, hour, minute et second.

unit est sensible à la casse. Placez unit entre guillemets doubles ou simples, ou transmettez une variable qui contient unit. Si vous transmettez une variable, ne la mettez pas entre guillemets ou entre accolades.

Si la différence est fractionnaire, la valeur de retour sera fractionnaire. Par exemple, si la variable contient la date et l'heure 10/15/2023 6:00 AM et que date2 est 10/16/2023 6:00 PM, le résultat pour unit jour est 1.5.

IF TEST = 1
{
  ASSIGN myDateTime = #"{now}"
  ASSIGN myBirthday = #"4/24/1936 10:42 PM"
}
ASSIGN weekDiff = datediff("week", myBirthday, myDateTime)
ASSIGN dayDiff = datediff("day", myBirthday, myDateTime)
ASSIGN hourDiff = datediff("hour", myBirthday, myDateTime)
ASSIGN minuteDiff = datediff("minute", myBirthday, myDateTime)
ASSIGN secondDiff = datediff("second", myBirthday, myDateTime)

Le résultat de l’exemple est:

  • dayDiff = 1584.9546875
  • hourDiff = 38038.9125
  • minuteDiff = 2282334.75
  • secondDiff = 136940085
  • weekDiff = -368.850553902116

datefmt(date, format)

Génère date en utilisant la chaîne de format spécifiée. La valeur de date doit être l'une des suivantes :

Lorsque vous définissez le format de sortie, utilisez les spécificateurs de format pour définir la présentation de la date et de l’heure.

ASSIGN currentTime = now
ASSIGN formCurrentTime1 ="{datefmt(currentTime, 'yyyy-MM-dd HH:mm:ss')}"
ASSIGN formCurrentTime2 ="{datefmt(currentTime, 'MM/dd/yyyy hh:mm:ss')}"
ASSIGN formCurrentTime3 ="{datefmt(currentTime, 'HHmmssyyyyMMdd')}"
ASSIGN formCurrentTime4 ="{datefmt(currentTime, 'HH:mm:ss')}"

Le résultat de l’exemple est

  • formCurrentTime1 = 2023-06-30 14:03:17
  • formCurrentTime2 = 06/30/2023 02:03:17
  • formCurrentTime3 = 14031720230630
  • formCurrentTime4 = 14:03:17

La fonction datefmt()  vous permet également d’extraire une partie de la date d'une valeur date/heure existante. Pour ce faire, utilisez la syntaxe suivante :

ASSIGN <var> = "{<date var>.datefmt('<format>')}"

Par exemple :

ASSIGN myDate = #"{now}"
ASSIGN myYear2 = "{myDate.datefmt('yyyy')}"

Le résultat de l’exemple est myYear2 = 2023

datepart(unit)

Renvoie une partie d'une date ou d'une heure. Renvoie une partie d'une date ou d'une heure en fonction de la unit spécifiée. La variable doit contenir un type de date/heure ou une chaîne qui est une date/heure correctement formatée ou unnombre d'automatisation OLEFermé Un moyen d'écrire des dates sous forme de nombre entier à virgule flottante. Indique le nombre de jours depuis le 30 décembre 1899.. unit spécifie la partie de date à renvoyer. Cette fonction doit être appelée sur une variable date/heure. Si vous transmettez une valeur date/heure dans cette fonction, elle ne fonctionnera pas.

Les choix possibles pour l'unité sont  : year, month, day, hour, minute, second et dow.

unit est sensible à la casse. Placez unit entre guillemets doubles ou simples, ou transmettez une variable qui contient unit. Si vous transmettez une variable, ne la mettez pas entre guillemets ou entre accolades.

Si la fonction ne peut pas aboutir en raison d’une entrée incorrecte ou inattendue, la sortie par défaut est le 30 décembre 1899.

Lorsqu'elle est utilisée dans une chaîne:

Renvoie la représentation chaîne de la partie de date spécifiée :

  • Month renvoie l'abréviation du mois à trois caractères.
  • Year renvoie l'année complète à quatre chiffres.
  • Hour renvoie l'heure au format 24 heures.
  • Dow signifie jour de la semaine et renvoie la représentation sous forme de chaîne non abrégée du nom du jour de la semaine. Par exemple, jeudi.

Toutes les valeurs numériques, à l'exception de l'année, sont précédées d'un 0 s'il y a moins de deux chiffres.

Lorsqu'elle est utilisée dans une expression numérique :

Renvoie la représentation numérique de la partie de date spécifiée  :

  • Year renvoie l'année complète à quatre chiffres.
  • Hour renvoie l'heure au format 24 heures.
  • Dow signifie Jour de la semaine et renvoie la valeur ordinale (0-6) du jour de la semaine, où le dimanche est 0, le lundi est 1, et ainsi de suite.
IF TEST = 1
{
  ASSIGN myDateTime = now
}
ASSIGN myYear = myDateTime.datepart('year')
ASSIGN myHour = myDateTime.datepart('hour')				
ASSIGN myMinute = myDateTime.datepart('minute')
ASSIGN mySecond = myDateTime.datepart('second')
				
ASSIGN stringMyDay = "{myDateTime.datepart('day')}"
ASSIGN numericMyDay = myDateTime.datepart('day')
				
ASSIGN stringMyMonth = "{myDateTime.datepart('month')}"
ASSIGN numericMyMonth = myDateTime.datepart('month')
							
ASSIGN stringMyDow = "{myDateTime.datepart('dow')}"
ASSIGN numericMyDow = myDateTime.datepart('dow')

Le résultat de l’exemple est:

  • myYear = 2023
  • myHour = 13
  • myMinute = 51
  • mySecond = 3
  • stringMyDay = 30
  • numericMyDOW = 5
  • stringMyDOW = Friday
  • numericMyMonth = 6
  • stringMyMonth = Jun

datetimebuild(year, month, day, hour, minute, second)

Renvoie une valeur date/heure. Si la fonction ne peut pas aboutir en raison d’une entrée incorrecte ou inattendue, la sortie par défaut est le 30 décembre 1899.

Lorsqu'elle est utilisée dans une chaîne: renvoie une date/heure formatée au format date/heure standard.

Lorsqu'elle est utilisée dans une expression numérique : renvoie une date/ heure d'automatisation OLEFermé Un moyen d'écrire des dates sous forme de nombre entier à virgule flottante. Indique le nombre de jours depuis le 30 décembre 1899..

IF TEST = 1
{
  ASSIGN month = "1"
  ASSIGN day = "24"
  ASSIGN year = "1985"
  ASSIGN hour = "15"
  ASSIGN minute = "42"
  ASSIGN second = "13"
}
ASSIGN stringDate = "{datetimebuild(year,month,day,hour,minute,second)}"
ASSIGN numericDate = datetimebuild(year,month,day,hour,minute,second)

Le résultat de l’exemple est:

  • numericDate = 31071.6543171296
  • stringDate = 1/24/1985 3:42:13 PM

dow()

Renvoie le jour de la semaine sous la forme d'une valeur ordinale comprise entre 0 et 6, où 0 correspond à dimanche.

La variable doit contenir un type de date/heure ou une chaîne qui est une date/heure correctement formatée ou unnombre d'automatisation OLEFermé Un moyen d'écrire des dates sous forme de nombre entier à virgule flottante. Indique le nombre de jours depuis le 30 décembre 1899.. Si la fonction ne peut pas aboutir en raison d’une entrée incorrecte ou inattendue, la sortie par défaut est le 30 décembre 1899.

ASSIGN myNow = "{now}"
ASSIGN myDow = myNow.dow()

Les résultats de la fonction dépendent de la valeur de now lorsque dow est évalué.

format(specifiers)

Renvoie une chaîne formatée à l'aide du specifiers spécifié. Le specifiers s'applique uniquement à la valeur numérique contenue dans la variable. Pour pscifiers, utilisez les spécificateurs de format suivants :

  • C ou c : devise
  • E ou e : scientifique/ exponentiel
  • F ou f : virgule fixe
  • N ou n : nombre

  • P ou p : pourcentage
  • R ou r : aller-retour
  • X ou x : hexadécimal
  • 0 : espace réservé

Vous pouvez en savoir plus sur les formats numériques à utiliser avec cette fonction.

IF TEST = 1
{
  ASSIGN stringVal = "0013001.93912837"
  ASSIGN stringVal2 = 6002348902348890234.234432234
}
ASSIGN currencyResultBigC = "{stringVal.format('C3')}"
ASSIGN currencyResultLilC = "{stringVal.format('c')}"

ASSIGN scientificResult = "{stringVal.format('e')}"
ASSIGN scientificResult2 = "{stringVal.format('E2')}"

ASSIGN fixedPointResult = "{stringVal.format('F3')}"
ASSIGN fixedPointResult2 = "{stringVal.format('f')}"


ASSIGN numberResult = "{stringVal.format('N')}"
ASSIGN numberResult2 = "{stringVal.format('n4')}"

ASSIGN percentResult = "{stringVal.format('P')}"
ASSIGN percentResult2 = "{stringVal.format('P2')}"

ASSIGN roundTripResult = "{stringVal.format('R')}"

ASSIGN number1 = "1789789"
ASSIGN sectionSeparator1 = number1.format('###,###.##;0000.00;000.0000')

ASSIGN number2 = "0"
ASSIGN sectionSeparator2 = number2.format('0.00;0000.00;000.0000')

ASSIGN number3 = "-4321"
ASSIGN sectionSeparator3 = number3.format('0.00;0000.00;000.0000')

ASSIGN number6 = "2343.56"
ASSIGN digitPlaceholders1 = number6.format('###.###')

//Examples of the double ## and 00 placeholders

ASSIGN number4 = "456.47"
ASSIGN doubleZeroSpecifier = number4.format('00')

ASSIGN number7  = "456.47"
ASSIGN doubledigitSpecifier = number7.format('##')

//in the following example, notice the 0 in the hundredths place. 
//With the zero placeholder, it appears in the output. With the # placeholder
//it does not. 

ASSIGN number5 = "2343456.2043"
ASSIGN zeroPlaceholders = number5.format('000,000.00')

ASSIGN number8 = "2043456.2043"
ASSIGN digitPlaceholders2 = number8.format('###,###.##')

Le résultat de l’exemple est:

  • currencyResultBigC = $13,001.939
  • currencyResultLilC = $13,001.94
  • fixedPointResult = 13001.939
  • fixedPointResult2 = 13001.94
  • numberResult = 13,001.94
  • numberResult2 = 13,001.9391
  • percentResult = 1,300,193.91%
  • percentResult2 = 1,300,193.91%
  • roundTripResult = 13001.93912837
  • scientificResult = 1.300194e+004
  • scientificResult2 = 1.30E+004

index(indexValue)

Renvoie l’élément du tableau à partir du contenu de la variable en fonction de la indexValue spécifiée. Cela revient à lire un tableau à l'aide de crochets. Par exemple, variable[3] est la même chose que variable.index(3).

Les tableaux dans Studio commencent par 1 et non par 0.

IF TEST = 1
{
  ASSIGN example1 = "Beowulf|Grendel|Hrothgar|Wyrm|Breca|Scyld|Hrethel"
  ASSIGN indexValue = 3
}
ASSIGN arrayPart1 = "{example1.index(indexValue)}"

indexof(string)

Renvoie la position du caractère du string tel qu'il est contenu dans la variable. La première position est 1. Si la variable ne contient pas string, la fonction renvoie la valeur 0. Cette fonction est sensible à la casse.

IF TEST = 1
{
  ASSIGN example1 = "Beowulf|Grendel|Hrothgar|Wyrm|Breca|Scyld|Hrethel"
  ASSIGN example2 = "The Epic Poem"
}
ASSIGN arrayLoc = example1.indexof('Breca')
ASSIGN characterLoc = example2.indexof('E')
ASSIGN invalidLoc = example2.indexof('e')

iif(compare, trueval, falseval)

Inline-If pour les chiffres. Évalue compare, puis renvoie trueval ou falseval selon les résultats de l’évaluation.

Si compare est différent de zéro (vrai), trueval est renvoyé.

Si compare est égal à zéro (faux), falseval est renvoyé.

trueval et falseval doivent être des valeurs numériques ou des expressions. Les chaînes ne peuvent pas être utilisées. Cette fonction est identique à la fonction iifs(), sauf qu’elle attend des valeurs numériques.

ASSIGN val1 = 4 > 5
ASSIGN val2 = 4  < 5

ASSIGN test1 = val1 > val2
ASSIGN test2 = val1 < val2

ASSIGN trueS = "you win"
ASSIGN falseS = "try again"

ASSIGN varFalse = "{iif(test1,trueS,falseS)}"

ASSIGN varTrue = "{iif(test2,trueS,falseS)}"

Le résultat de l’exemple est:

  • varFalse = "try again"
  • varTrue = "you win"

iifs(compare, truestr, falsestr)

Chaîne inline-if. Évalue compare, puis renvoie trueval ou falseval selon les résultats de l’évaluation.

Si compare est différent de zéro (vrai), truestr est renvoyé.

Si compare est égal à zéro (faux), falsestr est renvoyé.

Cette fonction est identique à iif() sauf qu’elle attend des chaînes.

ASSIGN val1 = "grapes" 
ASSIGN val2 = "grapey"

ASSIGN test1 = val1 >  val2
ASSIGN test2 = val1 <  val2

ASSIGN trueS = "you win"
ASSIGN falseS = "try again"

ASSIGN varFalse = "{iifs(test1,trueS,falseS)}"

ASSIGN varTrue = "{iifs(test2,trueS,falseS)}"

Le résultat de l’exemple est :

  • varFalse = "try again"
  • varTrue = "you win"

isalpha()

La fonction isalpha() renvoie 1 (vrai) si tous les caractères de la variable sont alphabétiques (A-Z, a-z). Si tous les caractères sont alphabétiques, la fonction renvoie 0. Une variable vide ou une valeur incluant des caractères spéciaux (tels que # ou $= ou des nombres renvoie 0. Voir aussi : isletter().

IF TEST = 1
{
  ASSIGN varAlpha = "abcde"
  ASSIGN varNum = "12345"
}
ASSIGN alphaRes1 = varAlpha.isalpha() //true
ASSIGN alphaRes2 = varNum.isalpha() //false

isdigit()

La fonction isdigit() renvoie 1 (vrai) si le premier caractère de la variable est un chiffre (0-9). Dans le cas contraire, la fonction renvoie 0 (faux). Une variable vide ou une valeur commençant par un caractère spécial renvoie 0. Voir aussi : isletter().

IF TEST = 1
{
  ASSIGN example1 = "12Monkeys"
  ASSIGN example2 = "Oceans11"
}
ASSIGN result1 = example1.isdigit() //This is True
ASSIGN result2 = example2.isdigit() //This is False

isletter()

La fonction isletter() renvoie 1 (vrai) si le premier caractère de la variable est alphabétique (A-Z, a-z). Dans le cas contraire, la fonction renvoie 0 (faux). Une variable vide ou une valeur commençant par un caractère spécial renvoie 0. Voir aussi : isdigit().

IF TEST = 1
{
  ASSIGN example1 = "12Monkeys"
  ASSIGN example2 = "Oceans11"
}
ASSIGN result3 = example1.isletter() //This Is False
ASSIGN result4 = example2.isletter() //This Is True

isnumeric()

La fonction isnumeric() renvoie 1 (vrai) si tous les caractères variable sont des nombres. Si l’un des caractères n’est pas numérique, la fonction renvoie 0. Une variable vide ou une valeur incluant des caractères spéciaux (tels que # ou $= ou des nombres renvoie 0. Voir aussi : isdigit().

IF TEST = 1
{
  ASSIGN varAlpha = "abcde"
  ASSIGN varNum = "12345"
}
ASSIGN numRes1 = varNum.isnumeric() //true
ASSIGN numRes2 = varAlpha.isnumeric() //false

islower() et isupper()

La fonction isupper() renvoie 1 (vrai) si le premier caractère de la variable est une lettre majuscule. Dans le cas contraire, la fonction renvoie 0 (faux).

La fonction islower() renvoie 1 (vrai) si le premier caractère de la variable est une lettre minuscule. Dans le cas contraire, la fonction renvoie 0 (faux).

IF TEST = 1
{
  ASSIGN example1 = "Beowulf"
  ASSIGN example2 = "monster fighter"
}
ASSIGN result1 = example1.isupper() //This is true
ASSIGN result2 = example2.isupper() //This is false
ASSIGN result3 = example1.islower() //This is false
ASSIGN result4 = example2.islower() //This is true

left(number) et right(number)

Renvoie les caractères number les plus à gauche ou les plus à droite.

IF TEST = 1
{
  ASSIGN example1 = "Abc.456"
  ASSIGN locationVar = 4
}
ASSIGN stringLeftVariable = "{example1.left(locationVar - 1)}"
ASSIGN numericLeftVariable = example1.left(locationVar - 1)
ASSIGN stringRightVariable = "{example1.right(locationVar + 1)}"
ASSIGN numericRightVariable = example1.right(locationVar + 1)

Le résultat de l’exemple est

  • numericLeftVariable = Gre
  • numericRightVariable = 34567
  • stringLeftVariable = Gre
  • stringRightVariable = 34567

length()

Renvoie la longueur de la représentation textuelle de la valeur de la variable. Par exemple, si la valeur est un nombre comme 1234.56, la longueur est renvoyée comme 7. Les espaces et les caractères spéciaux sont pris en compte dans la longueur.

IF TEST = 1
{
  ASSIGN example1 = "8015551234"
  ASSIGN example2 = 2357.984
  ASSIGN example3 = "Beowulf Herot"
}

ASSIGN ex1Len = example1.length()
ASSIGN ex2Len = example2.length()
ASSIGN ex3Len = example3.length()

Le résultat de l’exemple est

  • ex1Len = 10
  • ex2Len = 8
  • ex3Len = 13

ln(value)

Renvoie le logarithme naturel (base e) de la value. La value est spécifiée sous la forme d'un nombre en base 10.

ASSIGN natLog = "{ln(434)}"

Le résultat de l’exemple est natLog=6.07304453410041

log10(value)

Renvoie le logarithme en base 10 de la value spécifiée.

ASSIGN log10Num = "{log10(434)}"

Le résultat de l’exemple est log10Num=2.63748972951251

log2(value)

Renvoie le logarithme en base 2 de la value spécifiée. La value est spécifiée sous la forme d'un nombre en base 10.

ASSIGN log2Num = "{log2(434)}"

Le résultat de l’exemple est log2Num=8.76155123244448

logn(value,base)

Renvoie le logarithme de la value spécifiée dans la base spécifiée. Les deux paramètres sont spécifiés en tant que nombres de base 10.

ASSIGN lognNum = "{logn(434,5)}"

Le résultat de l’exemple est lognNum=3.77339472817288

max(value1,value2) et min(value1,value2)

max() renvoie la plus grande des deux valeurs numériques spécifiées.

min() renvoie la plus petite des deux valeurs numériques spécifiées.

Si vous transmettez des valeurs de chaîne, les deux fonctions aboutissent toujours à la valeur 0.

IF TEST = 1
{
  ASSIGN value1 = 10
  ASSIGN value2 = 12
}
ASSIGN resultMin = min(value1, value2)

ASSIGN resultMax = max(value1, value2)

Le résultat de l’exemple est:

  • resultMin = 10
  • resultMax = 12

mid(start,length)

Retourne les caractères de start à start+length. La position du premier caractère est 1. Si start+length dépasse la longueur du texte source, il est automatiquement tronqué à la fin du texte source.

Cette fonction est similaire à substr(). mid() et substr() renvoient un sous-ensemble de caractères. La différence est qu'avec substr(), la fonction renvoie les caractères entre les points de départ et d'arrivée spécifiés. Avec mid(), la fonction renvoie un nombre spécifié de caractères, défini par length, après le start spécifié.

IF TEST = 1
{
  ASSIGN phoneNum = "8015553549"
  ASSIGN fullName = "Hrothgar King"
}
ASSIGN localNumber = "{phoneNum.mid(4,7)}"

ASSIGN spaceLoc = fullName.indexof(' ')
ASSIGN fullNameLength = fullName.length
ASSIGN firstName = "{fullName.mid(1,SpaceLoc - 1)}"
ASSIGN lastName = "{fullName.mid(SpaceLoc + 1,fullNameLength - spaceLoc)}"

Le résultat de l’exemple est:

  • firstName = Hrothgar
  • lastName = King
  • localNumber = 1234567

random(value)

Renvoie un nombre entier aléatoire, non négatif, supérieur ou égal à zéro et inférieur à la valeur maximale spécifiée.

Si vous avez besoin d'une valeur entre 1 et value, vous pouvez ajouter 1 à la sortie de la fonction random :

ASSIGN d20Result = random(20) + 1

IF TEST = 1
{
  ASSIGN value = 10
}
ASSIGN newValue1 = random(Value)
ASSIGN newValue2 = random(Value)
ASSIGN newValue3 = random(Value)
ASSIGN newValue4 = random(Value)

replace(old,new)

Remplace toutes les occurrences de old par new. Cette fonction fonctionne avec toutes les variantes de formatage suivantes :

  • ASSIGN result = "{value.replace(char,'-')}"
  • ASSIGN result = value.replace(char,'-')
  • ASSIGN result = value.replace('{char}','-')
  • ASSIGN result = value.replace("{char}",'-')
IF TEST = 1
{
	ASSIGN replaceTest1 = "$1234.56"
	ASSIGN replaceTest2 = "Beowulf%Grendel^Hrothgar*@Grendel\'s mom"
	ASSIGN replaceTest3 = "It   was   a   hard   battle."
	ASSIGN replaceTest4 = "Beowulf%Grendel^Hrothgar*@Grendel\'s mom"
}

//The first example will replace the dollar sign in an amount with nothing

ASSIGN replaceTest1 = "{replaceTest1.replace('$','')}"

//The second example we are just replacing random charcters and replacing
//them with a space.  The final result is a space between each name

ASSIGN replaceTest2 = "{replaceTest2.replace('%',' ')}"
ASSIGN replaceTest2 = "{replaceTest2.replace('^',' ')}"
ASSIGN replaceTest2 = "{replaceTest2.replace('*',' ')}"
ASSIGN replaceTest2 = "{replaceTest2.replace('@','')}"

ASSIGN replaceTest3 = "{replaceTest3.replace('  ',' ')}"
ASSIGN replaceTest3 = "{replaceTest3.replace('  ',' ')}"

//The following example is the second example, but broken out so 
//each step is preserved in a separate variable that you can see
//in the Debugger panel on the right. 

ASSIGN replaceTest4a = "{replaceTest4.replace('%',' ')}"
ASSIGN replaceTest4b = "{replaceTest4a.replace('^',' ')}"
ASSIGN replaceTest4c = "{replaceTest4b.replace('*',' ')}"
ASSIGN replaceTest4d = "{replaceTest4c.replace('@','')}"

Le résultat de l’exemple est:

  • replaceTest1 = 1234.56
  • replaceTest2 = Beowulf Grendel Hrothgar Grendel\'s mom
  • replaceTest3 = It was a hard battle.
  • replaceTest4 = Beowulf%Grendel^Hrothgar*@Grendel\'s mom
  • replaceTest4a = Beowulf Grendel^Hrothgar*@Grendel\'s mom
  • replaceTest4b = Beowulf Grendel Hrothgar*@Grendel\'s mom
  • replaceTest4c = Beowulf Grendel Hrothgar @Grendel\'s mom
  • replaceTest4d = Beowulf Grendel Hrothgar Grendel\'s mom

round(value)

Renvoie la value arrondie à l'entier le plus proche à l'aide de la norme IEEE 754, section 4 (également appelée « arrondi bancaire »).

IF TEST = 1
{
  ASSIGN numEx = 102.5689
}
ASSIGN newValue = round(numEx)

Le résultat de l’exemple est numEx = 102.5689

savetodb(1or0)

Cette fonction enregistre la valeur de la variable dans la base de données à la fin de l’interaction. Sachez que la valeur d’une variable peut changer à l’exécution du script. Différents processus et actions peuvent modifier ou effacer la valeur d’une variable. Si cela se produit et que vous voulez enregistrer la valeur à un point précis du script, il peut être nécessaire de créer une autre variable, de lui attribuer la valeur voulue, puis de l’utiliser avec savetodb().

savetodb() n'est pas une vraie fonction. Il s’agit d’une propriété des variables dans Studio. Vous pouvez l'appliquer aux variables lorsque vous travaillez dans des snippets. Vous pouvez également la définir en utilisant l’action Assign. Vous pouvez accéder aux données stockées de deux manières :

Ajoutez savetodb() à une variable avec 1 comme argument pour que la valeur de la variable soit enregistrée dans la base de données, comme illustré dans cet exemple :

ASSIGN variable='123123123'
variable.savetodb(1)

Si vous utilisez savetodb() dans un sous-script généré à l’aide d’une action RUNSUB, vous devez déclarer la variable comme variable globale. Cela garantit la persistance de la variable lorsque le sous-script redonne la main au script d’appel. Si vous ne déclarez pas la variable comme variable globale, il s’agit d’une variable locale qui existe uniquement dans le sous-script. savetodb() fonctionne uniquement avec les variables qui sont présentes dans le script d’appel.

La déclaration de variables globales dans un sous-script est une manière d’accéder aux valeurs des variables qu’il contient. Une autre méthode consiste à utiliser l’API GET /contacts/{contactId}/custom-data Une icône représentant un carré avec une flèche pointant du centre vers le coin supérieur droit..

screenpop() and setscreenpop(1or0)

screenpop() et setscreenpop() ne sont pas de vraies fonctions. Il s'agit de propriétés des variables de Studio que vous pouvez définir lorsque vous travaillez avec des montées de fiche-clientFermé Une fenêtre contextuelle configurable avec des informations sur le contact. Elle apparaît sur l'écran d'un agent suite à un événement spécifique, généralement lorsque l'agent se connecte à un contact.. Vous pouvez les appliquer aux variables lorsque vous travaillez dans des snippets. Vous pouvez également les définir à l'aide de l'action Assign .

Ajoutez setscreenpop() à une variable avec 1 comme argument pour que la valeur de la variable soit transmise dans la montée de fiche-client.

Ajoutez screenpop() à une variable pour vérifier si l'indicateur ScreenPop est activé. La propriété renvoie 1 si elle est vraie et 0 si elle est fausse.

ASSIGN val1 = "name"
//ASSIGN popthis = val1.setscreenpop(1)
ASSIGN ispop = thispop.screenpop

sgn(value)

Renvoie une valeur indiquant le signe de la value spécifiée. Renvoie -1 si value est inférieure à zéro, 0 si value est égale à zéro et 1 si value est supérieure à zéro.

ASSIGN signOfNum = "{sgn(89)}, {sgn(0.00)}, {sgn(-89)}"

Le résultat de l’exemple est signOfNum = 1, 0, -1

sin(value)

Renvoie le sinus de la value spécifiée. La value doit être en radians.

ASSIGN angleRad = 0.394791119699762
ASSIGN sinNum = "{sin(angleRad)}"

Le résultat de l’exemple est sinNum = 0.384615384615385

sinh(value)

Renvoie le sinus hyperbolique de la value spécifiée. La value doit être en radians.

ASSIGN hSine = "{sinh(angleRad)}"

Le résultat de l’exemple est hSine=0.405126696125173

split(delimiter)

Renvoie le contenu de la variable sous la forme d'une chaîne délimitée par des barres verticales à traiter comme un tableau. delimiter est converti en symbole de barre verticale ( | ).

Lorsque les résultats sont affectés à une nouvelle variable, la nouvelle variable se comporte comme un tableau et prend en charge la syntaxe de l'indexeur de tableau, comme dans variable[index].

Split peut également être utilisé dans un snippet afin de convertir une variable en un tableau. Son utilisation de cette manière modifiera le contenu de la variable.

IF TEST = 1
{
  ASSIGN varString = "one,two,three,four"
}
//Example One using split to assign result to a new variable

ASSIGN varArray = "{varString.split(',')}"

//Example Two using split to change the value of an existing variable to an array

VvarString.split(',')

Le résultat de l’exemple est:

  • varArray = one|two|three|four
  • varString = one|two|three|four

sqrt(value)

Renvoie la racine carrée de la value spécifiée.

ASSIGN root = "{sqrt(25)}"

Le résultat de l’exemple est root = 5

substr(start,end)

Retourne les caractères de start à end. La position du premier caractère est 1. Si end dépasse la longueur du texte source, il est automatiquement tronqué à la fin du texte source.

Cette fonction est similaire à mid(). mid() et substr() renvoient un sous-ensemble de caractères. La différence est qu'avec substr(), la fonction renvoie les caractères entre les points de départ et d'arrivée spécifiés. Avec mid(), la fonction renvoie un nombre spécifié de caractères, défini par length, après le start spécifié.

IF TEST = 1
{
  ASSIGN enteredAmount = 15269
  ASSIGN phoneNum = "8015553437"

}
ASSIGN areaCode = "{phoneNum.substr(1,3)}"

ASSIGN amountLength = enteredAmount.length()
ASSIGN dollars = enteredAmount.substr(1,amountLength - 2)
ASSIGN cents = enteredAmount.substr(amountLength - 1,amountLength)
ASSIGN totalAmount = "${dollars}.{cents}"

Le résultat de l’exemple est:

  • areaCode = 801
  • totalAmount = $152.69

tan(value)

Renvoie la tangente de la value spécifiée. La value doit être en radians.

ASSIGN angleRad = 0.394791119699762
ASSIGN tanNum = "{tan(angleRad)}"

Le résultat de l’exemple est tanNum = 0.416666666666667

tanh(value)

Renvoie la tangente hyperbolique de la value spécifiée. La value doit être en radians.

ASSIGN angleRad = 0.394791119699762
ASSIGN hTan = "{tanh(angleRad)}"

Le résultat de l’exemple est hTan = 0.375483244486081

trim(), ltrim() et rtrim()

La fonction trim() renvoie une chaîne avec tous les caractères d’espacement de début et de fin supprimés. L'espace blanc comprend les espaces, les tabulations et les sauts de ligne.

La fonction ltrim() renvoie une chaîne avec tous les caractères d’espacement de début supprimés.

La fonction ritrim() renvoie une chaîne avec tous les caractères d’espacement de fin supprimés.

IF TEST = 1
{
  ASSIGN varString = "      Beowulf      "
}
ASSIGN trimRes = varString.trim

ASSIGN lTrimRes = varString.ltrim

ASSIGN rTrimRes = varString.rtrim

Le résultat de l’exemple est

  • trimRes = " Beowulf "
  • lTrimRes = "Beowulf      "
  • rTrimRes = "      Beowulf".

trunc(value)

Calcule la partie intégrale de la value spécifiée. trunc() arrondit la value à l'entier le plus proche vers zéro.

ASSIGN truncNum = "{trunc(945.6)}, {trunc(946.9)}"

Le résultat de l’exemple est truncNum = 945, 946

upper() et lower()

La fonction upper() renvoie le contenu de la variable avec toutes les lettres converties en majuscules.

La fonction lower() renvoie le contenu de la variable avec toutes les lettres converties en minuscules.

IF TEST = 1
{
  ASSIGN variable1 = "Beowulf is a monster fighter"
  ASSIGN variable2 = "BEOWULF IS A MONSTER FIGHTER"
}
ASSIGN variable1  = "{variable1.upper()}"

ASSIGN variable2  = "{variable2.lower()}"

urlencode() et urldecode()

La fonction urlencode() renvoie le contenu de la variable encodée conformément à la norme Internet pour l'encodage d'URL. Par exemple, certaines des données qui doivent être ajoutées à une URL pour les montées de fiche-clientFermé Une fenêtre contextuelle configurable avec des informations sur le contact. Elle apparaît sur l'écran d'un agent suite à un événement spécifique, généralement lorsque l'agent se connecte à un contact. doivent être encodées afin d’être envoyées correctement.

La fonction urldecode() renvoie le contenu de la variable décodée conformément à la norme Internet pour l'encodage d'URL. Dans l'exemple suivant, urldecode() décode la variable URL, ce qui signifie que URL et newURL ont la même valeur.

IF TEST = 1
{
  ASSIGN dnis= "5551234567"
  ASSIGN ani = "5550987654"
  ASSIGN waitTime = "2 02:39:42"
  ASSIGN callOriginationTime = "{datefmt(now, 'yyy-MM-dd HH:mm:ss')}"
}

ASSIGN URL = "?&sys_id=-1&sysparm_query=u_source_phone={DNIS}^u_caller_phone={ANI}^u_wait_time_string={waitTime}^opened_at={callOriginationTime}"
ASSIGN eURL = URL.urlencode()
ASSIGN popURL = "http://www.incontact.com{eURL}"

ASSIGN newURL = eURL.urldecode()