Componenti controllo
Questi componenti di controllo in modalità YAML instradano il flusso in base al fatto che l'input dell'utente corrisponda a un valore predeterminato.
System.ConditionEquals
Questo componente modifica la navigazione in base a un valore di variabile.
Nota
Questo componente non è disponibile in Visual Flow Designer. A questo scopo è possibile utilizzare Switch.
Questo componente non è disponibile in Visual Flow Designer. A questo scopo è possibile utilizzare Switch.
Utilizzare questo componente per diramare il flusso della finestra di dialogo quando viene trovata una corrispondenza con un valore. Questo componente esegue l'instradamento basato su valori confrontando i valori impostati per le relative proprietà
source
o variable
con il valore memorizzato dalla proprietà value
. Il componente attiva di conseguenza le azioni equal
e notequal
in base a una corrispondenza (o a una mancanza di corrispondenza). Nello snippet seguente, il cliente viene instradato allo stato orderPizza
quando l'input estratto per la variabile di contesto orders
corrisponde a pizza
o al percorso di esecuzione che inizia con lo stato orderPasta
quando non lo fa. Check for Pizza:
component: "System.ConditionEquals"
properties:
variable: "orders"
value: "pizza"
transitions:
actions:
equal: "orderPizza"
notequal: "orderPasta"
Proprietà | descrizione; | Richiesto? |
---|---|---|
variable |
Nome della variabile il cui valore corrente determina il ciclo di produzione. Il motore di dialogo ignora la proprietà variable se è stata definita anche la proprietà source .
|
No |
source |
La proprietà source è un'alternativa alla proprietà variable .
|
No |
value |
Il valore confrontato con le proprietà source o variable .
|
Sì |
Come utilizzare le espressioni FreeMarker Apache con il componente System.ConditionEquals
È possibile limitare i criteri di corrispondenza a valori e formati specifici definendo le proprietà
value
e source
con le espressioni FreeMarker di Apache. Ad esempio:
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
Utilizzare questo componente per verificare l'esistenza di una variabile specificata. Per instradare la finestra di dialogo in base al valore, definire la chiave di transizione utilizzando le azioni exists
e notexist
.
Nota
Questo componente non è disponibile in Visual Flow Designer. A questo scopo è possibile utilizzare Switch.
Questo componente non è disponibile in Visual Flow Designer. A questo scopo è possibile utilizzare Switch.
Proprietà | descrizione; | Richiesto? |
---|---|---|
variable |
Il nome della variabile | Sì |
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
Utilizzare questo componente per cambiare gli stati in base a un valore variabile.
Nota
In questo argomento viene descritto l'uso di questo componente in modalità YAML. Per informazioni sull'utilizzo in Visual Flow Designer, vedere Cambia.
In questo argomento viene descritto l'uso di questo componente in modalità YAML. Per informazioni sull'utilizzo in Visual Flow Designer, vedere Cambia.
Abilita il routing basato sul valore simile al componente
System.ConditionEquals
. Il componente System.Switch
seleziona un percorso di esecuzione confrontando una lista di valori con una proprietà variable
o source
. Quando i valori corrispondono, il componente attiva una transizione di azione che assegna un nome allo stato che avvia il percorso di esecuzione. È possibile aggiungere una transizione NONE
quando il valore corrente impostato per la variabile non corrisponde a nessuno degli elementi definiti per la proprietà values
. In Configura flusso di finestre di dialogo per azioni impreviste viene descritto come il componente System.Switch
consente al bot skill di gestire in modo normale l'input utente errato.switchOnCategory:
component: "System.Switch"
properties:
variable: "category"
values:
- "Vehicle"
- "Property"
- "Other"
transitions:
actions:
NONE: "ActionNoLongerAvailable"
Vehicle: "getVehicleQuote"
Property: "getPropertyQuote"
Other: "getOtherQuote"
Proprietà | descrizione; | Richiesto? |
---|---|---|
variable |
Variabile il cui valore corrente viene utilizzato come base per la transizione dello switch. Definire la proprietà values come una lista di valori di confronto. Il motore di dialogo ignora la proprietà variable quando è stata definita anche la proprietà source .
|
No |
source |
La proprietà source è un'alternativa alla proprietà variable .
|
No |
values |
Elenco di valori utilizzato come confronto con le proprietà source o variable .
|
Sì |
Come utilizzare le espressioni FreeMarker Apache con il componente System.Switch
È possibile limitare i criteri di corrispondenza a valori e formati specifici definendo le proprietà
value
e source
con le espressioni FreeMarker di Apache. Ad esempio, è possibile definire l'espressione utilizzando operazioni FreeMarker incorporate, come date
e 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