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