Kontrollkomponenten
Diese Kontrollkomponenten im YAML-Modus leiten den Ablauf weiter, je nachdem, ob die Benutzereingabe mit einem vordefinierten Wert übereinstimmt.
System.ConditionEquals
Diese Komponente ändert die Navigation basierend auf einem Variablenwert.
Hinweis
Diese Komponente ist im Visual Flow Designer nicht verfügbar. Sie können stattdessen den Switch für diesen Zweck verwenden.
Diese Komponente ist im Visual Flow Designer nicht verfügbar. Sie können stattdessen den Switch für diesen Zweck verwenden.
Mit dieser Komponente können Sie den Dialogablauf verzweigen, wenn ein Wert abgeglichen wird. Diese Komponente führt wertbasiertes Routing durch, indem die für ihre Eigenschaften
source
oder variable
festgelegten Werte mit dem von der Eigenschaft value
gespeicherten Wert verglichen werden. Die Komponente löst die Aktionen equal
und notequal
entsprechend einer Übereinstimmung (oder keiner Übereinstimmung) aus. In dem folgenden Snippet wird der Kunde an den Status orderPizza
weitergeleitet, wenn die für die Kontextvariable orders
extrahierte Eingabe mit pizza
übereinstimmt, oder an den Ausführungspfad, der mit dem Status orderPasta
beginnt, wenn dies nicht der Fall ist. Check for Pizza:
component: "System.ConditionEquals"
properties:
variable: "orders"
value: "pizza"
transitions:
actions:
equal: "orderPizza"
notequal: "orderPasta"
Eigenschaften | Beschreibung | Erforderlich? |
---|---|---|
variable |
Der Name der Variablen, deren aktueller Wert das Routing bestimmt. Die Dialog-Engine ignoriert die Eigenschaft variable , wenn Sie auch die Eigenschaft source definiert haben.
|
Nein |
source |
Die Eigenschaft source ist eine Alternative zur Eigenschaft variable .
|
Nein |
value |
Der Wert, der mit den Eigenschaften source oder variable verglichen wird.
|
Ja |
Wie werden Apache FreeMarker-Ausdrücke mit der Komponente "System.ConditionEquals" verwendet?
Sie können die Übereinstimmungskriterien auf bestimmte Werte und Formate eingrenzen, indem Sie die Eigenschaften
value
und source
mit Apache FreeMarker-Ausdrücken definieren. Beispiel:
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
Mit dieser Komponente prüfen Sie, ob eine bestimmte Variable vorhanden ist. Um die Unterhaltung entsprechend dem Wert weiterzuleiten, definieren Sie den Übergangsschlüssel mit den Aktionen exists
und notexist
.
Hinweis
Diese Komponente ist im Visual Flow Designer nicht verfügbar. Sie können stattdessen den Switch für diesen Zweck verwenden.
Diese Komponente ist im Visual Flow Designer nicht verfügbar. Sie können stattdessen den Switch für diesen Zweck verwenden.
Eigenschaften | Beschreibung | Erforderlich? |
---|---|---|
variable |
Der Name der Variablen | Ja |
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
Mit dieser Komponente können Sie den Status basierend auf einem Variablenwert ändern.
Hinweis
In diesem Thema wird die Verwendung dieser Komponente im YAML-Modus behandelt. Informationen zur Verwendung im Visual Flow Designer finden Sie unter Switch.
In diesem Thema wird die Verwendung dieser Komponente im YAML-Modus behandelt. Informationen zur Verwendung im Visual Flow Designer finden Sie unter Switch.
Aktiviert wertbasiertes Routing, ähnlich wie bei der Komponente
System.ConditionEquals
. Die Komponente System.Switch
wählt einen Ausführungspfad aus, indem eine Werteliste mit einer variable
- oder source
-Eigenschaft verglichen wird. Wenn die Werte übereinstimmen, löst die Komponente einen Aktionsübergang aus, der den Status benennt, der den Ausführungspfad startet. Sie können einen NONE
-Übergang hinzufügen, wenn der aktuelle Wert, der für die Variable festgelegt ist, mit keinem der für die Eigenschaft values
definierten Elemente übereinstimmt. Unter Dialogablauf für unerwartete Aktionen konfigurieren wird beschrieben, wie Ihr Skillbot mit der Komponente System.Switch
eine falsche Benutzereingabe ordnungsgemäß verarbeiten kann.switchOnCategory:
component: "System.Switch"
properties:
variable: "category"
values:
- "Vehicle"
- "Property"
- "Other"
transitions:
actions:
NONE: "ActionNoLongerAvailable"
Vehicle: "getVehicleQuote"
Property: "getPropertyQuote"
Other: "getOtherQuote"
Eigenschaft | Beschreibung | Erforderlich? |
---|---|---|
variable |
Eine Variable, deren aktueller Wert als Basis für den Switch-Übergang verwendet wird. Definieren Sie die Eigenschaft values als Liste mit Vergleichswerten. Die Dialog-Engine ignoriert die Eigenschaft variable , wenn Sie auch die Eigenschaft source definiert haben.
|
Nein |
source |
Die Eigenschaft source ist eine Alternative zur Eigenschaft variable .
|
Nein |
values |
Die Werteliste, die mit den Eigenschaften source oder variable verglichen wird.
|
Ja |
Wie werden Apache FreeMarker-Ausdrücke mit der Komponente "System.Switch" verwendet?
Sie können die Übereinstimmungskriterien auf bestimmte Werte und Formate eingrenzen, indem Sie die Eigenschaften
value
und source
mit Apache FreeMarker-Ausdrücken definieren. Sie können den Ausdruck z.B. mit integrierten FreeMarker-Vorgängen definieren, wie date
und 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