Composants de contrôle
Ces composants de contrôle en mode YAML acheminent le flux en fonction de la correspondance de la saisie utilisateur avec une valeur prédéterminée.
System.ConditionEquals
Ce composant modifie la navigation en fonction d'une valeur de variable.
Remarque
Ce composant n'est pas disponible dans le concepteur visuel de flux. Vous pouvez utiliser le commutateur à cette fin.
Ce composant n'est pas disponible dans le concepteur visuel de flux. Vous pouvez utiliser le commutateur à cette fin.
Utilisez ce composant pour orienter le flux de dialogue lorsqu'une valeur est mise en correspondance. Ce composant exécute un acheminement basé sur les valeurs en comparant les valeurs définies pour ses propriétés
source
ou variable
par rapport à la valeur stockée par la propriété value
. Le composant déclenche les actions equal
et notequal
en fonction d'une correspondance (ou d'une absence de correspondance). Dans le fragment de code suivant, le client est acheminé vers l'état orderPizza
lorsque l'entrée extraite pour la variable de contexte orders
correspond à pizza
ou au parcours d'exécution qui commence par l'état orderPasta
lorsqu'elle ne correspond pas. Check for Pizza:
component: "System.ConditionEquals"
properties:
variable: "orders"
value: "pizza"
transitions:
actions:
equal: "orderPizza"
notequal: "orderPasta"
Propriétés | Description | Requis ? |
---|---|---|
variable |
Nom de la variable dont la valeur actuelle détermine l'acheminement. Le moteur de dialogue ignore la propriété variable si vous avez également défini la propriété source .
|
Non |
source |
La propriété source est une propriété alternative à la propriété variable .
|
Non |
value |
Valeur comparée aux propriétés source ou variable .
|
Oui |
Comment utiliser les expressions Apache FreeMarker avec le composant System.ConditionEquals ?
Vous pouvez affiner les critères de correspondance à des valeurs et formats spécifiques en définissant les propriétés
value
et source
avec des expressions Apache FreeMarker. Par exemple :
verifyCode: component: "System.ConditionEquals" properties: variable: "code" value: "${userEnteredCode.value}" transitions: actions: equal: "wrongCode" notequal: "${flow.value}"
conditionEquals: component:"System.ConditionEquals" properties: source: "${addressVariable.value.state} - ${addressVariable.value.country}" value: "CA - USA" transitions: actions: equal: goCalfifornia notequal: goSomewhereElse
main: true name: "Shoppingbot" context: variables: yesnoVar: "YES_NO" ... confirmBuy: component: "System.ConditionEquals" properties: source: "${yesnoVar.value.yesno}" value: "YES" transitions: actions: equal: "deviceDone" notequal: "cancelOrder" deviceDone: component: "System.Output" properties: text: "Your ${devices.value} is on its way." transitions: return: "done" cancelOrder: component: "System.Output" properties: text: "Thanks for your interest." transitions: return: "done"
-
context: variables: wordLength: "int" words: "string" states: askName: component: "System.Text" properties: prompt: "What is your name?" variable: "words" setVariable: component: "System.SetVariable" properties: variable: "wordLength" value: "${words.value?length}" conditionEquals: component: "System.ConditionEquals" properties: source: "${(wordLength.value?number > 2)?then('valid', 'invalid')}" value: "valid" transitions: actions: equal: "checkFirstNameinDatabase" notequal: "inValidName" done: component: "System.Output" properties: text: "Done" transitions: return: "done" checkFirstNameinDatabase: component: "System.Output" properties: text: "Check the first name in the database." transitions: return: "done" inValidName: component: "System.Output" properties: text: "This name is not valid. It needs to be at least three letters." transitions: return: "done"
System.ConditionExists
Utilisez ce composant pour vérifier l'existence d'une variable indiquée. Pour acheminer la boîte de dialogue en fonction de la valeur, définissez la clé de transition à l'aide des actions exists
et notexist
.
Remarque
Ce composant n'est pas disponible dans le concepteur visuel de flux. Vous pouvez utiliser le commutateur à cette fin.
Ce composant n'est pas disponible dans le concepteur visuel de flux. Vous pouvez utiliser le commutateur à cette fin.
Propriétés | Description | Requis ? |
---|---|---|
variable |
Nom de la variable | Oui |
main: true
name: "HelloKids"
context:
variables:
foo: "string"
lastQuestion: "string"
lastResponse: "string"
states:
intent:
component: "System.Intent"
properties:
variable: "iResult"
transitions:
actions:
Talk: "checkUserSetup"
unresolvedIntent: "checkUserSetup"
checkUserSetup:
component: "System.ConditionExists"
properties:
variable: "user.lastQuestion"
transitions:
actions:
exists: "hellokids"
notexists: "setupUserContext"
setupUserContext:
component: "System.CopyVariable"
properties:
from: "lastQuestion,lastResponse"
to: "user.lastQuestion,user.lastResponse"
transitions:
...
...
System.Switch
Utilisez ce composant pour changer d'état en fonction d'une valeur de variable.
Remarque
Cette rubrique traite de l'utilisation de ce composant en mode YAML. Pour plus d'informations sur son utilisation dans le concepteur visuel de flux, reportez-vous à Basculer.
Cette rubrique traite de l'utilisation de ce composant en mode YAML. Pour plus d'informations sur son utilisation dans le concepteur visuel de flux, reportez-vous à Basculer.
Active l'acheminement basé sur les valeurs d'une manière semblable au composant
System.ConditionEquals
. Le composant System.Switch
sélectionne un parcours d'exécution en comparant une liste de valeurs à une propriété variable
ou source
. Lorsque les valeurs correspondent, le composant déclenche une transition d'action qui nomme l'état qui démarre le parcours d'exécution. Vous pouvez ajouter une transition NONE
lorsque la valeur actuelle définie pour la variable ne correspond à aucun des éléments définis pour la propriété values
. La section Configuration du flux de dialogue pour les actions inattendues décrit comment le composant System.Switch
permet à votre bot de brique de gérer correctement des saisies utilisateur incorrectes.switchOnCategory:
component: "System.Switch"
properties:
variable: "category"
values:
- "Vehicle"
- "Property"
- "Other"
transitions:
actions:
NONE: "ActionNoLongerAvailable"
Vehicle: "getVehicleQuote"
Property: "getPropertyQuote"
Other: "getOtherQuote"
Propriété | Description | Requis ? |
---|---|---|
variable |
Variable dont la valeur actuelle est utilisée comme base pour la transition. Définissez la propriété values en tant que liste de valeurs de comparaison. Le moteur de dialogue ignore la propriété variable lorsque vous avez également défini la propriété source .
|
Non |
source |
La propriété source est une propriété alternative à la propriété variable .
|
Non |
values |
Liste des valeurs utilisées à titre de comparaison par rapport aux propriétés source ou variable .
Remarque
Cette propriété n'est pas disponible dans le concepteur visuel de flux du composant. Voir Switch. |
Oui |
Comment utiliser les expressions Apache FreeMarker avec le composant System.Switch ?
Vous pouvez affiner les critères de correspondance à des valeurs et formats spécifiques en définissant les propriétés
value
et source
avec des expressions Apache FreeMarker. Par exemple, vous pouvez définir l'expression à l'aide d'opérations FreeMarker intégrées, comme date
et string
: switch2:
component: "System.Switch"
properties:
source: "${startDate.value.date?string('dd-MM-yyyy')}"
values:
- "17-12-2017"
- "18-12-2017"
transitions:
actions:
"17-12-2017": goToday
"18-12-2017": goTomorrow