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. Des informations détaillées sur toutes les fonctions intégrées disponibles sont 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 souhaitez accomplir, mais pas le nom de la fonction. Vous pouvez consulter des listes de fonctions qui vous permettent de :

Il y a également une liste avec 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-le

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 Snippet editor fenêtre et lancer le débogueur pour voir le fonctionnement de chaque exemple.

Fonctions à utiliser avec les dates et les heures

Utilisez les fonctions suivantes avec les dates et les heures dans vos scripts.

Une date OLE Automation 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 ce jour 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 en utilisant le format de date par défaut.
asdatedow() Renvoie le jour de la semaine sous la forme d’une valeur ordinale allant de 0 à 6, 0 étant le dimanche.
asdatetime() Convertit la valeur de la variable en une chaîne date/heure en utilisant le format date/heure spécifié.
asgmt() et asutc() Convertit le contenu d’une variable en une chaîne date/heure convertie en GMT 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 les valeurs Année, Moiset Jour spécifiées.
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 en utilisant le format spécifié.
datepart(unit)

 

Renvoie une partie de la date ou de l’heure en fonction de la valeur unit spécifiée.
datetimebuild(year, month, day, hour, minute, second) Renvoie une chaîne date/heure basée sur les valeurs Year, Month, Day, Hour, Minute et Second spécifiées.
dow() Renvoie le jour de la semaine en cours sous la forme d’une valeur ordinale allant de 0 à 6, 0 étant le 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 de calculs mathématiques.

Fonction

Description

ceil(value

R renvoie le plus petit nombre entier supérieur ou égal à la value spécifiée.

floor(value

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

format(format) Renvoie une chaîne de caractères numériques formatés à l’aide du formatspé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 le value spécifié à 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 une lettre 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 apparaît lors de l’utilisation d’une action SNIPPET, mais elles fonctionnent si vous les saisissez manuellement.

Fonction

Description

abs(value)

Renvoie la valeur absolue du value spécifié.

acos(value)

Renvoie l’angle en radians dont le cosinus est la valuespé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 spécifiés (x, y).

cos(value)

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

cosh(value)

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

exp(value)

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

ln(value)

Renvoie le logarithme naturel (base e) de value. La value est spécifiée sous forme de 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 forme de 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 sous forme de nombres en base 10.

round(value)

Arrondit le value spécifié à l’entier le plus proche.

sgn(value)

Renvoie une valeur qui indique le signe de la value spécifiée. Renvoie -1 si value est inférieur à zéro, 0 si value est égal à zéro et 1 si value est supérieur à zéro.

sin(value)

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

sinh(value)

Renvoie le sinus hyperbolique de la value spécifiée. La value doit être exprimée 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 exprimée en radians.

tanh(value)

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

trunc(value)

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

Fonctions de modification des valeurs

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

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

Fonction

Description

append(text) Ajoute le contenu de la première variable à une deuxième variable.
asjson() et asxml() Convertit le contenu d’une variable 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 en utilisant le format spécifié.

format(format) Renvoie une chaîne de caractères numériques formatés à l’aide du formatspé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 d’une variable en une chaîne délimitée par des barres verticales qui peut être traitée comme un tableau. Remplace le delimiter existant et spécifié par une barre verticale.
trim() , ltrim() et rtrim() Renvoie une chaîne dont les espaces vides ont été supprimés. Vous pouvez supprimer tous les espaces vides, 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) Évalue une variable pour la value spécifiée.
count() Renvoie le nombre d’éléments d’un tableau ou d’un objet.
index(indexValue) Renvoie l’élément du tableau à partir du contenu de la variable en fonction de l’élément indexValue spécifié.
indexof(text) Renvoie la position du caractère 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 une lettre 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 les caractères sont des nombres. Le nombre de caractères renvoyés est basé sur la valeur count spécifiée.
size()

Renvoie le nombre d’éléments d’un tableau.

Fonctions pour extraire une partie d’une valeur

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

Fonction

Description

datepart(unit)

Renvoie une partie de la date ou de l’heure en fonction de la valeur unit spécifiée.

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

Fonctions à utiliser avec les tableaux

Les fonctions suivantes fonctionnent avec les tableaux.

Fonction

Description

count()

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

index(indexValue)

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

indexof(text)

Renvoie la position du caractère text spécifié dans le contenu d’une variable.

size()

Renvoie le nombre d’éléments d’un tableau.

split(delimiter)

Convertit le contenu d’une variable en une chaîne délimitée par des barres verticales qui peut être traitée comme un tableau. Remplace le delimiter existant et spécifié par une barre verticale.

Autre

Fonction

Description

char(code)

Renvoie un caractère de la valeur ASCII code, ce qui permet à un script d’ajouter de manière programmatique 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 nombres. Évalue compare, puis renvoie trueval ou falseval en fonction des résultats de l’évaluation.

iifs(compare, trueval, falseval)

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

isnull()

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

savetodb(1or0) Permet d’enregistrer la valeur d’une 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 fenêtre contextuelleFermé Une fenêtre contextuelle paramétrable avec des informations sur le contact. Elle apparaît sur l’écran d’un agent après un certain événement, généralement lorsque l’agent se connecte avec 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 actuelle a l’option Utiliser les fenêtres contextuelles activée.

setscreenpop() n’est pas une vraie fonction. Il s’agit d’une propriété des variables de Studio que vous pouvez définir lorsque vous travaillez avec des fenêtres contextuellesFermé Une fenêtre contextuelle paramétrable avec des informations sur le contact. Elle apparaît sur l’écran d’un agent après un certain événement, généralement lorsque l’agent se connecte avec un contact.. Vous pouvez l’appliquer aux variables lorsque vous travaillez dans des extraits de code. Vous pouvez également la définir lorsque vous utilisez 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 fenêtre contextuelle.

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 du value spécifié.

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 valuespé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 qu’à l’intérieur 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)

Les résultats de l’exemple sont:

  • 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 en utilisant le format de date par défaut.

Si utilisé comme expression de chaîne : Convertit le contenu de la variable en une chaîne date/heure.

Si utilisé comme expression numérique : Convertit le contenu de la variable en date/heure OLE Automation 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, comme 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()}" 

Les résultats de cet exemple dépendent de la date locale au moment de l’exécution de la fonction. Si la date locale actuelle est le 3 juillet 2023, les résultats sont les suivants :

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

asdatedow()

Convertit le contenu de la variable en une date/heure OLE Automation en analysant le contenu de la chaîne, puis renvoie le jour de la semaine sous la forme d’une valeur ordinale allant de 0 à 6, où 0 correspond au dimanche. Le contenu de la chaîne doit correspondre à l’un des formats de date Windows standard, comme 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" }
}

Les résultats de l’exemple sont

  • myDow = 1
  • newToday = Monday

asdatetime()

Convertit la valeur de la variable en une chaîne date/heure en utilisant le format date/heure spécifié.

Si utilisé comme chaîne : Convertit le contenu de la variable en une chaîne de date et d’heure.

Si utilisé comme valeur numérique : Convertit le contenu de la variable en date/heure OLE Automation en analysant le contenu de la chaîne. Le contenu de la chaîne doit correspondre à l’un des formats date-heure standard Windows, comme 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()}"
		

Les résultats de l’exemple sont:

  • 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.

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

Si utilisé 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’ajout 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, parce que le fuseau horaire d’origine est considéré comme différent du fuseau horaire de l’unité commerciale. En outre, pour éviter l’erreur lors de l’utilisation du format de date/heure ISO 8601, incluez une action Timezone avant l’action Snippet et réglez-la de manière à utiliser le fuseau horaire de votre unité commerciale. Cela permet de définir le fuseau horaire au niveau du script, de sorte 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 au format ISO date/heure.

Dans les appels à l’API REST, les horodatages ISO qui ont un décalage par rapport à l’heure UTC spécifiée et qui apparaissent dans la réponse sont convertis à l’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()}"

Les résultats de l’exemple sont:

  • numericDateTime = 2023-07-03T09:43:06.000Z (lorsque l’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 une chaîne et l’affecte à une nouvelle variable. L’exemple suivant utilise un objet de données dynamiques, mais vous pouvez utiliser ces fonctions avec des objets renvoyés par un appel API ou les objets des actions du bot de l’agent virtuelFermé Une application logicielle qui traite 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 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’espaces réservés qui sont remplacées manuellement après avoir converti 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)

Meilleure pratique : 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 chaîne dans les propriétés d’autres actions Studio lorsque vous devez transmettre les données JSON. Cette approche évite la possibilité d’erreurs de validation lors de l’enregistrement du script.

Les résultats de l’exemple sont:

  • 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.

Si utilisé avec une value de type chaîne  : Convertit le contenu de la variable en date/heure OLE AutomationFermé Un moyen d’écrire des dates sous forme d’entiers à virgule flottante. Indique le nombre de jours écoulés depuis le 30 décembre 1899.. Par exemple, 0.353506944447872.

Si utilisé avec une valeur numérique : Convertit le contenu de la variable en une chaîne heure. La variable doit contenir une valeur d’heure OLE Automation. 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()}" 

Les résultats de cet exemple dépendent 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 spécifiés (x, y).

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

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

ceil(value) et floor(value)

ceil rrenvoie le plus petit nombre entier supérieur ou égal à la value spécifiée.

floor renvoie le plus grand nombre 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)

Les résultats de l’exemple sont:

  • 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 sont vérifiés pour trouver 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

Les résultats de l’exemple sont:

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

char(code)

Renvoie un caractère de la valeur ASCII code, ce qui permet à un script d’ajouter de manière programmatique des caractères spéciaux à une chaîne.Par exemple, vous pouvez ajouter des retours chariot, des tabulations et des caractères de retour à la ligne.

Soyez prudent avec cette fonction. char(0) à char(7) sont réservés à un usage interne et peuvent entraîner un dysfonctionnement 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)}"

Les résultats de l’exemple sont:

  • 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 complète en convertissant l’objet en une représentation textuelle, puis en un 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 exprimée en radians.

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

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

cosh(valeur)

Renvoie le cosinus hyperbolique de la value spécifiée. La value doit être exprimée 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 d’un tableau. size() ne fonctionne qu’avec les tableaux. count() travaille avec des tableaux dans des objets.

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

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)

Les résultats de l’exemple sont:

  • Les exSize et ex1Count sont 7.
  • Les ex2Size et ex2Count sont 1.
  • Les 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 OLE AutomationFermé Un moyen d’écrire des dates sous forme d’entiers à virgule flottante. Indique le nombre de jours écoulés depuis le 30 décembre 1899.. L’interprétation de value est déterminée par unit. Si value est négatif, value est soustrait de date.

La meilleure pratique consiste à transmettre une variable date/heure valide, comme le montre l’exemple ci-dessous, où la valeur de myDateTime est précédée d’un croisillon (#). Il s’agit donc d’une variable date/heure.

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

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

Pour utiliser cette fonction dans une chaîne, vous devez inclure asdatetime(), comme dans 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()}"

Les résultats de l’exemple sont comme suit, en utilisant le 3 mars 2023 dans le 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 valeurs Year, Month et Dayfournies.

Si utilisé dans une chaîne : Renvoie une date numérique au format date/heure standard, qui inclut l’heure. L’heure est fixée par défaut à minuit. Si vous souhaitez obtenir la date en utilisant les noms des mois et des jours, utilisez les fonctions asdate() ou asdatetime(), comme indiqué dans l’exemple ci-dessous.

Si utilisé dans une expression numérique : Renvoie une date sous forme de chaîne date-heure OLE AutomationFermé Un moyen d’écrire des dates sous forme d’entiers à virgule flottante. Indique le nombre de jours écoulés 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)

Les résultats de l’exemple sont:

  • 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 la date à comparer et date2 spécifie la date à comparer avec la valeur de la variable. Si la valeur date2 est supérieure à la valeur de la variable, les résultats sont positifs.

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

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

Si la différence est fractionnaire, la valeur de retour est également fractionnaire. Par exemple, si la variable contient la date-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)

Les résultats de l’exemple sont:

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

datefmt(date, format)

Produit date en utilisant la chaîne de format spécifiée. La valeur de date doit être l’une des valeurs suivantes :

Lorsque vous définissez la sortie format, utilisez les spécificateurs de format pour définir l’aspect 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')}"

Les résultats de l’exemple sont

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

La fonction datefmt() 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 portion de date ou d'heure. Renvoie une partie de la date ou de l’heure en fonction de la valeur unit spécifiée. La variable doit contenir un type date/heure ou une chaîne qui est une date/heure correctement formatée ou un numéro OLE AutomationFermé Un moyen d’écrire des dates sous forme d’entiers à virgule flottante. Indique le nombre de jours écoulés depuis le 30 décembre 1899.. unit spécifie la partie de la date à renvoyer. Cette fonction doit être appelée sur une variable date/heure. Cela ne fonctionnera pas si vous passez une valeur de date/heure dans la fonction.

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

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

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

Si utilisé dans une chaîne :

Renvoie la représentation sous forme de chaîne de la partie 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 représente le jour de la semaine et renvoie la représentation sous forme de chaîne non abrégée complète 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.

Si utilisé dans une expression numérique :

Renvoie la représentation numérique de la partie 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 (Day of the week) 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')

Les résultats de l’exemple sont:

  • 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 se terminer en raison d’une entrée incorrecte ou inattendue, la sortie par défaut est le 30 décembre 1899.

Si utilisé dans une chaîne : Renvoie une date/heure au format standard de date/heure.

Si utilisé comme expression numérique : Renvoie une date/heure OLE AutomationFermé Un moyen d’écrire des dates sous forme d’entiers à virgule flottante. Indique le nombre de jours écoulés 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)

Les résultats de l’exemple sont:

  • 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 allant de 0 à 6, 0 étant le dimanche.

La variable doit contenir un type date/heure ou une chaîne qui est une date/heure correctement formatée ou un numéro OLE AutomationFermé Un moyen d’écrire des dates sous forme d’entiers à virgule flottante. Indique le nombre de jours écoulés depuis le 30 décembre 1899.. Si la fonction ne peut se terminer 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 ne s’applique qu’aux valeurs numériques contenues dans la variable. Pour pscifiers, utilisez les spécificateurs de format suivants :

  • C ou c : Monnaie
  • E ou e : Scientifique/exponentiel
  • F ou f : Point fixe
  • N ou n : Nombre

  • P ou p : Pourcentage
  • R ou r : Aller-retour
  • X ou x : Hexadécimal
  • 0 : Espace réservé pour zéro

Vous pouvez en savoir plus sur ces 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('###,###.##')

Les résultats de l’exemple sont:

  • 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 l’élément indexValue spécifié. C’est la même chose que de lire un tableau en utilisant des crochets. Par exemple, variable[3] est identique à 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 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 nombres. Évalue compare, puis renvoie trueval ou falseval en fonction des résultats de l’évaluation.

Si compare est non nul (vrai), trueval est renvoyé.

Si compare est nul (faux), falseval est renvoyé.

Tant trueval que falseval doivent être des valeurs numériques ou des expressions. Il n'est pas possible d'utiliser de chaîne. 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)}"

Les résultats de l’exemple sont:

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

iifs(compare, truestr, falsestr)

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

Si compare est non nul (vrai), truestr est renvoyé.

Si compare est nul (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)}"

Les résultats de l’exemple sont :

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

isalpha()

La fonction isalpha() renvoie 1 (vrai) si tous les caractères de la variable sont des lettres de l’alphabet (A-Z, a-z). Si tous les caractères ne sont pas alphabétiques, la fonction renvoie 0. Une variable vide ou une valeur comprenant des caractères spéciaux (tels que # ou $) ou des chiffres 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). Sinon, 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 une lettre de l’alphabet (A-Z, a-z). Sinon, 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 de la variable sont des nombres. Si l’un des caractères n’est pas numérique, la fonction renvoie 0Une variable vide ou une valeur comprenant des caractères spéciaux (tels que # ou $) ou des chiffres 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. Sinon, la fonction renvoie 0 (faux).

La fonction islower() fonction renvoie 1 (vrai) si le premier caractère de la variable est une lettre minuscule. Sinon, 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 les plus à gauche ou les plus à droite de number.

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)

Les résultats de l’exemple sont

  • 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 sous la forme 7. Les espaces et les caractères spéciaux sont pris en compte dans le calcul de 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()

Les résultats de l’exemple sont

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

ln(value)

Renvoie le logarithme naturel (base e) de value. La value est spécifiée sous forme de 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 forme de 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 sous forme de nombres en 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 type chaîne, les deux fonctions sont toujours évaluées à 0.

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

ASSIGN resultMax = max(value1, value2)

Les résultats de l’exemple sont:

  • resultMin = 10
  • resultMax = 12

mid(start,length)

Renvoie les caractères de start à start+length. La première position du 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(). Tant mid() que 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 la valeur start spécifiée.

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)}"

Les résultats de l’exemple sont:

  • 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 comprise 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 variations 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('@','')}"

Les résultats de l’exemple sont:

  • 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 le value arrondi à l’entier le plus proche selon la norme IEEE 754, section 4.

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 d’une variable dans la base de données à la fin de l’interaction. Sachez que la valeur d’une variable peut changer au cours de l’exécution d’un script. Diverses actions et processus peuvent modifier ou effacer la valeur d’une variable. Si cela se produit et que vous souhaitez enregistrer la valeur à un endroit précis du script, vous devrez peut-être créer une nouvelle variable, lui attribuer la valeur souhaitée et utiliser savetodb() avec elle.

savetodb() n’est pas une vraie fonction. C’est une propriété des variables dans Studio. Vous pouvez l’appliquer aux variables lorsque vous travaillez dans des extraits de code. Vous pouvez également le définir en utilisant l’ Assign action. 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 le montre l’exemple suivant :

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

Si vous utilisez savetodb() dans un sous-script engendré par une action RUNSUB, vous devez déclarer la variable comme étant globale. Cela garantit que la variable persistera après que le sous-script aura rendu le contrôle au script appelant. Si vous ne déclarez pas la variable comme globale, il s’agit d’une variable locale qui n’existe que dans le sous-script. savetodb() ne fonctionne qu’avec les variables qui existent dans le script appelant.

Déclarer les variables d’un sous-script comme étant globales est une façon d’accéder aux valeurs des variables d’un sous-script. Vous pouvez également 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 de variables dans Studio que vous pouvez définir lorsque vous travaillez avec des fenêtres contextuellesFermé Une fenêtre contextuelle paramétrable avec des informations sur le contact. Elle apparaît sur l’écran d’un agent après un certain événement, généralement lorsque l’agent se connecte avec un contact.. Vous pouvez les appliquer aux variables lorsque vous travaillez dans des extraits de code. 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 à la fenêtre contextuelle.

Ajoutez screenpop() à une variable pour vérifier si l’indicateur ScreenPop est activé. La propriété renvoie 1 si vrai et 0 si faux.

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

sgn(value)

Renvoie une valeur qui indique le signe de la value spécifiée. Renvoie -1 si value est inférieur à zéro, 0 si value est égal à zéro et 1 si value est supérieur à 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 exprimée 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 exprimée 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 forme de chaîne délimitée par des barres verticales pouvant être traitée comme un tableau. Le delimiter est converti en symbole de barre verticale (|).

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

Diviser peut également être utilisé dans un extrait de code pour convertir une variable en tableau. En l’utilisant de cette manière, vous modifiez 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(',')

Les résultats de l’exemple sont:

  • 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)

Renvoie les caractères de start à end. La première position du 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(). Tant mid() que 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 la valeur start spécifiée.

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}"

Les résultats de l’exemple sont:

  • areaCode = 801
  • totalAmount = $152.69

tan(value)

Renvoie la tangente de la value spécifiée. La value doit être exprimée 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 exprimée 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 dont tous les espaces blancs de début et de fin ont été supprimés. Les caractères d'espacement comprennent les espaces, tabulations et retours à la ligne.

La fonction ltrim() renvoie une chaîne dont tous les espaces blancs de début ont été supprimés.

La fonction ritrim() renvoie une chaîne dont tous les espaces blancs de fin ont été supprimés.

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

ASSIGN lTrimRes = varString.ltrim

ASSIGN rTrimRes = varString.rtrim

Les résultats de l’exemple sont

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

trunc(value)

Calcule la partie intégrale de la value spécifiée. trunc() arrondit value à l’entier le plus proche de 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é conformément à la norme Internet pour l’encodage des URL. Par exemple, certaines des données qui doivent être ajoutées à une URL pour les fenêtres contextuellesFermé Une fenêtre contextuelle paramétrable avec des informations sur le contact. Elle apparaît sur l’écran d’un agent après un certain événement, généralement lorsque l’agent se connecte avec un contact. doivent être encodées pour être correctement envoyées.

La fonction urldecode() renvoie le contenu de la variable décodé à partir de la norme Internet pour l’encodage des 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()