Fonctions supplémentaires à utiliser dans les variables dynamiques

Dans les actions avancées, vous pouvez utiliser des fonctions personnalisées en plus des fonctions basées sur MathJS :

Fonctions de chaîne

indexOf (meule de foin, aiguille)

Si la chaîne "aiguille" est trouvée dans la chaîne ou la liste "botte de foin", la fonction renvoie sa position (basée sur zéro), sinon elle donne la valeur -1.

Exemples:
 indexOf("ABCD", "A") //returns 0
 indexOf("ABCD", "CD") //returns 2
 indexOf("ABCD", "E") //returns -1
 indexOf(["a","b","c"], "a") //returns 0
 indexOf(["a","b","c"], "bc") //returns -1

getIndexValue(botte de foin, index)

Si le nombre "index" est plus petit que la liste "botte de foin", la fonction renvoie la valeur située à la position "index", sinon elle se trompe.

Exemples:
 getIndexValue(["a","b","c"], 0) //returns a
 getIndexValue(["a","b","c"], 1) //returns b

substr (chaîne, début [, longueur])

Cette fonction renvoie une sous-chaîne de la chaîne d’origine, à partir de la position de départ basée sur zéro. Si length est spécifié, il renvoie autant de caractères et sinon, il renvoie le reste de la chaîne.

Exemples:
 substr("ABCD", 1) //returns "BCD"
 substr("ABCD", 2, 1) //returns "C"
 substr("ABCD", 5) //returns ""

tranche (chaîne, début [, fin])

Cette fonction renvoie une sous-chaîne de la chaîne d’origine, à partir de la position de départ basée sur zéro. Si une position finale est fournie, tous les caractères sont renvoyés, y compris le caractère situé à cette position. Sinon, il retourne le reste de la chaîne.

Les positions négatives pour le début ou la fin sont comptées à partir du côté droit de la chaîne.

Exemples:
 slice("ABCD", 1) //returns "BCD"
 slice("ABCD", 0, 2) //returns "AB"
 slice("ABCD", 1, -1) //returns "BC"
 slice("ABCD", 2, 1) //returns ""

supérieur (chaîne)

Cette fonction retourne la chaîne fournie, convertie en majuscule.

Exemple: 
upper("aBcD") //returns "ABCD"

inférieur (chaîne)

Cette fonction renvoie la chaîne fournie, convertie en minuscule.

Exemple: 
lower("aBcD") //returns "abcd"

longueur (chaîne)

Cette fonction renvoie la longueur de la chaîne.

Exemples:
 length("") //returns 0
 length("ABCD") //returns 4

Fonctions logiques

égal (valeur1, valeur2)

Cette fonction renvoie true si valeur1 et valeur2 ont la même valeur et le même type ou sinon, false. Syntaxe alternative pour `valeur1 === valeur2`. (`valeur1 == valeur2` est une comparaison plus faible)

Exemples:
 equal(2, 1) //returns false
 equal(1, 1) //returns true
 equal(1, "1") //returns false (different types)

ifElse (condition, valueIfTrue, valueIfFalse)

Cette fonction vérifie la condition fournie. Si la condition est vraie (ou la vérité), il retourne la valeur valueIfTrue, sinon la valeur valueIfFalse.

Exemples:
 ifElse(equal(1, 5), "equal", "not equal") //returns "not equal"
 ifElse(equal(2, 2), "equal", "not equal") //returns "equal"

Fonctions Regex

match(valeur, motif[, drapeaux, groupIndex])

matchAll(valeur, motif, matchIndex[, drapeaux])

Ces fonctions effectuent une correspondance d'expression régulière et testent si la "valeur" fournie correspond à l'expression régulière "motif" fournie. 

L'argument facultatif flags est une chaîne de drapeaux d'expression régulière à une seule lettre qui permet d'activer un comportement avancé (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#advanced_searching_with_flags). L'utilisation la plus courante d'un argument drapeau est de passer "i" pour une correspondance insensible à la casse.

Il y a deux fonctions liées ici :

  • Ta fonction match recherche une correspondance unique et prend en charge une utilisation avancée avec des groupes de capture numériques, en utilisant le dernier argument pour sélectionner le groupe de capture souhaité (0 est la correspondance entière, 1 est le premier groupe de capture, et ainsi de suite).
  • La version matchAll prend en charge les correspondances multiples, en utilisant l'argument matchIndex pour sélectionner la correspondance souhaitée. (0 est la première correspondance, 1 est la deuxième correspondance, et ainsi de suite).

Dans les deux cas, s'il y a une correspondance, le résultat sera le contenu de la chaîne de caractères, ou lorsqu'il est utilisé comme corps d'une variable booléenne dynamique, il sera true s'il y a une correspondance ou false s'il n'y a pas de correspondance.

Exemples:
// Basic usage
match("abc", "b.") // returns "bc" (or true as a Dynamic Boolean Variable)
match("abc", "c.") // returns no match (or false as a Dynamic Boolean Variable)

// Advanced usage

// Case-insensitive
match("aBc", "b.", "i") // returns "Bc", since casing was ignored with the "i" flag

// Capture Groups
match("acd bce", "b(c.)", "", 1); // returns "ce" - the whole match was "bce", but the first capture group is (c.)

// Multiple matches
matchAll("acd bce", "c.", 1); // returns "ce" - "c." matches both "cd" and "ce", the last argument (and usage of matchAll) selected the second one.

Fonctions de la date

formatDate(date[, formatString])

Prend une date numérique, et la convertit dans un format lisible par l'homme.  Cette fonction est utile pour afficher une date à un agent après lui avoir fait subir des manipulations numériques.

La valeur de la date   est en millisecondes depuis le 1er janvier 1970.

La chaîne de format   accepte substitutions de la norme Unicode.

Remarque : La chaîne résultante sera dans le fuseau horaire de l'agent, il peut donc être utile d'inclure le fuseau horaire dans la chaîne de format.
Exemples:
// Default formatting
formatDate(946684800000)                                      // 01/01/2000 12:00:00 am (+00:00)
 
// Custom formatting
formatDate(946684800000, "eeee, MMMM do yyyy, h:mm:ss a (z)")     // Saturday, January 1st 2000, 12:00:00 am (GMT)
formatDate(946684800000, "eeee, MMMM do yyyy, h:mm:ss a (xxxxx)") // Saturday, January 1st 2000, 12:00:00 am (+00:00)

formatDateISO(date)

Prend une date numérique et la convertit en une chaîne de date formatée, au format ISO 8601. Ceci est utile lorsque vous travaillez avec des composants de date ou que vous envoyez la date à un appel API. 

La valeur de la date est exprimée en millisecondes depuis le 1er janvier 1970.

Remarque : La chaîne résultante sera dans le fuseau horaire de l'agent.

Exemples: 
formatDateISO(946684800000)                    // 1999-12-31T19:00:00-05:00

dateToMilliseconds(date)

Prend une date sous forme de chaîne, et la convertit en un nombre de millisecondes depuis le 1er janvier 1970, pour une manipulation numérique.

La date fournie est censée être dans le format par défaut utilisé par les variables de script.

Exemples:
dateToMilliseconds("01/01/2000 12:00:00 am (+00:00)"); // 946684800000

formatDate(dateToMilliseconds({{Scripter.Customer Call Start Time}}) + 5 * 60 * 1000) // Five minutes (multiplied by 60 sec/minute and 1000 ms/sec to convert to ms) after the customer was connected

formatDuration(durée)

Convertit une durée numérique, en millisecondes, en un format lisible par l'homme.  

Exemple: 
formatDuration(5 * 1000 * 60 + 55); // "00:05:55"

durationToMilliseconds(durationString)

Convertit une durée de chaîne de caractères en une valeur numérique.

Exemple: 
durationToMilliseconds({{Scripter.Customer Call Duration}}) // How long has the customer been connected

formatDuration(5 * 1000 * 60 - durationToMilliseconds({{Scripter.Customer Call Duration}})) // Countdown until the customer has been on the line for five minutes