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 :

  • The match function looks for a single match and supports an advanced usage with numeric capture groups, using the last argument to select the desired capture group (0 is the whole match, 1 is the first capture group, and so on).
  • The matchAll version supports multiple matches, using the matchIndex argument to select the desired match. (0 is the first match, 1 is the second match, and so on.)

In both cases, if there is a match the result will be the string content, or when used as the body of a dynamic Boolean variable, it will be true if there is a match or false if there was not a match.

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.

The date  value is in milliseconds since January 1st 1970.

The formatString  accepts Unicode-standard substitutions.

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. 

The date value is in milliseconds since January 1st 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