Bonjour !
Dans la leçon précédente, nous avons fait un grand pas en avant en apprenant à contrôler le parcours d'un appel avec les actions Decision et Switch. Vous savez maintenant comment créer des branchements logiques pour adapter le flux au contexte de l'appelant.
Jusqu'à présent, nous avons principalement manipulé des variables contenant une seule valeur : un numéro de téléphone, un statut client, un temps d'attente. Mais que se passe-t-il si vous devez gérer un ensemble de données ? Imaginez une liste de numéros de commande, une série de produits consultés sur un site web, ou plusieurs files d'attente possibles pour un routage.
C'est exactement ce que nous allons aborder aujourd'hui. Cette leçon est consacrée à un type de variable fondamental dans Architect : la collection. Une collection est simplement une liste qui peut contenir plusieurs valeurs du même type. Maîtriser les collections est une compétence essentielle, car elle ouvre la porte à des logiques de flux beaucoup plus dynamiques et puissantes, notamment pour traiter des données en provenance de systèmes externes.
À la fin de cette leçon, vous serez capable de créer et de manipuler des variables de type collection dans un flux Architect.
1. Qu'est-ce qu'une collection et comment la créer ?
En termes simples, une collection est une variable qui regroupe plusieurs éléments. Pensez à une liste de courses ou à un répertoire de contacts. Dans Genesys Cloud, vous pouvez avoir une collection de chaînes de caractères (Strings), de nombres entiers (Integers), de files d'attente (Queues), etc.
Dans un environnement comme Cisco UCCE que vous connaissez, on est souvent amené à traiter des ensembles de résultats, par exemple issus d'une requête à une base de données. Genesys Cloud formalise ce concept avec les collections, qui sont des objets de premier ordre que vous pouvez manipuler directement dans vos flux.
La création d'une collection se fait, comme pour les variables simples, à l'aide de l'action Update Data.
Pour comprendre le processus en détail, je vous invite à consulter la documentation officielle de Genesys Cloud sur ce sujet.
Ce document, intitulé 'Create a collection variable', explique la procédure pour créer une variable de type collection dans l'interface d'Architect.
Lisez la section qui commence par '1. From the Architect home page...'. Elle vous guidera pas à pas, de la sélection du flux jusqu'au choix du type de collection dans l'action 'Update Data'. Concentrez-vous sur les étapes 4, 5 et 6 qui sont au cœur de la création.
En résumé, les étapes clés sont :
- Ajouter une action
Update Dataà votre flux. - Dans le panneau de configuration de l'action, cliquer sur le bouton
+à côté de "Update Statements". - Choisir Collections, puis le type de données que votre collection contiendra (par exemple, String Collection).
- Donner un nom à votre variable, par exemple
Flow.MaListeDeStrings.
Par défaut, cette nouvelle collection est vide. Notre prochaine étape est de la remplir.
2. Ajouter et modifier des éléments dans une collection
Une fois votre collection créée, vous aurez besoin de la peupler et de la modifier. Architect propose un ensemble de fonctions intégrées pour cela. Ces fonctions vous permettent d'ajouter, de supprimer ou de remplacer des éléments.
La lecture suivante vous présentera les fonctions les plus courantes.
Cet article, 'Modify collection values', répertorie les fonctions essentielles pour manipuler le contenu d'une collection et donne des exemples clairs de leur utilisation.
Commencez par lire l'introduction et examinez le tableau qui liste les différentes fonctions comme AddItem, RemoveItem, ReplaceItemAt, etc. Ensuite, lisez l'exemple 'Add an item to a collection' pour voir comment la fonction AddItem est utilisée concrètement dans une action Update Data.
Il y a un point crucial à retenir de cette lecture : les fonctions de modification de collection ne modifient pas la variable directement. Elles retournent une nouvelle collection avec la modification appliquée. Il est donc impératif de réaffecter ce résultat à votre variable.
La syntaxe est toujours la même :Variable = Fonction(Variable, Valeur_a_ajouter)
Par exemple, pour ajouter la chaîne "Bonjour" à une collection nommée Flow.MaCollection :Flow.MaCollection = AddItem(Flow.MaCollection, "Bonjour")
Les fonctions les plus utiles sont :
AddItem(collection, item): Ajoute un élément à la fin de la collection.AddItemAt(collection, index, item): Insère un élément à une position spécifique (l'index).RemoveItem(collection, item): Supprime la première occurrence d'un élément par sa valeur.RemoveItemAt(collection, index): Supprime un élément à une position spécifique.
3. Accéder aux données d'une collection
Maintenant que notre collection contient des données, comment pouvons-nous lire un élément spécifique ? Pour cela, nous utilisons son index, c'est-à-dire sa position dans la liste.
Important : En informatique, l'indexation commence presque toujours à zéro. Le premier élément a l'index 0, le deuxième a l'index 1, et ainsi de suite.
La fonction pour récupérer un élément par son index est GetAt().

La syntaxe est donc GetAt(MaCollection, index).
Par exemple, pour récupérer le premier élément de notre collection Flow.MaCollection, nous utiliserions l'expression : GetAt(Flow.MaCollection, 0).
4. Mise en pratique : Gérer une liste de choix
Passons à la pratique pour consolider ces concepts. Nous allons simuler la gestion d'une liste de services auxquels un client a souscrit.
Objectif : Créer un flux qui initialise une collection de services, y ajoute un service, puis récupère le premier service de la liste pour l'énoncer à l'appelant.
-
Créez un nouveau flux d'appel entrant pour cet exercice. Nommez-le "Manipulation de Collections".
-
Créez une collection vide.
- Ajoutez une action
Update Data. - Créez une String Collection nommée
Flow.SubscribedServices. Laissez la valeur initiale par défaut (NOT_SET).
- Ajoutez une action
-
Peuplez la collection.
- Ajoutez une deuxième action
Update Data. - Dans la section
Update Statements, choisissez la variableFlow.SubscribedServices. - Dans le champ
Value to Assign, passez en mode expression et tapez :AddItem(Flow.SubscribedServices, "Assurance Vie") - Cliquez sur
+ Add Update Statementdans la même actionUpdate Data. - Sélectionnez à nouveau
Flow.SubscribedServices. - Dans
Value to Assign, tapez :AddItem(Flow.SubscribedServices, "Epargne Logement"). - Remarque : Nous utilisons ici deux instructions dans la même action
Update Datapour plus de clarté, mais cela revient au même que d'utiliser deux actionsUpdate Datasuccessives. Après cette action, votre collection contiendra["Assurance Vie", "Epargne Logement"].
- Ajoutez une deuxième action
-
Récupérez le premier service.
- Ajoutez une troisième action
Update Data. - Cette fois, créez une variable simple de type String nommée
Flow.FirstService. - Dans le champ
Value to Assign, entrez l'expression :GetAt(Flow.SubscribedServices, 0).
- Ajoutez une troisième action
-
Vérifiez le résultat.
- Ajoutez une action
Play Audio(catégorieAudio). - Configurez-la pour énoncer un message en utilisant le Text-to-Speech (TTS).
- Dans le champ
Text to Speech Expression, entrez :Append("Le premier service de votre liste est : ", Flow.FirstService). La fonctionAppendpermet de concaténer (joindre) des chaînes de caractères. - Ajoutez une action
Disconnectà la fin.
- Ajoutez une action
-
Publiez et testez votre flux. Vous devriez entendre le message "Le premier service de votre liste est : Assurance Vie".
Cet exercice simple vous a fait parcourir le cycle de vie complet d'une collection : création, peuplement et lecture.
Conclusion
Félicitations ! Vous savez maintenant comment travailler avec des collections dans Architect. C'est un concept qui peut sembler un peu abstrait au début, mais qui est absolument fondamental pour construire des logiques de flux complexes et traiter des données multiples.
Points clés à retenir :
- Une collection est une variable qui contient une liste d'éléments de même type.
- On la crée via l'action
Update Data. - Les fonctions comme
AddItemetRemoveItempermettent de manipuler les collections. N'oubliez pas qu'elles retournent une nouvelle collection : il faut donc réaffecter le résultat à la variable. - La fonction
GetAt(collection, index)permet de récupérer un élément spécifique. L'index du premier élément est toujours 0.
Prochaine leçon :
Nous savons créer une liste et lire un de ses éléments. Mais comment effectuer une action pour chaque élément de la liste, sans savoir à l'avance combien il y en a ? C'est le rôle de l'action Loop (boucle), que nous explorerons en détail dans la prochaine et dernière leçon de ce module.