Componentes de Controle
Esses componentes de controle do modo YAML roteiam o fluxo com base se a entrada do usuário corresponde a um valor predeterminado.
System.ConditionEquals
Este componente altera a navegação com base em um valor de variável.
Observação
Este componente não está disponível no Designer de Fluxo Visual. Você pode usar Alternar para essa finalidade.
Este componente não está disponível no Designer de Fluxo Visual. Você pode usar Alternar para essa finalidade.
Use este componente para ramificar o fluxo de caixas de diálogo quando um valor for correspondido. Este componente executa o roteamento baseado em valor comparando os valores definidos para sua propriedade
source
ou variable
com o valor armazenado pela propriedade value
. O componente aciona as ações equal
e notequal
adequadamente com base em uma correspondência (ou na falta). No trecho de código a seguir, o cliente é roteado para o estado orderPizza
quando a entrada extraída para a variável de contexto orders
corresponde a pizza
, ou para o caminho de execução que começa com o estado orderPasta
quando não. Check for Pizza:
component: "System.ConditionEquals"
properties:
variable: "orders"
value: "pizza"
transitions:
actions:
equal: "orderPizza"
notequal: "orderPasta"
Propriedades | Descrição | 0brigatório? |
---|---|---|
variable |
O nome da variável cujo valor atual determina o roteamento. O Mecanismo de Caixa de Diálogo ignora a propriedade variable se você também definiu a propriedade source .
|
No |
source |
A propriedade source é uma alternativa à propriedade variable .
|
No |
value |
O valor comparado com a propriedade source ou variable .
|
Sim |
Como Uso Expressões do Apache FreeMarker com o Componente System.ConditionEquals?
Você pode restringir os critérios de correspondência a valores e formatos específicos definindo as propriedades
value
e source
com expressões do Apache FreeMarker. Por exemplo :
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
Use este componente para verificar a existência de uma variável especificada. Para rotear a caixa de diálogo de acordo com o valor, defina a chave de transições usando as ações exists
e notexist
.
Observação
Este componente não está disponível no Designer de Fluxo Visual. Você pode usar Alternar para essa finalidade.
Este componente não está disponível no Designer de Fluxo Visual. Você pode usar Alternar para essa finalidade.
Propriedades | Descrição | 0brigatório? |
---|---|---|
variable |
O nome da variável | Sim |
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
Use esse componente para alternar estados com base em um valor de variável.
Observação
Este tópico abrange o uso desse componente no modo YAML. Para obter informações sobre como usá-lo no Visual Flow Designer, consulte Alternar.
Este tópico abrange o uso desse componente no modo YAML. Para obter informações sobre como usá-lo no Visual Flow Designer, consulte Alternar.
Ativa o roteamento baseado em valor semelhante ao componente
System.ConditionEquals
. O componente System.Switch
seleciona um caminho de execução comparando uma lista de valores com uma propriedade variable
ou source
. Quando os valores correspondem, o componente aciona uma transição de ação que nomeia o estado que inicia o caminho de execução. Você pode adicionar uma transição NONE
quando o valor atual definido para a variável não corresponde a qualquer item definido para a propriedade values
. Configurar o Fluxo de Caixas de Diálogo para Ações Inesperadas descreve como o componente System.Switch
permite que seu bot de habilidades trate adequadamente uma entrada incorreta do usuário.switchOnCategory:
component: "System.Switch"
properties:
variable: "category"
values:
- "Vehicle"
- "Property"
- "Other"
transitions:
actions:
NONE: "ActionNoLongerAvailable"
Vehicle: "getVehicleQuote"
Property: "getPropertyQuote"
Other: "getOtherQuote"
Propriedade | Descrição | 0brigatório? |
---|---|---|
variable |
Uma variável cujo valor atual é usado como base para a transição de alternância. Defina a propriedade values como lista de valores de comparação. O Mecanismo de Caixa de Diálogo ignora a propriedade variable quando você também definiu a propriedade source .
|
No |
source |
A propriedade source é uma alternativa à propriedade variable .
|
No |
values |
A lista de valores usados como comparações nas propriedades source ou variable .
Observação
Essa propriedade não está disponível no Designer de Fluxo Visual do componente. Consulte Alternar. |
Sim |
Como Uso Expressões do Apache FreeMarker com o Componente System.Switch?
Você pode restringir os critérios de correspondência a valores e formatos específicos definindo as propriedades
value
e source
com expressões do Apache FreeMarker. Por exemplo, você pode definir a expressão usando operações incorporadas do FreeMarker, como 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