Convertir une valeur de chaîne en une valeur typée
Au sein d’un flux d ’ appels, il n’est pas rare que les auteurs de flux souhaitent convertir une valeur de chaîne en une valeur typée. Architect prend en charge la conversion d’une valeur de chaîne en un autre type pour de nombreux types de données de base.
Le scénario suivant illustre le problème qu’un auteur de flux peut rencontrer lors de la tentative de conversion d’une valeur de chaîne de « 5» qui, à exc exécuter, renvoie la valeur entière de 5.
ToInt("5")
Dans cet exemple, le flux doit convertir une chaîne en un type de données réseau. Le flux veut transférer un appel vers une file d’attente et appelle une action Bridge pour récupérer le nom de la file d’attente. L’action Bridge renvoie le nom de la file d’attente dans une chaîne. Une action Transfert vers ACD effectuera le transfert en file d’attente.
Si un auteur de flux tente d’utiliser la chaîne en tant que paramètre de file d’attente directement dans l’action Transférer vers l’ACD, le système renvoie une erreur. L’action Transférer vers l’ACD s’attend à ce que le système fournisse une valeur de file d’attente pour la destination du transfert de file d’attente. Etant donné que les fonctions To convertissent un type en un autre, l’auteur du flux peut essayer d’utiliser la fonction ToQueue pour convertir la chaîne en file d’attente à l’aide de la fonction ToQueue. Toutefois, comme Architect ne dispose pas d’une implémentation ToQueue convertissant une valeur de chaîne en valeur de file d’attente, vous ne pouvez pas convertir de chaînes en types de données réseau dans un flux :
Dans Architect, utilisez des tableaux parallèles pour convertir une valeur de chaîne en un autre type de valeur. Comme solution configure efficacement un mappage clé> valeur et que les valeurs spécifiées sont illimitées, il fonctionne au-delà des types de valeur basés sur le réseau.
Par exemple, un flux contient une variable de collection de chaînes appelée Task.QueueNames et une variable de collection de files d’attente appelée Task.Queues. Le nombre d’éléments dans les deux collections est le même. Vous pouvez configurer les variables pour rechercher rapidement la file d’attente associée dans Task.Queues pour une valeur de chaîne trouvée dans Task.QueueNames.
Utilisez une action Update Data pour configurer le jeu de collections sur ces variables :
Task.QueueNames | Task.Queues |
---|---|
"Ventes" | File d’attente de vente Genesys Cloud |
"Commercialisation" | File d’attente marketing Genesys Cloud |
"Support technique" | File d’attente du support technique Genesys Cloud |
Ensuite, créez une expression pour effectuer la recherche et dispose d’une file d’attente de secours par défaut si le système ne peut pas trouver la chaîne fournie pour la conversion. Pour commencer, définissez Task.DefaultQueue sur la file d’attente Genesys Cloud Operator de cette organisation.
Construisez maintenant l’expression qui recherche la file d’attente par son nom et renvoie la file d’attente associée à cette chaîne :
If(FindFirst(Task.QueueNames, Task.QueueNameStr)!=-1, Task.Queues[FindFirst(Task.QueueNames, Task.QueueNameStr)], Task.DefaultQueue)
Vous pouvez maintenant mapper les valeurs de chaîne sur les files d’attente d’un flux d ’ appels. L’expression ci-dessus fonctionne pour les collections contenant un petit nombre d’éléments. Pour les grandes collections, sauvegarder est la valeur de l’appel FindFirst vers une variable, ce qui garantit que le système n’exécute pas l’appel deux fois dans la même expression. Si vous sauvegarder la valeur de l’appel FindFirst d’une variable entière Task.FoundIndex, réécrivez l’expression ci-dessus comme suit :
If(Task.FoundIndex!=-1, Task.Queues[Task.FoundIndex], Task.DefaultQueue)
Architect n’inclut actuellement pas de fonction intégrée qui convertit une chaîne en un type basé sur le réseau. Architect ne supporte pas cette fonction pour diverses raisons :
- Chez flux d ’ appels exc exécuter la résolution d’un type de données réseau, par exemple une file d’attente d’une chaîne, nécessite actuellement un aller-retour du bord au nuage. Ce scénario peut potentiellement créer beaucoup de trafic réseau.
- Un bord peut s’exécuter lorsqu’il est déconnecté. Dans ce cas, la résolution exciterYYZZY d’une valeur de chaîne en une valeur réseau n’est pas possible en appelant le cloud.
- Dans les rares cas où deux objets de réseau portent le même nom, la recherche par nom devient ambiguë car le système peut renvoyer plusieurs objets portant le même nom.
Toutefois, vous pouvez utiliser les différentes actions Rechercher et Obtenir qui vous permettent d'effectuer des opérations de recherche et de consultation. Pour plus d’informations, voir Actions de l’éditeur de tâche et d’état.