Metadateneigenschaft in gemeinsamen Antwortkomponenten
Mit der Eigenschaft "Metadaten" in Komponenten für gemeinsame Antworten definieren Sie, wie Nachrichten für Benutzer angezeigt werden.
metadata:
responseItems:
- text: "To which location do you want the pizza to be delivered?"
type: "text"
name: "What location"
separateBubbles: true
globalActions:
- label: "Send Location"
type: "location"
name: "SendLocation"
Eigenschaft | Beschreibung | Erforderlich? |
---|---|---|
responseItems |
Eine Liste mit Antwortelementen, die jeweils dazu führen, dass eine neue Nachricht an den Chatclient gesendet wird (oder mehrere Nachrichten, wenn Sie die Iteration für das Antwortelement mit der Eigenschaft iteratorVariable oder einer Kombination der Eigenschaften iteratorVariable und iteratorExpression festlegen). Definieren Sie diese Antwortelemente anhand der folgenden Werte:
|
Ja |
globalActions |
Eine Liste mit globalen, d.h. für keine der Antwortelemente spezifischen Aktionen. Diese Aktionen werden normalerweise unten im Chatfenster angezeigt. In Facebook Messenger werden diese Optionen beispielsweise als Schnellantworten bezeichnet. | Nr. |
keywords |
Eine Liste mit Schlüsselwörtern, die mit den Schlüsselwörtern übereinstimmen, die von einem Benutzer für eine entsprechende Postback-Payload eingegeben wurden. Schlüsselwörter unterstützen Nur-Text-Kanäle, bei denen Aktionsschaltflächen nicht gut dargestellt werden können. | Nr. |
Eigenschaft | Beschreibung | Erforderlich? | |
---|---|---|---|
type |
Der Typ des Antwortelements, das das Nachrichtenformat bestimmt. Sie können eine Nachricht als text , attachment oder cards festlegen.
|
Ja | |
name |
Ein Name für das Antwortelement, der intern verwendet wird. Er wird nicht zur Laufzeit verwendet. | Nr. | |
iteratorVariable |
Fügt der Antwort dynamisch mehrere Text-, Anhangs- oder Schlüsselwortelemente hinzu, indem die Variablenelemente durchlaufen werden. | Nr. | |
iteratorExpression |
Ein FreeMarker-Ausdruck zum Anzeigen von Werten aus einem Array, das in der durch die Eigenschaft iteratorVariable angegebenen Variable verschachtelt ist.
Beispiel: Wenn Sie den Wert der Eigenschaft |
Nr. | |
visible |
Bestimmt, wie Nachrichten pro Benutzereingabe und Kanal angezeigt werden. Siehe Die sichtbare Eigenschaft. | Nr. | |
rangeStart |
Wenn Sie eine iteratorVariable angegeben haben, können Sie eine Teilmenge von Antwortelementen ausschließen, indem Sie die Eigenschaft rangeStart in Verbindung mit der Eigenschaft rangeSize angeben. Sie können einen hartcodierten Wert eingeben oder einen FreeMarker-Ausdruck verwenden, der auf eine Dialogablaufvariable verweist, die den Anfang des Bereichs enthält. Wenn Sie eine rangeStart -Variable verwenden, können Sie zur nächsten Gruppe von Daten blättern, indem Sie die Variable rangeStart in der Payload der Durchsuchen-Option festlegen. Ein Beispiel der Eigenschaften rangeStart und rangeSize finden Sie im StatusOrderPizza von CrcPizzaBot.
|
Nr. | |
rangeSize |
Die Anzahl der Antwortelemente, die wie in den Eigenschaften iteratorVariable und rangeStart angegeben angezeigt werden.
|
Nr. | |
channelCustomProperties |
Eine Liste der Eigenschaften, die kanalspezifische Funktionen auslösen. Da diese Funktionen plattformspezifisch sind, befinden sie sich außerhalb der Komponente "Gemeinsame Antwort" und können daher nicht von den Eigenschaften auf Root-Ebene der Komponente oder auf Elementebene der Antwort gesteuert werden. Ein Beispiel für diese Eigenschaft finden Sie im Status OrderPizza von CrcPizzaBot. Einzelheiten zur Verwendung von channelCustomProperties sowie zu den verfügbaren Eigenschaften für jeden Kanal finden Sie unter Kanalspezifische Erweiterungen.
|
Nr. |
Eigenschaften von Schlüsselwortmetadaten
Das folgende Snippet zeigt, wie eine Gruppe von Schlüsselwörtern aus einer
pizzaSize
-Variablen generiert werden kann, die die für eine PizzaSize-Entity definierte Werteliste enthält.
responseItems:
- type: "text"
text: "What size of pizza do you want?"
actions:
- label: "(${enumValue[0]?upper_case})${enumValue?keep_after(enumValue[0])}"
type: "postback"
keyword: "${enumValue[0]?upper_case},${(enumValue?index)+1}"
payload:
variables:
pizzaSize: "${enumValue}"
iteratorVariable: "pizzaSize.type.enumValues"
Eigenschaft | Beschreibung | Erforderlich? |
---|---|---|
keyword |
Eine Liste mit Schlüsselwörtern, die die Postback-Payload auslösen, die durch die Eigenschaft payload definiert wird. Sie können einen FreeMarker-Ausdruck verwenden, um Schlüsselwörter zurückzugeben, die die Eigenschaft interatorVariable aus Wertelistenentitys generiert, indem Sie die Eigenschaften type und enumValues (iteratorVariable: "pizzaSize.type.enumValues" ) verwenden.
|
Ja |
label |
Das Label für die Aktion. Dabei kann es sich um eine Textzeichenfolge oder einen Apache FreeMarker-Ausdruck handeln. Beispiel: Ein Ausdruck, der ein Schlüsselwort aus zwei Buchstaben angibt, sieht folgendermaßen aus:
|
Nr. |
skipAutoNumber |
Setzen Sie diese Eigenschaft auf true , um die automatische Nummerierung für ein Schlüsselelement zu unterdrücken, wenn die Option Automatische Nummerierung auf Karten aktivieren auf der Ebene des digitalen Assistenten oder des Skills festgelegt ist.
|
Nr. |
visible |
Bestimmt, wie Textnachrichten pro Benutzereingabe und Kanal angezeigt werden. Siehe Die sichtbare Eigenschaft | Nr. |
iteratorVariable |
Fügt mehrere Schlüsselwörter dynamisch hinzu, indem die Elemente, die in der angegebenen Variablen gespeichert sind, iteriert werden. Beispiel: iteratorVariable: "pizzaSize.type.enumValues" .
|
Nr. |
iteratorExpression |
Ein FreeMarker-Ausdruck zum Anzeigen von Werten aus einem Array, das in der durch die Eigenschaft iteratorVariable angegebenen Variable verschachtelt ist.
Beispiel: Wenn Sie den Wert der Eigenschaft |
|
payload |
Die Postback-Payload mit den folgenden Eigenschaften.
|
Schlüsselwörter aus Nachrichten extrahieren
Wenn die Komponente einen Postback auslöst, wenn Benutzer eine Nummer eingeben, können Sie Ihren Skill erweitern, um eine umfassende Eingabe wie Erste, oder 1. Artikel ausprobieren zu unterstützen. Erstellen Sie dazu eine Arrayvariable für die Schlüsselwortphrasen (z.B. erste,1.,eine, zweite, 2., zwei usw.)
keyword
in den Metadaten. So könnte es beispielsweise in einem Ablauf für die Bestellung einer Pizza aussehen.- keyword: "${pizzas.name},<#if pizzas?index <KEYWORDS_VAR.value?size>${numberKeywords.value[pizzas?index].keywords}</#if>,<#if pizzas?index==cardsRangeStart?number+[cardsRangeStart?number+3,pizzaCount.value?number-cardsRangeStart?number-1]?min>last</#if>"
In dieser Definition basiert das letzte Schlüsselwort auf dem Anfang des aktuellen Bereichs. Sie ist auf die letzte Pizza gesetzt, die derzeit angezeigt wird, basierend auf der Häufigkeit, mit der der Kunde "Mehr" eingegeben hat.Die sichtbare Eigenschaft
visible
fest.
Eigenschaft | Beschreibung | Erforderlich? |
---|---|---|
expression |
Die Apache FreeMarker-Anweisung, mit der Text, Karten oder Anhänge bedingt angezeigt oder ausgeblendet werden. Beispiel: Der Status OrderPizza von CrcPizzaBot verwendet ""<#if cardsRangeStart?number+4 < pizzas.value?size && textOnly=='false'>true<#else>false</#if>" . |
Nr. |
|
Geben Sie für include und exclude eine durch Komma getrennte Liste der Kanaltypen ein, für die Text, Karte oder Anhang angezeigt (include ) oder ausgeblendet (exclude ) werden sollen. Gültige Kanalwerte sind:
|
Nr. |
onInvalidUserInput |
Ein boolesches Flag, das das Textelement oder den Anhang anzeigt, wenn der Benutzer eine gültige Eingabe eingibt (value=false ) oder wenn der Benutzer eine ungültige Eingabe eingibt (value=true ).
|
Nr. |
onDisambiguation |
Wenn true angezeigt wird, wird nur das Antwortelement, die Karte oder die Aktion angezeigt, wenn ein Disambiguierungs-Prompt angezeigt wird.
|
Nr. |
entitiesToResolve |
Mit dieser Eigenschaft können Sie benutzerdefinierte Nachrichten für jedes Mischentityelement erstellen. Fügen Sie eine durch Komma getrennte Liste mit Mischentityelementnamen hinzu, für die das Antwortelement angezeigt (include ) oder ausgeblendet (exclude ) werden soll.
|
Nr. |
Eigenschaften der Aktionsmetadaten
Sie können Aktionen für eine Karte oder Listen, einen Antworttyp oder globale Aktionen für eine Komponente definieren (wie die Schnellantwortaktionen auf Facebook). Sie können keine Aktionen für Anhangsnachrichten konfigurieren.
Eigenschaft | Beschreibung | Erforderlich? | |
---|---|---|---|
type |
Aktionstyp:
|
Ja | |
label |
Ein Label für die Aktion. Um dieses Label zu lokalisieren, können Sie einen FreeMarker-Ausdruck verwenden, um einen Eintrag im Resource Bundle des Bots zu referenzieren. | Ja | |
iteratorVariable |
Mit dieser Option können Sie mehrere Aktionen hinzufügen, indem Sie die in der angegebenen Variablen gespeicherten Elemente iterieren. Sie können diese Eigenschaft nicht mit den Aktionen "Teilen" und "Standort" verwenden. | Nr. | |
iteratorExpression |
Ein FreeMarker-Ausdruck zum Anzeigen von Werten aus einem Array, das in der durch die Eigenschaft iteratorVariable angegebenen Variable verschachtelt ist.
Beispiel: Wenn Sie den Wert der Eigenschaft |
Nr. | |
imageUrl |
Die URL des Bildes, das für ein Symbol verwendet wird, das eine Aktion identifiziert. Mit dieser Eigenschaft können Sie ein Symbol für die Facebook-Schaltfläche "Kurzantwort" anzeigen (dies ist eine globale Aktion). | Nr. | |
skipAutoNumbering |
Wenn diese Eigenschaft auf true gesetzt ist, wird eine einzelne Postback-Aktion davon ausgenommen, dass die automatische Nummerierung auf sie angewendet wird. Sie können diese Eigenschaft für eine Text- oder Kartenantwort verwenden.
|
Nr. | |
channelCustomProperties |
Eine Liste der Eigenschaften, die bestimmte kanalspezifische Funktionen auslösen, die nicht von den Standardaktionseigenschaften gesteuert werden. Ein Beispiel hierzu finden Sie im Status OrderPizza von CrcPizzaBot.
|
Nr. | |
name |
Ein Name, der die Aktion auf der Digital Assistant-Plattform identifiziert. Dieser Name wird intern verwendet und nicht in der Nachricht angezeigt. | Nr. | |
visible |
Bestimmt, wie Anhänge pro Benutzereingabe und Kanal angezeigt werden. Siehe Die sichtbare Eigenschaft. | Nr. | |
payload |
Ein Payload-Objekt für die Antwortelemente call , url und postback . Siehe Die Payload-Eigenschaften.
|
Nr. |
Die Payload-Eigenschaften
Eigenschaft | Beschreibung | Erforderlich? |
---|---|---|
action |
Ein action -Übergang, der ausgelöst wird, wenn der Benutzer diese Aktion auswählt.
|
Nr. |
variables |
Legt die Werte für Variablen fest, wenn Sie den Aktionstyp auf postback setzen und für die Variablen benannte Payload-Eigenschaften hinzufügen. Wenn der Benutzer auf die Aktion tippt, werden die Variablen auf die Werte gesetzt, die von dieser Eigenschaft angegeben werden.
|
Nr. |
url |
Die URL der Website, die geöffnet wird, wenn Benutzer auf diese Aktion tippen. | Diese Eigenschaft ist für den Aktionstyp url erforderlich.
|
phoneNumber |
Die Telefonnummer, die angerufen wird, wenn ein Benutzer auf diese Aktion tippt. | Diese Eigenschaft ist für den Aktionstyp call erforderlich.
|
Wie werden Nicht-Postback-Aktionen in Nur-Text-Kanälen angezeigt?
Einige Dinge, die für diese Aktionsmetadateneigenschaften für gemeinsame Antwortkomponenten zu beachten sind.
-
Wenn der Nur-Text-Kanal Hyperlinks unterstützt, können Sie diese anstelle von Schaltflächen verwenden, wenn der globale Aktionstyp
url
odercall
ist. -
Die Aktionstypen
share
undlocation
werden ignoriert oder nicht angezeigt.
Tipp:
Nicht-Postback-Aktionen wieurl
und call
können nicht nummeriert werden, da sie nicht an die Dialog-Engine übergeben werden und daher nicht durch Schlüsselwörter ausgelöst werden können. Wenn Sie also die beiden Aktionstypen kombinieren, kann die Nachricht Ihres Bots inkonsistent sein, weil nur einige Optionen nummeriert werden.
Mit dem SDK können Sie eine konsistentere Ausgabe erstellen, indem Sie die automatische Nummerierung für das Postback deaktivieren. Beispiel:
{
"type": "text",
"text": "Please choose one of the following options",
"actions": [
{
"type": "url",
"label": "Check out our website",
"url": "http://www.oracle.com"
},
{
"type": "postback",
"label": "<#if autoNumberPostbackActions.value>Enter 1 to Order pizza<#else>Order Pizza<#if>"
"skipAutoNumber": true
"keyword": "1"
"postback": { ...}
}
]
}
Das Textantwortelement
Im Folgenden werden die Eigenschaften für Textreaktionselemente in Komponenten für gemeinsame Antworten aufgeführt.
Eigenschaft | Beschreibung | Erforderlich? | |
---|---|---|---|
text |
Der Text der Benutzereingabeaufforderung. | Ja | |
iteratorExpression |
Ein FreeMarker-Ausdruck zum Anzeigen von Werten aus einem Array, das in der durch die Eigenschaft iteratorVariable angegebenen Variable verschachtelt ist.
Beispiel: Wenn Sie den Wert der Eigenschaft |
||
iteratorVariable |
Fügt der Antwort dynamisch mehrere Text-, Anhangs- oder Schlüsselwortelemente hinzu, indem die Variablenelemente durchlaufen werden. | Nr. | |
footerText |
Text, der unten in der Nachricht angezeigt wird (unter den Text- und Schaltflächenaktionen, sofern vorhanden). Fügen Sie einen Footer hinzu, um die Ausgabe in textbasierten Kanälen zu erweitern. Wie unter Footer beschrieben, können Sie FreeMarker-Ausdrücke verwenden, um den Footertext für Nur-Text-Kanäle bedingt zu formatieren. | Nr. | |
separateBubbles |
Sie können diese Eigenschaft definieren, wenn Sie auch die Eigenschaft iteratorVariable definieren. Wenn Sie diese Eigenschaft auf true setzen, wird jedes Textelement als separate Nachricht gesendet, wie Pizzas und Pasta in den Status ShowMenu und OrderPizza von CrcPizzaBot. Wenn Sie diesen Wert auf false setzen, wird eine einzelne Textnachricht gesendet, in der jedes Textelement in einer neuen Zeile beginnt.
|
Nr. | |
visible |
Bestimmt, wie Textnachrichten pro Benutzereingabe und Kanal angezeigt werden. Siehe Die sichtbare Eigenschaft. | Nr. | |
actions |
Die Postback-Aktion. Für die Nur-Text-Unterstützung können Sie Schlüsselwörter definieren. | Nr. |
showMenu
von CrcPizzaBot:
Da er postback
als Aktion benennt, kann der Skill ein unerwartetes Benutzerverhalten verarbeiten, wie das Auswählen eines Elements aus einer älteren Nachricht statt eines aus der letzten Nachricht.metadata:
responseItems:
- type: "text"
text: "Hello ${profile.firstName}, this is our menu today:"
footerText: "${(textOnly.value=='true')?then('Enter number to make your choice','')}"
name: "hello"
separateBubbles: true
actions:
- label: "Pizzas"
type: "postback"
keyword: "${numberKeywords.value[0].keywords}"
payload:
action: "pizza"
name: "Pizzas"
- label: "Pastas"
keyword: "${numberKeywords.value[1].keywords}"
type: "postback"
payload:
action: "pasta"
name: "Pastas"
Das Kartenantwortelement
Im Folgenden werden die Eigenschaften für Kartenantwortelemente in gemeinsamen Antwortkomponenten aufgeführt.
Eigenschaft | Beschreibung | Erforderlich? | |
---|---|---|---|
cardLayout |
Das Kartenlayout: horizontal (Standard) und vertical .
|
Ja | |
headerText |
Headertext. Beispiel: headerText: "<#if cardsRangeStart?number == 0>Diese Pizzas haben wir heute für Sie im Angebot:<#else>Noch mehr Pizzas für Sie:</#if>" .
|
Nr. | |
title |
Der Kartentitel | Ja | |
description |
Die Kartenbeschreibung, die als Untertitel angezeigt wird. | Nr. | |
imageUrl |
Die URL des Bildes, das unter dem Untertitel angezeigt wird. | Nr. | |
cardUrl |
Die URL einer Website. Sie wird als Hyperlink auf der Karte angezeigt, auf den Benutzer tippen können, um die Website zu öffnen. | Nr. | |
iteratorExpression |
Ein FreeMarker-Ausdruck zum Anzeigen von Werten aus einem Array, das in der durch die Eigenschaft iteratorVariable angegebenen Variable verschachtelt ist.
Beispiel: Wenn Sie den Wert der Eigenschaft |
||
iteratorVariable |
Fügt der Antwort mehrere Karten dynamisch hinzu, indem die Elemente, die in der Variablen gespeichert sind, die Sie für diese Eigenschaft angeben, iteriert werden. Obwohl Sie die Variable als Zeichenfolge definieren, enthält sie ein JSON-Array, wenn sie als Iteratorvariable verwendet wird. Sie können Eigenschaften in einem Objekt des Arrays mit einem Ausdruck wie ${iteratorVarName.propertyName} referenzieren. Beispiel: Mit einer Iteratorvariablen mit dem Namen pizzas kann die Namenseigenschaft einer Pizza mit dem Ausdruck ${pizzas.name} referenziert werden.
|
Nr. | |
rangeStart |
Wenn Sie eine iteratorVariable angegeben haben, können Sie eine Teilmenge von Karten ausschließen, indem Sie die Eigenschaft rangeStart in Verbindung mit der Eigenschaft rangeSize angeben. Sie können einen hartcodierten Wert eingeben oder einen FreeMarker-Ausdruck verwenden, der auf eine Variable verweist, die den Anfang des Bereichs enthält. Wenn Sie eine Variable rangeStart verwenden, können Sie zur nächsten Gruppe von Daten blättern, indem Sie die Variable rangeStart in der Payload einer Suchoption festlegen.
|
Nr. | |
rangeSize |
Die Anzahl der Karten, die wie mit den Eigenschaften iteratorVariable und rangeStart angegeben angezeigt werden.
|
Nr. | |
visible |
Bestimmt, wie Aktionslabels pro Benutzereingabe und Kanal angezeigt werden. Siehe Die sichtbare Eigenschaft. | Nr. |
Sie können eine Gruppe von Aktionen zuweisen, die für eine bestimmte Karte spezifisch sind, oder eine Liste von Aktionen, die am Ende der Kartenliste angehängt sind.
OrderPizza
von CrcPizzaBot enthält eine Definition eines Kartenantwortelements, wie im folgenden Snippet dargestellt:responseItems:
- type: "cards"
headerText: "<#if cardsRangeStart?number == 0>Here are our pizzas you can order today:<#else>Some more pizzas for you:</#if>"
cardLayout: "vertical"
name: "PizzaCards"
actions:
- label: "More Pizzas"
keyword: "more"
type: "postback"
skipAutoNumber: true
visible:
expression: "<#if cardsRangeStart?number+4 < pizzas.value?size && textOnly=='false'>true<#else>false</#if>"
payload:
action: "more"
variables:
cardsRangeStart: "${cardsRangeStart?number+4}"
name: "More"
cards:
- title: "${(textOnly=='true')?then((pizzas?index+1)+'. ','')}${pizzas.name}"
description: "${pizzas.description}"
imageUrl: "${pizzas.image}"
name: "PizzaCard"
iteratorVariable: "pizzas"
rangeStart: "${cardsRangeStart}"
rangeSize: "4"
actions:
- label: "Order Now"
type: "postback"
payload:
action: "order"
variables:
orderedPizza: "${pizzas.name}"
orderedPizzaImage: "${pizzas.image}"
name: "Order"
visible:
expression: "${(textOnly=='true')?then('false','true')}"
Wie werden Karten in Nur-Text-Kanälen wiedergegeben?
Gemeinsame Antwortkomponenten geben Antworten als Karten wieder. Wenn Ihr Skill in einem Nur-Text-Kanal ausgeführt wird, verhalten sich die Eigenschaften des Kartenantwortelements anders. Dabei sollten Sie einige Punkte beachten.
-
Es ist kein vertikaler oder horizontaler Bildlauf möglich (Verhalten wird mit der Option
cardLayout
festgelegt). Alle Karten werden in einer einzigen Nachrichtenblase wiedergegeben, die einen Header und einen Footer enthalten kann. Die Eigenschaftentitle
unddescription
der Karte sind durch ein Zeilenvorschubzeichen voneinander getrennt. Sie können die Titeleigenschaft der Karte nummerieren. -
Hyperlinks werden weiterhin in Nur-Text-Kanälen unterstützt, wobei die für die Eigenschaft
cardUrl
konfigurierte Adresse innerhalb der Blase zusammen mit den Eigenschaftentitle
unddescription
wiedergegeben wird, die durch ein Zeilenvorschubzeichen voneinander getrennt sind. -
Bilder, die in der Eigenschaft
imageURL
angegeben sind, werden wiedergegeben. - Der Labeltext für Aktionsschaltflächen wird angezeigt (auch wenn die Schaltflächen selbst nicht wiedergegeben werden). Benutzer können den Text eingeben. Wenn die automatische Nummerierung aktiviert ist, können sie stattdessen die entsprechende Nummer eingeben.
Karten in Nur-Text-Kanälen mit Schlüsselwörtern optimieren
Die meisten Karten umfassen eine einzelne Aktion, wie die CRCPizzaBot-Schaltfläche "Jetzt bestellen", und eine globale Aktion wie "Mehr" zum Laden der nächsten Karte im Karussell. Wie unter Wie werden Karten in Nur-Text-Kanälen wiedergegeben? dargestellt, wird das Label für jede Aktion automatisch nummeriert, wenn der Skill in SMS-/Nur-Text-Kanälen ausgeführt wird. In diesen Kanälen wird eine Gruppe von Karten in einer einzigen Blase dargestellt, die sehr lang und somit schwer zu lesen sein kann. Dies kann vermieden werden, indem Sie Postback-Aktionen konfigurieren, die nicht mit den Aktionslabels verknüpft sind, jedoch von Benutzerschlüsselwörtern ausgeführt werden (z.B. 1, 2, 3, Käse oder Mehr).
Beschreibung der Grafikkarten-text-only.png
Sie können die Aktionslabels ausblenden, wenn Ihr Skill mit diesen allgemeinen Richtlinien in Nur-Text-Kanälen ausgeführt wird.
- Definieren Sie die Eigenschaft
keywords
. Im folgenden CRCPizzaBot-Snippet definiert der für die Schlüsselworteigenschaft festgelegte Ausdruck${pizza.name}
ein Schlüsselwort für jeden Pizzanamen fest:metadata: keywords: - keyword: "${pizzas.name},<#if pizzas?index <numberKeywords.value?size>${numberKeywords.value[pizzas?index].keywords}</#if>,<#if pizzas?index==cardsRangeStart?number+[cardsRangeStart?number+3,pizzaCount.value?number-cardsRangeStart?number-1]?min>last</#if>" visible: expression: "${textOnly.value}" ...
Diese Schlüsselwörter werden nur hinzugefügt, wenn
textOnly
"true" ist.
card
-Metadaten:
- Definieren Sie die Eigenschaft
title
. Im folgenden Snippet verwendet ein Ausdruck die FreeMarker-Variableindex
, um dem Titel eine Nummer als Präfix voranzustellen (die von${pizzas.name}
zurückgegeben wird, wenn der Wert der VariablentextOnly
true
ist). Das heißt, wenn ein Kunde Mehr eingibt, lädt der Skill eine weitere Nachrichtenblase mit der nächsten Gruppe von Pizzas, die bei Nummer 5 (rangeSize: "4"
) beginnt.cards: - title: "${(textOnly=='true')?then((pizzas?index+1)+'. ','')}${pizzas.name}" description: "${pizzas.description}" imageUrl: "${pizzas.image}" name: "PizzaCard" iteratorVariable: "pizzas" rangeStart: "${cardsRangeStart}" rangeSize: "4"
- Im folgenden Snippet werden die Kartenaktionen (
"Order"
und"More Pizzas"
) nur angezeigt, wenn der Wert der VariablentextOnly
auffalse
gesetzt ist:- label: "More Pizzas" keyword: "more" type: "postback" skipAutoNumber: true visible: expression: "<#if cardsRangeStart?number+4 < pizzas.value?size && textOnly=='false'>true<#else>false</#if>"
- Fügen Sie einen Footer hinzu, der nur angezeigt wird, wenn der Wert der Variablen
textOnly
auftrue
gesetzt ist.footerText: "<#if textOnly=='true'>Enter a pizza number to make your choice<#if cardsRangeStart?number+4 < pizzas.value?size>, or type 'more' to see more pizzas</#if></#if>"
Das Anhangsantwortelement
Das attachment
-Antwortelement enthält die folgenden Eigenschaften.
Eigenschaft | Beschreibung | Erforderlich? |
---|---|---|
attachmentType |
Der Anhangstyp: image , audio , video und file .
|
Ja |
attachmentURL |
Die Download-URL oder Quelle des Anhangs. | Ja |
Confirmation
von CrcPizzaBot verwendet ein Anhangsantwortelement, um ein Bild der Bestellung anzuzeigen, das sich von dem im Menü dargestellten Element unterscheidet.metadata:
responseItems:
- text: "Thank you for your order, your ${pizzaSize} ${orderedPizza} pizza\
\ will be delivered in 30 minutes at GPS position ${location.value.latitude},${location.value.longitude}!"
type: "text"
name: "conf"
separateBubbles: true
- type: "attachment"
attachmentType: "image"
name: "image"
attachmentUrl: "${orderedPizzaImage}"
Aktion
Name | Beschreibung | Typ | Erforderlich? |
---|---|---|---|
type |
Aktionstyp | String | Ja |
label |
Der beschreibende Labeltext für die Aktion. | String | Geben Sie mindestens einen label - oder imageUrl -Wert ein.
|
imageUrl |
Das Bild für die Aktion | String | Mindestens eine einzelne Eigenschaft label oder imageUrl muss enthalten sein.
|
style |
Der Renderstil der Schaltfläche | "primary" , "danger" , "default" |
Nr. |
displayType |
Rendering für den Typ des Aktionselements (Schaltfläche, Link oder Symbol) | "button" , "link" , "icon" |
Nr. |
channelExtensions |
Die der Aktion zugeordneten kanalspezifischen Erweiterungseigenschaften | JSONObject | Nr. |
Feld
Field
-Element enthält die folgenden Eigenschaften:
Name | Beschreibung | Typ | Erforderlich? |
---|---|---|---|
displayType |
Der Feldtyp | String |
Nr. |
label |
Das Feldlabel | String |
Ja |
channelExtensions |
Eine Gruppe kanalspezifischer Erweiterungseigenschaften. | Map<ChannelType, JSONObject> |
Nr. |
marginTop |
Der vertikale Abstand zwischen diesem Feld und dem vorherigen Feld in derselben Spalte. Zulässige Werte sind none , medium (Standard) und large .
|
String |
Nr. |
labelFontSize |
Die für das Feldlabel verwendete Schriftgröße. Zulässige Werte sind small , medium (Standard) und large .
|
String |
Nr. |
labelFontWeight |
Die Schriftgewichtung für das Feldlabel. Zulässige Werte sind light , medium (Standard) und fett.
|
String |
Nr. |
displayInTable |
Ein boolescher FreeMarker-Ausdruck, mit dem Sie ein Feld bedingt in ein Tabellenlayout in ein dataSet-Antwortelement aufnehmen können. | String |
Nein (Standardwert ist true )
|
displayInForm |
Ein boolescher FreeMarker-Ausdruck, mit dem Sie ein Feld bedingt in ein Antwortelement editForm oder in ein Formularlayout in ein dataSet-Antwortelement aufnehmen können | String |
Nein (Standardwert ist true )
|
ReadOnly-Feld
Field
-Eigenschaften und verfügen über die folgenden zusätzlichen Eigenschaften:
Name | Beschreibung | Typ | Erforderlich? |
---|---|---|---|
value |
Der Feldwert | String | Ja |
width |
Der vorgeschlagene Prozentsatz der gesamten verfügbaren Breite, den das Feld in einem Tabellenlayout belegen soll. | Zahl | Nr. |
alignment |
Die Ausrichtung des Wertes innerhalb einer Tabellenspalte. Die Standardausrichtung ist right .
|
"left" , "center" und "right" |
Nr. |
In Release 23.06 von Oracle Digital Assistant werden schreibgeschützte Felder nicht in Eingabeformularen wiedergegeben, selbst wenn sie in der Nachrichten-Payload empfangen werden.
TextField
TextField
erbt alle Eigenschaften des Feldes ReadOnly. Die displayType
für dieses Element lautet "text"
. Es verfügt über die folgenden zusätzlichen Eigenschaften:
Name | Beschreibung | Typ | Erforderlich? |
---|---|---|---|
truncateAt |
Die Position, an der langwieriger Text abgeschnitten und eine Ellipse hinzugefügt wird, um anzugeben, dass der Wert abgeschnitten wurde. | Eine Ganzzahl | Nr. |
fontSize |
Die für den Wert field verwendete Schriftgröße. Zulässige Werte sind small , medium (Standard) und large .
|
Zeichenfolge | Nr. |
fontWeight |
Die Schriftgewichtung für den Wert field . Zulässige Werte sind hell, mittel (Standard) und fett.
|
Zeichenfolge | Nr. |
LinkField
LinkField
erbt alle Eigenschaften des Feldes ReadOnly. Es verfügt über die folgenden zusätzlichen Eigenschaften:
Name | Beschreibung | Typ | Erforderlich? |
---|---|---|---|
linkLabel |
Das Label für den Hyperlink | Zeichenfolge | Nr. |
imageUrl |
Die URL des Bildes, das einen Link öffnet, wenn darauf geklickt wird. | Zeichenfolge | Nr. |
MediaField
MediaField
erbt alle Eigenschaften des Feldes ReadOnly. Es verfügt über die folgenden zusätzlichen Eigenschaften:
Name | Beschreibung | Typ | Erforderlich? |
---|---|---|---|
mediaType |
Der Feldmedientyp ("video" , "audio" , "image" )
|
String |
Ja |
Formular
Name | Beschreibung | Typ | Erforderlich? |
---|---|---|---|
title |
Der Titel, der über dem Formularlayout angezeigt wird | Zeichenfolge | Nr. |
fields |
Eine Liste schreibgeschützter Felder im Formular | Liste<ReadOnlyField> | Ja |
formRows |
Eine Liste der im Formular angezeigten Zeilen. | Liste<FormRow> | |
actions |
Eine Liste mit Aktionen | Liste<Aktion> | Nr. |
selectAction |
Die Aktion, die ausgeführt wird, wenn das Formular ausgewählt wurde. Wenn Benutzer den Mauszeiger über das Formular bewegen, wird das Label der Aktion als QuickInfo angezeigt (wenn es vom Kanal unterstützt wird). | Maßnahme | Nr. |
channelExtensions |
Die der Nachricht zugeordneten kanalspezifischen Erweiterungseigenschaften | JSONObject | Nr. |
FormRow
Name | Beschreibung | Typ | Erforderlich? |
---|---|---|---|
columns |
Eine Liste der Spalten, die in der Formularzeile angezeigt werden. | <Spalte> auflisten | Ja |
selectAction |
Die Aktionen, die ausgeführt werden, wenn das Formular ausgewählt wurde. Wenn Benutzer den Mauszeiger über das Formular bewegen, wird das Label der Aktion als QuickInfo angezeigt (wenn es vom Kanal unterstützt wird). | Maßnahme | Nr. |
separator |
Wenn Sie diese Eigenschaft auf "true" setzen, wird eine Trennlinie über dem Inhalt in der Formularzeile eingefügt. | Boolean | Nr. |
channelExtensions |
Die der Nachricht zugeordneten kanalspezifischen Erweiterungseigenschaften | JSONObject | Nr. |
Spalte
Name | Beschreibung | Typ | Erforderlich? |
---|---|---|---|
fields |
Eine Liste von Feldern, die vertikal in der Spalte angezeigt werden. Diese Felder müssen ReadOnlyField -Instanzen sein, wenn die Spalte in einem FormRow innerhalb eines Form verwendet wird. Die Felder können sowohl schreibgeschützte als auch bearbeitbare Felder sein, wenn FormRow in einem EditFormMessagePayload verwendet wird.
|
Liste<Feld> | Ja |
verticalAlignment |
Die vertikale Ausrichtung der Spalte in Bezug auf die anderen Spalten in derselben Formularzeile. | Zeichenfolge | Nr. |
width |
Bestimmt die Breite der Spalte in der Formularzeile. Zulässige Werte sind auto (Standard) und stretch . Wenn dieser Wert auf stretch gesetzt ist, übernimmt die Spalte die gesamte verbleibende Breite, nachdem Spalten mit automatischer Breite gerendert wurden. Wenn mehrere Spalten auf stretch gesetzt sind, teilen sie die verbleibende Breite gleichmäßig auf.
|
Zeichenfolge | Nr. |
channelExtensions |
Die der Nachricht zugeordneten kanalspezifischen Erweiterungseigenschaften | JSONObject | Nr. |
Das editForm-Antwortelement
Name | Beschreibung | Typ | Erforderlich? |
---|---|---|---|
type |
Der Typ des Antwortelements. | editform |
Ja |
title |
Der Formulartitel | Zeichenfolge | Nr. |
items |
Eine Liste mit Feldern, die schreibgeschützt und bearbeitbar sind. | Liste<field> |
Ja |
formColumns |
Die Anzahl der Spalten, die für das Formularlayout verwendet werden. Der Standardwert ist eine Spalte. | Ganzzahl | Nr. |
actions |
Eine Liste mit kartenbezogenen Aktionen. | Liste<Action> |
Nr. |
channelExtensions |
Eine Gruppe kanalspezifischer Erweiterungseigenschaften. Beispiel: Sie möchten die maximale Höhe für Facebook Messenger festlegen. | Karte<ChannelType, JSONObject> |
Nr. |
Das Feld textInput
Ein Feld zur Eingabe von Freitext. Sie können die minimalen und maximalen Zeichen für dieses Feld festlegen und die Formatierung mit regulären Ausdrücken erzwingen.
submittedFields
(eine Zuordnung) referenziert wird.
- displayType: textInput
multiLine: true
defaultValue: "${(submittedFields.value.Description)!''}"
minLength: 10
name: Description
label: Description
placeholder: What is the expense justification?
clientErrorMessage: "Description must be 10 characters minimum, 50 characters maximum."
maxLength: 50
required: true
- displayType: textInput
multiLine: true
defaultValue: "${(submittedFields.value.Notes)!''}"
minLength: 10
name: Notes
inputStyle: email
label: Notes
placeholder: Expense notes (optional)
maxLength: 50
required: false
Dieses Snippet veranschaulicht das Sammeln der Benutzereingabe durch Referenzieren einer Mischentityvariablen.Das referenzierte Mischentityelement kann ein STRING sein.
- displayType: textInput
serverErrorMessage: "${(system.entityToResolve.value.validationErrors['Tip'])!''}"
defaultValue: "${(expense.value.Tip.originalString)!''}"
displayInForm: "${(((expense.value.TipIncluded.yesno)!'') == 'NO')?then(true, false)}"
name: Tip
label: Tip
placeholder: Enter the tip
clientErrorMessage: Tip is required
required: true
Name | Beschreibung | Typ | Erforderlich? |
---|---|---|---|
displayType |
Die Feldart. | textInput (eine Zeichenfolge)
|
Ja |
name |
Ein eindeutiger Name für das Feld im Eingabeformular. Dieser Name wird zur Laufzeit als ID verwendet. | Zeichenfolge | Ja |
label |
Das Feldlabel | Zeichenfolge | Nr. |
defaultValue |
Der Ausgangswert. Gemäß dem FreeMarker-Ausdruck in der Vorlage ist der Wert eine Zeichenfolge, wenn das referenzierte Mischentityelement (dargestellt durch myText ) keinen Wert ("${(submittedFields.value.myText)!''}" ) aufweist.
|
Zeichenfolge | Nr. |
validationRegularExpression |
Ein regulärer Ausdruck, der das Format für die Texteingabe angibt. | Zeichenfolge | Nr. |
multiline |
Wenn diese Eigenschaft auf true gesetzt wird, können Benutzer mehrere Textzeilen eingeben.
|
Boolean | Nr. |
minlength |
Die Mindestanzahl von Zeichen, die zur Validierung des Feldes erforderlich sind. Benutzer erhalten eine Fehlermeldung, wenn sie zu wenige Zeichen eingeben. | Ganzzahl | Nr. |
maxLength |
Die maximale Anzahl oder Begrenzung der Zeichen. | Ganzzahl | Nr. |
inputStyle |
Das auf dem Client durchgesetzte Format. Folgende Formate werden verwendet:
|
Zeichenfolge | Nr. |
placeholder |
Ein Hinweis, der die Verwendung dieses Feldes beschreibt. Dieser Text wird angezeigt, wenn Benutzer noch keine Eingabe eingegeben haben. Beispiel:
|
Zeichenfolge | Nr. |
autoSubmit |
Bei true wird das Formular teilweise weitergeleitet, wenn der Benutzer einen Wert für das Feld eingegeben hat. In FormSubmissionMessagePayload wird partialSubmitField auf den Namen des Feldes gesetzt, in dem autoSubmit auf true gesetzt ist. Es wird empfohlen, die automatische Weiterleitung für bedingt abhängige Felder zu konfigurieren. Beispiel: Legen Sie diese Eigenschaft fest, wenn ein Feld basierend auf dem Wert eines anderen Feldes angezeigt oder ausgeblendet werden soll oder wenn die zulässigen Werte eines Feldes vom Werteset in einem anderen Feld abhängen. Durch die automatische Weiterleitung eines Feldes, von dem andere Felder abhängen, kann das Formular sofort mit den relevanten Änderungen an den abhängigen Feldern aktualisiert werden.
|
Zeichenfolge | Nr. |
required |
Gibt an, ob für die Formularweiterleitung eine Benutzereingabe in diesem Feld erforderlich ist | boolean |
Nr. |
clientErrorMessage |
Die von einigen Clients verwendete Nachricht (MS Teams, Apple Business Messaging), wenn die clientseitige Validierung nicht erfolgreich verläuft. In Slack wird diese Eigenschaft nur verwendet, wenn das bearbeitbare Formular auf der Unterhaltungsseite angezeigt wird. Es wird nicht in einem modalen Dialog angezeigt. | Zeichenfolge | Nr. |
serverErrorMessage |
Eine Fehlermeldung, die an den Client gesendet wird, wenn die serverseitige Validierung eines Formularfeldwerts nicht erfolgreich verläuft. Wenn serverseitige Fehler dieser Art auftreten, wird empfohlen, die aktuelle Formularnachricht anstatt einer neuen Nachricht, die der Unterhaltung hinzugefügt wird zu ersetzen, indem Sie die Eigenschaft channelExtensions konfigurieren, um anzugeben, dass die letzte Formularnachricht ersetzt werden soll.
|
Zeichenfolge | Nr. |
channelExtensions |
Eine Gruppe kanalspezifischer Erweiterungseigenschaften. Beispiel: Sie möchten die maximale Höhe für Facebook Messenger festlegen. | Karte<ChannelType, JSONObject> |
Nr. |
Das Feld datePicker
maxDate
und minDate
der Komponente validieren die Benutzereingabe.
Der Slack-Kanal unterstützt diese Validierung des Mindest- und Höchstwerts nicht.
submittedFields
(eine Zuordnung) erfassen. - displayType: datePicker
defaultValue: "${(submittedFields.value.Date)!''}"
name: Date
maxDate: "${.now?iso_utc[0..9]}"
label: Expense Date
placeholder: Pick a date in the past
clientErrorMessage: Expense date is required and must be in the past.
required: true
Dieses Snippet veranschaulicht, wie Benutzereingaben erfasst werden, indem eine Mischentityvariable referenziert wird. - displayType: datePicker
serverErrorMessage: "${(system.entityToResolve.value.validationErrors['Date'])!''}"
defaultValue: "${(expense.value.Date.date?number_to_date?iso_utc)!''}"
name: Date
maxDate: "${.now?iso_utc[0..9]}"
label: Expense Date
placeholder: Pick a date in the past
clientErrorMessage: Expense date is required and must be in the past.
required: true
Name | Beschreibung | Typ | Erforderlich? |
---|---|---|---|
displayType |
Der Feldtyp | datePicker (eine Zeichenfolge)
|
Ja |
id |
Ein eindeutiger Name für das Feld im Eingabeformular. Dieser Name wird zur Laufzeit als ID verwendet. | Zeichenfolge | Ja |
label |
Ein beschreibendes Label. | Zeichenfolge | Nr. |
defaultValue |
Der Standardwert für das Feld im Format JJJJ-MM-TT. Die Vorlage definiert diese Zeichenfolge als einen Apache FreeMarker-Ausdruck, der eine leere Zeichenfolge zurückgibt, wenn das referenzierte Mischentityelement (repräsentiert durch myDate ) einen Nullwert aufweist.
|
Zeichenfolge | Nr. |
minDate |
Das erste Datum im Bereich der zulässigen Tage. Der Slack-Kanal unterstützt diese clientseitige Validierung nicht. | Zeichenfolge | Nr. |
maxDate |
Das letzte Datum im Bereich der zulässigen Tage. Die Vorlage definiert diese Zeichenfolge als den aktuellen Tag ("${.now?iso_utc[0..9]}" ). Der Slack-Kanal unterstützt diese clientseitige Validierung nicht.
|
Zeichenfolge | Nr. |
placeholder |
Eine Beschreibung der erwarteten Eingabe, die angezeigt wird, wenn der Benutzer noch kein Datum ausgewählt hat. | Zeichenfolge | Nr. |
autoSubmit |
Bei true wird das Formular teilweise weitergeleitet, wenn der Benutzer einen Wert für das Feld eingegeben hat. In FormSubmissionMessagePayload wird partialSubmitField auf den Namen des Feldes gesetzt, in dem autoSubmit auf true gesetzt ist. Es wird empfohlen, die automatische Weiterleitung für bedingt abhängige Felder zu konfigurieren. Beispiel: Legen Sie diese Eigenschaft fest, wenn ein Feld basierend auf dem Wert eines anderen Feldes angezeigt oder ausgeblendet werden soll oder wenn die zulässigen Werte eines Feldes vom Werteset in einem anderen Feld abhängen. Durch die automatische Weiterleitung eines Feldes, von dem andere Felder abhängen, kann das Formular sofort mit den relevanten Änderungen an den abhängigen Feldern aktualisiert werden.
|
Zeichenfolge | Nr. |
required |
Gibt an, ob für die Formularweiterleitung eine Benutzereingabe in diesem Feld erforderlich ist | boolean | Nr. |
clientErrorMessage |
Die von einigen Clients verwendete Nachricht (MS Teams, Apple Business Messaging), wenn die clientseitige Validierung nicht erfolgreich verläuft. In Slack wird diese Eigenschaft nur verwendet, wenn das bearbeitbare Formular auf der Unterhaltungsseite angezeigt wird. Es wird nicht in einem modalen Dialog angezeigt. | Zeichenfolge | Nr. |
serverErrorMessage |
Eine Fehlermeldung, die an den Client gesendet wird, wenn die serverseitige Validierung eines Formularfeldwerts nicht erfolgreich verläuft. Wenn serverseitige Fehler dieser Art auftreten, wird empfohlen, die aktuelle Formularnachricht anstatt einer neuen Nachricht, die der Unterhaltung hinzugefügt wird zu ersetzen, indem Sie die Eigenschaft channelExtensions konfigurieren, um anzugeben, dass die letzte Formularnachricht ersetzt werden soll.
|
Zeichenfolge | Nr. |
channelExtensions |
Eine Gruppe kanalspezifischer Erweiterungseigenschaften. Beispiel: Sie möchten die maximale Höhe für Facebook Messenger festlegen. | Karte<ChannelType, JSONObject> |
Nr. |
Das Feld timePicker
maxTime
und minTime
der Komponente validieren die Benutzereingabe.
Der Slack-Kanal unterstützt keine Validierung von Mindest- und Höchstwerten.
submittedFields
(eine Zuordnung) erfassen. - displayType: timePicker
defaultValue: "${(submittedFields.value.Time.value?time.xs?string['hh:mm a'])!''}"
maxTime: "23:00"
minTime: "13:00"
name: Time
label: Expense Time
placeholder: What time was the expense?
clientErrorMessage: This time is outside the limits.
required: true
Name | Beschreibung | Typ | Erforderlich? |
---|---|---|---|
displayType |
Der Feldtyp | timePicker (eine Zeichenfolge)
|
Ja |
id |
Ein eindeutiger Name für das Feld im Eingabeformular. Dieser Name wird zur Laufzeit als ID verwendet. | Zeichenfolge | Ja |
label |
Ein Label, das die Zeitauswahlparameter beschreibt. | Zeichenfolge | Ja |
defaultValue |
Der Anfangswert für dieses Feld im 24-Stunden-Format. Die Vorlage definiert diese Zeichenfolge als einen Apache FreeMarker-Ausdruck, der eine leere Zeichenfolge zurückgibt, wenn das referenzierte Mischentityelement (repräsentiert durch myTime ) einen Nullwert aufweist.
|
Zeichenfolge | Nr. |
minTime |
Definiert die früheste zulässige Zeit, die als HH:MM im 24-Stunden-Format eingegeben wird. Beispiel, 00:00 |
Zeichenfolge | Nr. |
maxTime |
Definiert die letzte zulässige Zeit im 24-Stunden-Format, eingegeben als HH:MM. Beispiel: 13:00 .
|
Zeichenfolge | Nr. |
placeholder |
Ein Hinweis für die Eingabe. Gemäß der Vorlage lautet das Beispiel placeholder Pick a time in the morning , das die minTime - und maxTime -Beispielwerte der Vorlage 00:00 und 12:00 widerspiegelt.
|
Zeichenfolge | Nr. |
autoSubmit |
Bei true wird das Formular teilweise weitergeleitet, wenn der Benutzer einen Wert für das Feld eingegeben hat. In FormSubmissionMessagePayload wird partialSubmitField auf den Namen des Feldes gesetzt, in dem autoSubmit auf true gesetzt ist. Es wird empfohlen, die automatische Weiterleitung für bedingt abhängige Felder zu konfigurieren. Beispiel: Legen Sie diese Eigenschaft fest, wenn ein Feld basierend auf dem Wert eines anderen Feldes angezeigt oder ausgeblendet werden soll oder wenn die zulässigen Werte eines Feldes vom Werteset in einem anderen Feld abhängen. Durch die automatische Weiterleitung eines Feldes, von dem andere Felder abhängen, kann das Formular sofort mit den relevanten Änderungen an den abhängigen Feldern aktualisiert werden.
|
Zeichenfolge | Nr. |
required |
Gibt an, ob für die Formularweiterleitung eine Benutzereingabe in diesem Feld erforderlich ist | boolean |
Nr. |
clientErrorMessage |
Die von einigen Clients verwendete Nachricht (MS Teams, Apple Business Messaging), wenn die clientseitige Validierung nicht erfolgreich verläuft. Beispiel: Time must be in the morning . In Slack wird diese Eigenschaft nur verwendet, wenn das bearbeitbare Formular auf der Unterhaltungsseite angezeigt wird. Es wird nicht in einem modalen Dialog angezeigt.
|
Zeichenfolge | Nr. |
serverErrorMessage |
Eine Fehlermeldung, die an den Client gesendet wird, wenn die serverseitige Validierung eines Formularfeldwerts nicht erfolgreich verläuft. Wenn serverseitige Fehler dieser Art auftreten, wird empfohlen, die aktuelle Formularnachricht anstatt einer neuen Nachricht, die der Unterhaltung hinzugefügt wird zu ersetzen, indem Sie die Eigenschaft channelExtensions konfigurieren, um anzugeben, dass die letzte Formularnachricht ersetzt werden soll.
|
Zeichenfolge | Nr. |
channelExtensions |
Eine Gruppe kanalspezifischer Erweiterungseigenschaften. Beispiel: Sie möchten die maximale Höhe für Facebook Messenger festlegen. | Karte<ChannelType, JSONObject> |
Nr. |
Das Feld numberInput
- displayType: numberInput
minValue: 5
serverErrorMessage: "${(amountError.value)!''}"
maxValue: 500
defaultValue: "${(submittedFields.value.Amount)!''}"
name: Amount
label: Amount
placeholder: Enter the expense amount (do not include currency symbol)
clientErrorMessage: Amount is required and must be between 5 and 500 characters
Name | Beschreibung | Typ | Erforderlich? |
---|---|---|---|
displayType |
Der Feldtyp | numberInput (eine Zeichenfolge)
|
Ja |
name |
Ein eindeutiger Name für das Feld im Eingabeformular. Dieser Name wird zur Laufzeit als ID verwendet. | Zeichenfolge | Ja |
label |
Ein beschreibendes Label für den vom Benutzer erforderlichen Datumswert. | Zeichenfolge | Nr. |
defaultValue |
Der Ausgangswert. Die Vorlage definiert diese Zeichenfolge als einen Apache FreeMarker-Ausdruck, der eine leere Zeichenfolge zurückgibt, wenn das referenzierte Mischentityelement (repräsentiert durch myNumber ) einen Nullwert aufweist. "${(submittedFields.value.myNumber)!''}" |
Zeichenfolge | Nr. |
maxvalue |
Die maximal zulässige Anzahl. Der Slack-Kanal unterstützt keine Validierung von Mindest- oder Höchstwerten. | Ganzzahl | Nr. |
minvalue |
Eine kleinste zulässige Zahl | Ganzzahl | Nr. |
placeholder |
Ein Hinweis, der die Verwendung des Feldes beschreibt. Dieser Text wird angezeigt, wenn der Benutzer noch keine Zahl eingegeben hat. | Zeichenfolge | Nr. |
autoSubmit |
Bei true wird das Formular teilweise weitergeleitet, wenn der Benutzer einen Wert für das Feld eingegeben hat. In FormSubmissionMessagePayload wird partialSubmitField auf den Namen des Feldes gesetzt, in dem autoSubmit auf true gesetzt ist. Es wird empfohlen, die automatische Weiterleitung für bedingt abhängige Felder zu konfigurieren. Beispiel: Legen Sie diese Eigenschaft fest, wenn ein Feld basierend auf dem Wert eines anderen Feldes angezeigt oder ausgeblendet werden soll oder wenn die zulässigen Werte eines Feldes vom Werteset in einem anderen Feld abhängen. Durch die automatische Weiterleitung eines Feldes, von dem andere Felder abhängen, kann das Formular sofort mit den relevanten Änderungen an den abhängigen Feldern aktualisiert werden.
|
Zeichenfolge | Nr. |
required |
Gibt an, ob für die Formularweiterleitung eine Benutzereingabe in diesem Feld erforderlich ist | boolean |
Nr. |
clientErrorMessage |
Die von einigen Clients verwendete Nachricht (MS Teams, Apple Business Messaging), wenn die clientseitige Validierung nicht erfolgreich verläuft. In Slack wird diese Eigenschaft nur verwendet, wenn das bearbeitbare Formular auf der Unterhaltungsseite angezeigt wird. Es wird nicht in einem modalen Dialog angezeigt. | Zeichenfolge | Nr. |
serverErrorMessage |
Eine Fehlermeldung, die an den Client gesendet wird, wenn die serverseitige Validierung eines Formularfeldwerts nicht erfolgreich verläuft. Wenn serverseitige Fehler dieser Art auftreten, wird empfohlen, die aktuelle Formularnachricht anstatt einer neuen Nachricht, die der Unterhaltung hinzugefügt wird zu ersetzen, indem Sie die Eigenschaft channelExtensions konfigurieren, um anzugeben, dass die letzte Formularnachricht ersetzt werden soll.
|
Zeichenfolge | Nr. |
channelExtensions |
Eine Gruppe kanalspezifischer Erweiterungseigenschaften. Beispiel: Sie möchten die maximale Höhe für Facebook Messenger festlegen. | Karte<ChannelType, JSONObject> |
Nr. |
Das Feld singleSelect
- Im Microsoft Teams-Kanal wird dieses Element immer als Liste angezeigt (auch wenn
layoutStyle
aufradioGroup
gesetzt ist), da adaptive Karten keine Optionsfelder unterstützen. - Auf dem Slack-Kanal wird dieses Element als Liste anstelle einer Optionsgruppe angezeigt, wenn mehr als zehn Optionen vorhanden sind.
submittedFields
(eine Zuordnungsvariable) - displayType: singleSelect
defaultValue: "${(submittedFields.value.Type)!''}"
name: Type
options:
- iteratorVariable: option
iteratorExpression: "${expenseType.type.enumValues?split(',')}"
label: "${option}"
value: "${option}"
layoutStyle: list
label: Expense Type
placeholder: Select expense type
clientErrorMessage: Expense type is required
required: true
Tipp:
ObwohlclientErrorMessage
ein optionales Attribut ist, wird empfohlen, es für Skills zu definieren, die auf dem Microsoft Teams-Kanal ausgeführt werden, da adaptive Karten keine Nachricht generieren, wenn die clientseitige Validierung nicht erfolgreich ist.
- autoSubmit: true
displayType: singleSelect
serverErrorMessage: "${(system.entityToResolve.value.validationErrors['Type'])!''}"
defaultValue: "${(expense.value.Type.value)!''}"
name: Type
options:
- iteratorVariable: option
iteratorExpression: "${expenseType.type.enumValues?split(',')}"
label: "${option}"
value: "${option}"
layoutStyle: list
label: Expense Type
placeholder: Select expense type
clientErrorMessage: Expense type is required
required: true
Name | Beschreibung | Typ | Erforderlich? |
---|---|---|---|
displayType |
Der Feldtyp | singleSelect (eine Zeichenfolge)
|
Ja |
name |
Ein eindeutiger Name für das Feld im Eingabeformular. Dieser Name wird zur Laufzeit als ID verwendet. | Zeichenfolge | Ja |
label |
Der Feldlabeltext, der den Inhalt der Einzelauswahlliste beschreibt. | Zeichenfolge | Ja |
defaultValue |
Die Standardauswahl. Die Vorlage definiert diesen Zeichenfolgenwert als Apache-Ausdruck FreeMarker, der eine leere Zeichenfolge zurückgibt, wenn das referenzierte Mischentityelement (dargestellt durch mySingleSelect) ) einen Nullwert aufweist. "${(submittedFields.value.mySingleSelect)!''}" |
Zeichenfolge | Nr. |
options |
Ein Array der verfügbaren Optionen. Die Vorlage definiert diese Optionen statisch mit einzelnen label - und value -Paaren mit Zeichenfolgenwerten. Sie können die Auswahloptionen jedoch dynamisch mit den Eigenschaften iteratorVariable und iteratorExpression auffüllen: In diesem Snippet werden die von den Eigenschaften type und enum zurückgegebenen Spesentypwerte mit dem integrierten split in der Liste sequenziert.
|
Liste<option> | Ja |
layoutStyle |
Wie die Einzelauswahloptionen im Formular dargestellt werden. Sie können als Liste (layoutStyle: list ) oder als Optionsfelder (layoutStyle: radioGroup ) gruppiert werden.
|
Zeichenfolge | |
placeholder |
Ein Hinweis, der die Verwendung des Feldes beschreibt. Es wird angezeigt, wenn der Benutzer die Auswahl noch nicht getroffen hat. Beispiel:
Dieser Platzhalter wird nur für die Wiedergabe des Listenlayouts angezeigt. |
Zeichenfolge | Nr. |
autoSubmit |
Bei true wird das Formular teilweise weitergeleitet, wenn der Benutzer einen Wert für das Feld eingegeben hat. In FormSubmissionMessagePayload wird partialSubmitField auf den Namen des Feldes gesetzt, in dem autoSubmit auf true gesetzt ist. Es wird empfohlen, die automatische Weiterleitung für bedingt abhängige Felder zu konfigurieren. Beispiel: Legen Sie diese Eigenschaft fest, wenn ein Feld basierend auf dem Wert eines anderen Feldes angezeigt oder ausgeblendet werden soll oder wenn die zulässigen Werte eines Feldes vom Werteset in einem anderen Feld abhängen. Durch die automatische Weiterleitung eines Feldes, von dem andere Felder abhängen, kann das Formular sofort mit den relevanten Änderungen an den abhängigen Feldern aktualisiert werden.
|
Zeichenfolge | Nr. |
required |
Gibt an, ob für die Formularweiterleitung eine Benutzereingabe in diesem Feld erforderlich ist | boolean |
Nr. |
clientErrorMessage |
Die von einigen Clients verwendete Nachricht (MS Teams, Apple Business Messaging), wenn die clientseitige Validierung nicht erfolgreich verläuft. In Slack wird diese Eigenschaft nur verwendet, wenn das bearbeitbare Formular auf der Unterhaltungsseite angezeigt wird. Es wird nicht in einem modalen Dialog angezeigt. | Zeichenfolge | Nr. |
serverErrorMessage |
Eine Fehlermeldung, die an den Client gesendet wird, wenn die serverseitige Validierung eines Formularfeldwerts nicht erfolgreich verläuft. Wenn serverseitige Fehler dieser Art auftreten, wird empfohlen, die aktuelle Formularnachricht anstatt einer neuen Nachricht, die der Unterhaltung hinzugefügt wird zu ersetzen, indem Sie die Eigenschaft channelExtensions konfigurieren, um anzugeben, dass die letzte Formularnachricht ersetzt werden soll.
|
Zeichenfolge | Nr. |
channelExtensions |
Eine Gruppe kanalspezifischer Erweiterungseigenschaften. Beispiel: Sie möchten die maximale Höhe für Facebook Messenger festlegen. | Karte<ChannelType, JSONObject> |
Nr. |
Das Feld multiSelect
- Im Microsoft Teams-Kanal wird dieses Element immer als Liste angezeigt (auch wenn
layoutStyle
aufcheckboxes
gesetzt ist), da adaptive Karten keine Kontrollkästchen für Mehrfachauswahl unterstützen. - Im Slack-Kanal wird dieses Element als Liste anstelle einer Reihe von Kontrollkästchen für Mehrfachauswahl angezeigt, wenn mehr als zehn Optionen vorhanden sind.
submittedFields
(eine Zuordnung) referenziert wird. - displayType: multiSelect
defaultValue: "${(submittedFields.value.Attendees?join(','))!''}"
name: Attendees
options:
- iteratorVariable: option
iteratorExpression: "${attendee.type.enumValues?split(',')}"
label: "${option}"
value: "${option}"
layoutStyle: list
label: Attendees
placeholder: Select one or more attendees
Dieses Snippet veranschaulicht das Referenzieren einer Mischentity zum Auffüllen der Liste. - displayType: multiSelect
serverErrorMessage: "${(system.entityToResolve.value.validationErrors['Attendees'])!''}"
displayInForm: "${(((expense.value.Type.value)!'') == 'Meal')?then(true, false)}"
defaultValue: "${(expense.value.Attendees?map(a -> a.value)?join(','))!''}"
name: Attendees
options:
- iteratorVariable: option
iteratorExpression: "${attendee.type.enumValues?split(',')}"
label: "${option}"
value: "${option}"
layoutStyle: list
label: Attendees
placeholder: Select attendees
clientErrorMessage: Attendees are required when expense type is a Meal
required: true
Name | Beschreibung | Typ | Erforderlich? |
---|---|---|---|
displayType |
Der Feldtyp | multiselect (eine Zeichenfolge)
|
Ja |
name |
Ein eindeutiger Name für das Feld im Eingabeformular. Dieser Name wird zur Laufzeit als ID verwendet. | Zeichenfolge | Ja |
label |
Das Feldlabel, das den Inhalt der Liste multiSelect beschreibt. | Zeichenfolge | Ja |
defaultValue |
Die Standardauswahl. Die Vorlage definiert diese Zeichenfolge als einen Apache FreeMarker-Ausdruck, der eine leere Zeichenfolge zurückgibt, wenn das referenzierte Mischentityelement (repräsentiert durch myMultiSelect ) einen Nullwert aufweist.
|
List<String> |
Nr. |
options |
Ein Array der verfügbaren Optionen. Die Vorlage definiert diese Optionen statisch mit einzelnen label - und value -Paaren mit Zeichenfolgenwerten. Sie können die Auswahloptionen jedoch dynamisch mit den Eigenschaften iteratorVariable und iteratorExpression auffüllen:
|
List<option> |
Ja |
placeholder |
Ein Hinweis, der die Verwendung des Feldes beschreibt. Es wird angezeigt, wenn der Benutzer keine Auswahl getroffen hat.
Dieser Platzhalter wird nur für das Listenlayout angezeigt. Er ist für Kontrollkästchenlayouts nicht verfügbar. |
Zeichenfolge | Nr. |
layoutStyle |
Das Layout für die Optionen multiSelect. Die Optionen lauten list und checkboxes .
|
Zeichenfolge | Nr. |
autoSubmit |
Bei true wird das Formular teilweise weitergeleitet, wenn der Benutzer einen Wert für das Feld eingegeben hat. In FormSubmissionMessagePayload wird partialSubmitField auf den Namen des Feldes gesetzt, in dem autoSubmit auf true gesetzt ist. Es wird empfohlen, die automatische Weiterleitung für bedingt abhängige Felder zu konfigurieren. Beispiel: Legen Sie diese Eigenschaft fest, wenn ein Feld basierend auf dem Wert eines anderen Feldes angezeigt oder ausgeblendet werden soll oder wenn die zulässigen Werte eines Feldes vom Werteset in einem anderen Feld abhängen. Durch die automatische Weiterleitung eines Feldes, von dem andere Felder abhängen, kann das Formular sofort mit den relevanten Änderungen an den abhängigen Feldern aktualisiert werden.
|
Zeichenfolge | Nr. |
required |
Gibt an, ob für die Formularweiterleitung eine Benutzereingabe in diesem Feld erforderlich ist | boolean | Nr. |
clientErrorMessage |
Die von einigen Clients verwendete Nachricht (MS Teams, Apple Business Messaging), wenn die clientseitige Validierung nicht erfolgreich verläuft. In Slack wird diese Eigenschaft nur verwendet, wenn das bearbeitbare Formular auf der Unterhaltungsseite angezeigt wird. Es wird nicht in einem modalen Dialog angezeigt. | Zeichenfolge | Nr. |
serverErrorMessage |
Eine Fehlermeldung, die an den Client gesendet wird, wenn die serverseitige Validierung eines Formularfeldwerts nicht erfolgreich verläuft. Wenn serverseitige Fehler dieser Art auftreten, wird empfohlen, die aktuelle Formularnachricht anstatt einer neuen Nachricht, die der Unterhaltung hinzugefügt wird zu ersetzen, indem Sie die Eigenschaft channelExtensions konfigurieren, um anzugeben, dass die letzte Formularnachricht ersetzt werden soll.
|
Zeichenfolge | Nr. |
channelExtensions |
Eine Gruppe kanalspezifischer Erweiterungseigenschaften. Beispiel: Sie möchten die maximale Höhe für Facebook Messenger festlegen. | Karte<ChannelType, JSONObject> |
Nr. |
Das Umschaltfeld
Im Slack-Kanal wird dieses Element als Optionsfeldpaar angezeigt.
- displayType: toggle
defaultValue: "false"
name: TipIncluded
labelOn: Tip
label: Tip Included?
valueOff: "false"
labelOff: No Tip
valueOn: "true"
Dieses Snippet veranschaulicht das Erfassen von Benutzereingaben durch Referenzieren einer Mischentityvariablen. - autoSubmit: true
displayType: toggle
defaultValue: "${(expense.value.TipIncluded.yesno)!'YES'}"
name: TipIncluded
labelOn: "Yes"
label: Tip Included?
valueOff: "NO"
labelOff: "No"
required: false
valueOn: "YES"
Name | Beschreibung | Typ | Erforderlich? |
---|---|---|---|
displayType |
Der Feldtyp | toggle (eine Zeichenfolge)
|
Ja |
id |
Ein eindeutiger Name für das Feld im Eingabeformular. Dieser Name wird zur Laufzeit als ID verwendet. | Zeichenfolge | Ja |
label |
Ein Label, das beschreibt, was beim Einschalten des Umschalters geschieht. | Zeichenfolge | Ja |
defaultValue |
Der Ausgangswert. Wenn der Umschalter zunächst aktiviert werden soll, setzen Sie ihn auf den Wert valueOn . Die Vorlage definiert diese Zeichenfolge als einen Apache FreeMarker-Ausdruck, der den Umschalter aktiviert, wenn das referenzierte Mischentityelement (repräsentiert durch myToggle ) einen Nullwert aufweist.
|
Zeichenfolge | Ja |
valueOff |
Der Wert, wenn der Umschalter ausgeschaltet ist. Der Standardwert für die Vorlage ist false (valueOff: "false" ).
|
Zeichenfolge | Ja |
valueOn |
Der Wert beim Einschalten des Umschalters. Der Standardwert in der Vorlage ist true (value On: "true" )
|
Zeichenfolge | Ja |
labelOn |
Ein Label für die Position des Umschalters | Zeichenfolge | Nr. |
labelOff |
Eine Beschriftung für die Position des Umschalters. | Zeichenfolge | Nr. |
channelExtensions |
Eine Gruppe kanalspezifischer Erweiterungseigenschaften. Beispiel: Sie möchten die maximale Höhe für Facebook Messenger festlegen. | Karte<ChannelType, JSONObject> |
Nr. |
Das Textfeld
Name | Beschreibung | Typ | Erforderlich? |
---|---|---|---|
displayType |
Die Elementart. | text (eine Zeichenfolge)
|
Ja |
name |
Ein eindeutiger Name für das Feld im Eingabeformular. Dieser Name wird zur Laufzeit als ID verwendet. | Zeichenfolge | Ja |
value |
Der Rohwert für das Feld | Zeichenfolge | Ja |
width |
Der Prozentsatz der gesamten verfügbaren Breite, den das Element in einem Tabellenlayout belegen soll. Die verbleibende Breite, beginnend bei 100 abzüglich der Elemente mit einer angegebenen Breite, wird gleichmäßig auf die Elemente ohne angegebene Breite aufgeteilt. | Ganzzahl | Nr. |
alignment |
Die Ausrichtung des Wertes mit einer Tabellenspalte. | left , center und right . Der Standardwert ist right .
|
Nr. |
channelExtensions |
Eine Gruppe kanalspezifischer Erweiterungseigenschaften. Beispiel: Sie möchten die maximale Höhe für Facebook Messenger festlegen. | Karte<ChannelType, JSONObject> |
Nr. |
Das Linkfeld
Name | Beschreibung | Typ | Erforderlich? |
---|---|---|---|
displayType |
Der Feldtyp | link (eine Zeichenfolge)
|
Ja |
name |
Ein eindeutiger Name für das Feld im Eingabeformular. Dieser Name wird zur Laufzeit als ID verwendet. | Zeichenfolge | Ja |
value |
Die URL-Adresse. Beispiel: http:www.oracle.com |
Zeichenfolge | Ja |
width |
Der Prozentsatz der gesamten verfügbaren Breite, den das Element in einem Tabellenlayout belegen soll. Die verbleibende Breite, beginnend bei 100 abzüglich der Elemente mit einer angegebenen Breite, wird gleichmäßig auf die Elemente ohne angegebene Breite aufgeteilt. | Ganzzahl | Nr. |
alignment |
Die Ausrichtung des Wertes mit einer Tabellenspalte. Zulässige Werte sind left , center und right . Der Standardwert ist right .
|
Zeichenfolge | Nr. |
channelExtensions |
Eine Gruppe kanalspezifischer Erweiterungseigenschaften. Beispiel: Sie möchten die maximale Höhe für Facebook Messenger festlegen. | Karte<ChannelType, JSONObject> |
Nr. |
EditFormMessagePayload
Name | Beschreibung | Typ | Erforderlich? |
---|---|---|---|
type |
Der Typ der Nachrichten-Payload. | editForm (eine Zeichenfolge)
|
Ja |
headerText |
Der Headertext, der über dem Formular angezeigt wird. | Zeichenfolge | Nr. |
footerText |
Der Text, der unter dem Formular und den Aktionen, aber über den globalen Aktionen angezeigt wird. | Zeichenfolge | Nr. |
title |
Der Formulartitel | Zeichenfolge | Nr. |
formRows |
Eine Liste der im Formular angezeigten Zeilen. | Liste<FormRow> |
Nr. |
fields |
Eine Liste mit Feldern, die schreibgeschützt und bearbeitbar sind. | Liste<field> |
Ja |
formColumns |
Die Anzahl der Spalten, die für das Formularlayout verwendet werden. Der Standardwert ist eine Spalte. | Ganzzahl | Nr. |
actions |
Eine Liste mit Aktionen. | Liste<Action> |
Nr. |
globalActions |
Eine Liste globaler Aktionen. Die Wiedergabe dieser Aktionen ist kanalspezifisch. Beispielsweise werden Aktionen auf Facebook von reply_actions gerendert.
|
Liste<Action> |
Nr. |
channelExtensions |
Eine Gruppe kanalspezifischer Erweiterungseigenschaften. Beispiel: Sie möchten die maximale Höhe für Facebook Messenger festlegen. | Karte<ChannelType, JSONObject> |
Nr. |
Feld automatisch weiterleiten
autoSubmit
auf true
gesetzt ist, sendet der Client eine FormSubmissionMessagePayload
mit der submittedField
-Zuordnung, die entweder die gültigen Feldwerte enthält, die bisher eingegeben wurden, oder nur den Wert des automatisch weitergeleiteten Feldes (die Implementierung ist kanalspezifisch). Alle Felder, die noch nicht festgelegt sind (unabhängig davon, ob sie erforderlich sind) oder Felder, die eine clientseitige Validierung verletzen, werden nicht in die submittedField
-Map aufgenommen. Wenn das automatisch weitergeleitete Feld selbst einen nicht gültigen Wert enthält, wird FormSubmissionMessagePayload
nicht gesendet, und stattdessen wird die Clientfehlermeldung angezeigt.
Microsoft Teams unterstützt keine automatische Weiterleitung.
SubmitFormAction
Name | Beschreibung | Typ | Erforderlich? |
---|---|---|---|
type |
Aktionstyp | submitForm (eine Zeichenfolge)
|
Ja |
postback |
Die Postback-Payload, die eine Aktionseigenschaft zum Auslösen der Navigation enthalten kann. Es wird empfohlen, dass der Wert für diese Eigenschaft aus dem Postback-Objekt FormSubmissionMessagePayload übernommen wird.
|
JSONObject | Nr. |
variable |
Der Name der Variablen, in der die weitergeleiteten Werte gespeichert werden. Diese Werte befinden sich in FormSubmissionMessagePayload .
|
Zeichenfolge | Nr. |
processingMethod |
Die Verarbeitungsanweisungen, die von der Komponente "Entitys auflösen" für die weitergeleiteten Feldwerte verwendet werden. Sie können diesen Wert auf FormSubmissionMessagePayload setzen, aber auch:
|
Zeichenfolge | Ja |
label |
Das Label für die Anzeigeaktion. | Zeichenfolge | Ja – Sie müssen mindestens einen label - oder imageUrl -Wert angeben.
|
imageUrl |
Das Bild für die Anzeigeaktion. | Zeichenfolge | Sie müssen mindestens einen label - oder imageUrl -Wert angeben.
|
channelExtensions |
Eine Gruppe kanalspezifischer Erweiterungseigenschaften. Beispiel: Sie möchten die maximale Höhe für Facebook Messenger festlegen. | Karte<ChannelType, JSONObject> |
Nr. |
FormSubmissionMessagePayload
SubmitFormAction
klickt. Sie enthält die folgenden Eigenschaften:
Name | Beschreibung | Typ | Erforderlich? |
---|---|---|---|
type |
Der Typ der Payload. | "formSubmission" (ein Zeichenfolgenwert)
|
Ja |
submittedFields |
Schlüssel/Wert-Paare der weitergeleiteten Feldwerte. Der Schlüssel ist der Name (ID) des Feldes. | Map<Zeichenfolge, Objekt> | Ja |
postback |
Die Postback-Payload, die eine Aktionseigenschaft zum Auslösen der Navigation enthalten kann. Es wird empfohlen, den Wert aus SubmitFormAction zu übernehmen. |
JSONObject | Nr. |
partialSubmitField |
Der Name des Feldes, das eine teilweise Formularweiterleitung auslöst. Felder mit aktivierter automatischer Weiterleitung (autoSubmit: true ) können eine teilweise Formularweiterleitung auslösen.
|
Zeichenfolge | Nr. |
Eingabeformular aktualisieren
autosubmit
auf true
gesetzt ist oder weil der Benutzer auf die Aktionsschaltfläche submitForm
getippt hat, kann es Situationen geben, in denen der Benutzer nicht alle erforderlichen Informationen angegeben hat oder einige Feldwerte einen ungültigen Wert enthalten. In einem solchen Fall sendet die Dialog-Engine eine neue EditFormMessagePayload
, diese Nachricht sollte jedoch die vorherige Formularnachricht ersetzen. Um den Clientkanal anzuweisen, die vorherige Formularnachricht zu ersetzen, konfigurieren Sie die Kanalerweiterungseigenschaft replaceMessage
wie folgt, anstatt der Unterhaltung eine neue Formularnachricht hinzuzufügen:- channel: ${system.channelType}
properties:
replaceMessage: "${system.message.messagePayload.type == 'formSubmission'}"
channelExtensions
-Element der allgemeinen Antwortkomponenten-Payload auf Root-Ebene hinzugefügt:...,
"channelExtensions": { "replaceMessage": "true"}
TableMessagePayload
Name | Beschreibung | Typ | Erforderlich? |
---|---|---|---|
type |
Der Typ der Nachrichten-Payload | "table" |
Ja |
headings |
Liste der Überschriften von Tabellenspalte | Liste<TableHeading> | Ja |
rows |
Liste der Tabellenzeilen | Liste<Zeile> | Ja |
forms |
Eine Liste der Formulare | Liste | Ja |
formColumns |
Die Anzahl der im Formularlayout verwendeten Spalten. Der Standard ist 1. | Ganzzahl | Ja |
paginationInfo |
Paginierungsinformationen, mit denen vorherige oder nächste Setschaltflächen wiedergegeben werden können | PaginationInfo | Ja |
Zeile
Name | Beschreibung | Typ | Erforderlich? |
---|---|---|---|
fields |
Eine Liste mit schreibgeschützten Feldern | <ReadOnly-Feld> auflisten | Ja |
selectAction |
Die Aktionen, die ausgeführt werden, wenn das Formular ausgewählt wurde. Wenn Benutzer den Mauszeiger über das Formular bewegen, wird das Label der Aktion als QuickInfo angezeigt (wenn es vom Kanal unterstützt wird). | Aktion | Nr. |
channelExtensions |
Die der Nachricht zugeordneten kanalspezifischen Erweiterungseigenschaften | Zuordnung<ChannelType>,JSONObject | Nr. |
TableHeading
Name | Beschreibung | Typ | Erforderlich? |
---|---|---|---|
label |
Das Überschriftslabel | Zeichenfolge | Ja |
width |
Die Überschrift lable Breite | Zeichenfolge | Nr. |
alignment |
Die Ausrichtung des Spaltenwertes (left , right oder center ). Standard ist right .
|
Zeichenfolge | Nr. |
channelExtensions |
Eine Gruppe kanalspezifischer Erweiterungseigenschaften. |
|
Nr. |
PaginationInfo
Stellt die Paging-Informationen für die Ergebnisse in den Objekten Table
, Form
und Table-Form
dar.
Name | Beschreibung | Typ | Erforderlich? |
---|---|---|---|
totalCount |
Die Gesamtanzahl der Ergebnisse | Zahl | Ja |
rangeSize |
Die Bereichsgröße der Ergebnisse pro Seite | Zahl | Ja |
status |
Paging-Statusnachricht | String | Ja |
currentRangeSize |
Die Größe des aktuellen Ergebnisbereichs | Zahl | Ja |
rangeStart |
Der Anfangsversatz des aktuellen Ergebnisbereichs | Zahl | Ja |
nextRangeSize |
Die Größe des nächsten Ergebnisbereichs | Zahl | Ja |
hasPrevious |
Gibt an, ob ein vorheriges Ergebnisset vorhanden ist | boolean | Ja |
hasNext |
Gibt an, ob eine nächste Ergebnismenge vorhanden ist | boolean | Ja |
tableFormMessageLayout
Name | Beschreibung | Typ | Erforderlich? |
---|---|---|---|
type |
Der Typ der Nachrichten-Payload | "tableForm" |
Ja |
headings |
Liste der Überschriften von Tabellenspalte | Liste<TableHeading> | Ja |
rows |
Liste der Tabellenzeilen | Liste<Zeile> | Ja |
forms |
Eine Liste der Formulare | Liste | Ja |
formColumns |
Die Anzahl der im Formularlayout verwendeten Spalten. Der Standard ist 1. | Ganzzahl | Ja |
showFormButtonLabel |
Das Label der Schaltfläche, mit der das Formularlayout für eine bestimmte Zeile angezeigt wird. | Zeichenfolge | Ja |
paginationInfo |
Paginierungsinformationen, mit denen vorherige oder nächste Setschaltflächen wiedergegeben werden können | PaginationInfo | Ja |
Das dataSet-Antwortelement
Mit dem Antwortelement dataSet
können Sie Tabellen und Formulare erstellen. Es enthält die folgenden Eigenschaften.
Eigenschaft | Beschreibung | Erforderlich? |
---|---|---|
layout |
Der Layoutstil für die Wiedergabe von dataSet. Zulässige Werte sind table , form und tableForm .
|
Ja |
formColumns |
Die Anzahl der Spalten, die zum Rendern von Elementen in einem Formularlayout verwendet werden. Gilt nur, wenn das Layout form oder tableForm lautet. Standardwert: 1 .
|
Nr. |
showFormButtonLabel |
Das Label, mit dem das Formulardialogfeld im Layoutstil tableForm geöffnet wird. Dies wird derzeit nur auf Slack-Kanälen verwendet. Die anderen Kanäle unterstützen die Erweiterung der Tabellenzeile, um die zusätzlichen Elemente in einem Formularlayout anzuzeigen
|
Nr. |
data |
Wird verwendet, um eine Dateneingabe in dataSet zu definieren. Siehe DataSet data Properties |
Ja |
DataSet-Dateneigenschaften
Die Eigenschaft data
des Antwortelements dataSet
enthält die folgenden Untereigenschaften.
Eigenschaft | Beschreibung | Erforderlich? |
---|---|---|
iteratorExpression |
Definiert einen Freemarker-Ausdruck, der eine Liste von Einträgen zurückgibt, die wiederholt werden sollen, sodass Sie der dataSet dynamisch mehrere Dateneinträge hinzufügen können.
|
Nr. |
iteratorVariable |
Gibt den Namen der Iteratorvariablen an, mit der Sie den aktuellen Dateneintrag in der Liste der Dateneinträge referenzieren können, die iteriert werden. | Nr. |
rangeSize |
Die Anzahl der Dateneinträge, die gleichzeitig angezeigt werden, wenn Sie die Eigenschaften iteratorExpression und iteratorVariable angegeben haben.
|
Nr. |
visible |
Bestimmt, wie Nachrichten pro Benutzereingabe und Kanal angezeigt werden. Siehe Die sichtbare Eigenschaft. | Nr. |
formTitle |
Der Titel, der für das Formulardialogfeld im Layout tableForm im Slack-Kanal verwendet wird. Der Standardwert ist View details .
|
Nr. |
items |
Die Datenelemente, die für jede Dateneingabe angezeigt werden sollen. Siehe DataSet Eigenschaften von Datenelementen. | Ja |
DataSet Datenelementeigenschaften
Eigenschaft | Beschreibung | Erforderlich? |
---|---|---|
width |
Der Prozentsatz (als Ganzzahl ausgedrückt) der gesamten verfügbaren Breite, die das Element in einem Tabellenlayout verwenden soll. Die verbleibende Breite, beginnend bei 100 abzüglich der Elemente mit einer angegebenen Breite, wird gleichmäßig auf die Elemente ohne angegebene Breite aufgeteilt. | Nr. |
alignment |
Die Ausrichtung des Wertes mit einer Tabellenspalte. Zulässige Werte sind left , center und right . Der Standardwert ist left .
|
Nr. |
displayType |
Der Anzeigetyp des Artikels. Zulässige Werte sind text und link . Der Standardwert ist text .
|
Nr. |
linkLabel |
Das Label, das für den Hyperlink verwendet wird, wenn der Anzeigetyp auf link gesetzt ist. Der Standardwert ist der Wert der Eigenschaft value des Elements.
|
Nr. |
displayInTable |
Legt fest, ob das Element als Spalte in der Tabelle angezeigt werden soll. Diese Eigenschaft ist nur im Layout tableForm anwendbar. Wird standardmäßig auf false gesetzt.
|
Nr. |
displayInForm |
Legt fest, ob das Element als Feld im Formular angezeigt werden soll. Diese Eigenschaft ist nur im Layout tableForm anwendbar. Wird standardmäßig auf false gesetzt.
|
Nr. |
label |
Das Label des Datenelements. | Ja |
value |
Der Wert des Datenelements. | Ja |
Die Variable "system.entityToResolve"
system.entityToResolve
enthält Informationen zum aktuellen Status des Entityauflösungsprozesses, wie er von den Komponenten "Entitys auflösen" und "Gemeinsame Antwort" ausgeführt wird. Sie referenzieren in der Regel die Eigenschaften dieses Variablenwerts in den Metadaten der Komponente "Gemeinsame Antwort", wenn Sie Nachrichten anpassen möchten. Sie können damit die Logik für die Fehlermeldung einer Entity oder für verschiedene Eigenschaften definieren, die zu den Komponenten "Entitys auflösen" und "Gemeinsame Antwort" gehören. Hängen Sie die folgenden Eigenschaften an, um den aktuellen Entitywert zurückzugeben:
userInput
prompt
promptCount
updatedEntities
outOfOrderMatches
disambiguationValues
enumValues
needShowMoreButton
rangeStartVar
nextRangeStart
prompt
, errorMessage
und Validierungsregeln verwenden.
Sorry,'${system.entityToResolve.value.userInput!'this'}' is not a valid pizza size.
system.entityToResolve
-Definitionen. Bei diesen Meldungen handelt es sich um eine Meldung, die für die Eigenschaft text
definiert wurde und eine Aktualisierung bestätigt, die an einem zuvor festgelegten Entitywert mit der Apache FreeMarker-Anweisung list
und der Eigenschaft updatedEntities
vorgenommen wurde. metadata:
responseItems:
- type: "text"
text: "<#list system.entityToResolve.value.updatedEntities>I have updated <#items as ent>${ent.description}<#sep> and </#items>. </#list><#list system.entityToResolve.value.outOfOrderMatches>I got <#items as ent>${ent.description}<#sep> and </#items>. </#list>"
- type: "text"
text: "${system.entityToResolve.value.prompt}"
actions:
- label: "${enumValue}"
type: "postback"
iteratorVariable: "system.entityToResolve.value.enumValues"
needShowMoreButton
, rangeStartVar
und nextRangeStart
: globalActions:
- label: "Show More"
type: "postback"
visible:
expression: "${system.entityToResolve.value.needShowMoreButton}"
payload:
action: "system.showMore"
variables:
${system.entityToResolve.value.rangeStartVar}: ${system.entityToResolve.value.nextRangeStart}
- label: "Cancel"
type: "postback"
visible:
onInvalidUserInput: true
payload:
action: "cancel"
Das Label "Mehr anzeigen" muss system.showMore
(action: "system.showMore"
) enthalten. Andernfalls funktioniert es nicht.
Validierung der Benutzernachricht
variable
festgelegt wird. Beispiel: Wenn die Eigenschaft variable
als primitiven Typ definiert ist (Zeichenfolge, boolescher Typ, Gleitkommazahl, Double), versuchen diese Komponenten, den Wert mit einem der primären Typen abzustimmen. Wenn die Eigenschaft "variable" für eine Entityvariable definiert ist, rufen diese Komponenten die NLP-Engine auf, um den Wert in eine der Entitys aufzulösen. Wenn diese Komponenten einen Wert jedoch nicht validieren können, kann Ihr Bot eine Fehlermeldung anzeigen.
Durch Referenzieren der Variablen system.invalidUserInput
können Sie der Antwort Ihres Bots eine bedingte Fehlermeldung hinzufügen. Diese Variable ist ein boolescher Wert. Sie können sie als Bedingung mit der FreeMarker-Anweisung if
verwenden, um die Nachricht nur anzuzeigen, wenn ein Benutzer einen ungültigen Wert eingibt. Andernfalls wird die Nachricht ausgeblendet. Der Status AskPizzaSize
von CrcPizzaBot, der im folgenden Snippet referenziert wird, zeigt dies, indem diese Variable als Bedingung in einer FreeMarker-Vorlage hinzugefügt wird, die von der Anweisung if
ausgewertet wird. Da sie auf true
gesetzt ist, fügt der Bot der Standardnachricht (Welche Größe möchten Sie?) eine Fehlermeldung hinzu, wenn der Benutzer einen ungültigen Wert eingibt.
metadata:
responseItems:
- type: "text"
text: "<#if system.invalidUserInput == 'true'>Invalid size, please try again.\
\ </#if>What size do you want?"
name: "What size"
separateBubbles: true