Andere Aufgaben

Im Folgenden finden Sie einige Themen zu verschiedenen anderen Aufgaben im Visual Flow Designer, darunter Benutzerauthentifizierung, automatische Nummerierung, Resource Bundles, das Erstellen von Eingabeformularen, das Erstellen benutzerdefinierter Parameter sowie das Importieren und Exportieren von Abläufen.

Benutzerautorisierung

An bestimmten Stellen in einem Ablauf können Sie die Benutzerautorisierung erzwingen.

Dazu führen Sie folgende Schritte aus:

  1. Setzen Sie für die Status, in denen Sie die Autorisierung erzwingen möchten, die Eigenschaft Autorisierung erforderlich auf True. Diese Eigenschaft befindet sich auf der Registerkarte Allgemein des Eigenschaftsinspektors des Status.

    Wenn ein Benutzer, der einen solchen Status erreicht hat, noch nicht autorisiert wurde, wird der Status "Autorisieren mit OAuth" aufgerufen, und der Ablauf ruft dann den Status auf, der die Autorisierung erfordert.

  2. Erstellen Sie eine Autorisierungskomponente, und ordnen Sie sie dem Standardübergangsereignis Benutzer autorisieren des Ablaufs zu:
    1. Wählen Sie den Ablauf und dann die Registerkarte Ablauf des Ablaufs aus.
    2. Doppelklicken Sie auf die Kachel Ereignisse für den Ablauf, um ihn einzublenden.
    3. Zeigen Sie mit der Maus auf die Kachel Benutzer autorisieren, klicken Sie auf die Schaltfläche mit den Auslassungspunkten (...) und wählen Sie Status hinzufügen aus.
    4. Wählen Sie in der Kategorie Sicherheit der Vorlagenauswahl eine Komponente aus, geben Sie einen Namen für den Status an, und klicken Sie auf Einfügen.

      Einzelheiten zu den einzelnen verfügbaren Vorlagen finden Sie unter Sicherheitsvorlagen.

    5. Konfigurieren Sie im Eigenschaftsinspektor der Komponente die Eigenschaften der Komponente, einschließlich ihrer Übergangsaktionen.

Antwortpositionen automatisch nummerieren

Mit der Funktion für die automatische Nummerierung können Sie Schaltflächen und Listenoptionen mit Zahlen in Ihren Antworten voranstellen.

Wenn Benutzer keine Tippgesten verwenden können, können sie die Postback-Aktionen der Schaltfläche trotzdem durch Eingeben einer Nummer auslösen. Diese Funktion ist besonders für Textkanäle hilfreich.

Sie konfigurieren die automatische Nummerierung auf Skillstufe.

So konfigurieren Sie die automatische Nummerierung:

  1. Wählen Sie in der linken Navigationsleiste des Skills die Option Symbol "Einstellungen" aus.
  2. Wählen Sie die Registerkarte Konfiguration aus.
  3. Legen Sie den Wert Automatische Nummerierung bei Postback-Aktionen in Taskflows aktivieren fest.

    Wenn Sie die automatische Nummerierung für alle Kanäle aktivieren möchten, setzen Sie den Wert auf true.

    Wenn Sie die automatische Nummerierung nur für bestimmte Kanäle aktivieren möchten, geben Sie einen Ausdruck an, um zu bestimmen, welche Kanäle die automatische Nummerierung erhalten. Beispiel: Um die automatische Nummerierung nur für Twilio-Kanäle zu aktivieren, geben Sie Folgendes ein:

    ${(system.channelType=='twilio')?then('true','false')}

Anzahl der Eingabeaufforderungen einschränken

Sie können sicherstellen, dass Benutzer nicht an einem Schritt in einem Dialogablauf hängen bleiben, indem Sie diese Komponente so konfigurieren, dass sie die Anzahl der Wiederholungen eines Prompts für den Benutzer begrenzt.

Die Eigenschaft maxPrompts schränkt ein, wie oft Common Response-Komponenten den Benutzer anfordern können, wenn sie den Eingabewert mit keinem der Werte abgleichen können, die für die Entity oder den Eingabetyp definiert sind, auf den die Eigenschaft variable verweist. Mit dieser Eigenschaft können Sie verhindern, dass sich der Dialog im Kreis dreht, wenn Benutzer wiederholt ungültige Werte eingeben. Sie können die maximale Anzahl von Prompts mit einer Ganzzahl festlegen. Die Unterhaltung geht in den nächsten Status über, wenn der Benutzer einen gültigen Wert eingibt, bevor dieser Grenzwert erreicht wird. Andernfalls geht die Unterhaltung in den Status über, der in der Aktion cancel definiert ist.

Resource Bundles und Visual Flow Designer

Mit Resource Bundles können Sie alle für Benutzer sichtbaren Zeichenfolgen speichern, die Sie dem Dialogablauf hinzufügen.

Sie referenzieren Resource Bundle-Nachrichtenschlüssel über die Variable rb. Eine Referenz auf eine einfache Resource Bundle-Nachricht wird in einer der folgenden beiden Formen verwendet:

  • ${skill.system.rb.RB_ENTRY_NAME}
  • ${rb.RB_ENTRY_NAME}
Weitere Informationen zu Resource Bundles, einschließlich Informationen zum Erstellen der Resource-Bundle-Einträge selbst und zum Verwenden komplexer Nachrichtenformate, finden Sie unter Resource Bundles for Skills.

Tipp:

Mit der automatischen Vervollständigung können Sie die Resource Bundles auswählen, die in Apache FreeMarker-Ausdrücken referenziert werden.

Resource-Bundle-Eintrag ändern

  1. Klicken Sie im Skill auf Symbol für Resource Bundles, um das Ressourcen-Bundle zu öffnen.
  2. Wählen Sie die Registerkarte Konfiguration aus.
  3. Navigieren Sie mit dem Feld Filter zu dem Eintrag, den Sie aktualisieren möchten.
  4. Zeigen Sie mit der Maus auf den Wert für den Schlüssel, und wählen Sie das Symbol Bearbeiten, das angezeigt wird.
  5. Geben Sie im Feld Text die aktualisierte Nachricht ein.
  6. Klicken Sie auf Eintrag aktualisieren.

Benutzer-Eingabeformularnachrichten

In Dialogabläufen können Sie auch Eingabeformulare erstellen.

Manchmal ist ein Eingabeformular die schnellste und am wenigsten fehleranfällige Möglichkeit, Benutzerinformationen zu sammeln. Anstatt Benutzer einer Reihe von Fragen zu unterwerfen, kann Ihr Skill Benutzer bei der Bereitstellung gültiger Eingaben unterstützen, indem er ihnen Formulare sendet, die Eingabeelemente wie Texteingabefelder, Zeit- und Datumsauswahl und Umschalter enthalten.
Beschreibung von editable-form-example.png folgt
Beschreibung der Abbildung editable-form-example.png

Überall dort, wo der Unterhaltungsablauf eine Nachricht mit einem Eingabeformular aufruft, können Sie eine Nachricht einfügen, indem Sie den Status inputForm hinzufügen:
  1. Wählen Sie im Dialogfeld "Status hinzufügen" Benutzer-Messaging > Tabellen und Formulare erstellen. Wählen Sie dann Eingabeformular erstellen aus.
  2. Um das Layout, die Aktionen und die bearbeitbaren und schreibgeschützten Felder des Formulars zu erstellen, klicken Sie zuerst auf Edit Response Items, und bearbeiten Sie dann die Metadatenvorlage ResponseItems. In diesem Fall gilt die Vorlage für das Antwortelement editForm.
    responseItems:
      - type: editForm
        title: Input Form
        formColumns: 2
        items:
          - autoSubmit: false
            displayType: textInput
            defaultValue: "${(submittedFields.value.myText)!''}"
            multiLine: false
            minLength: 5
            name: myText
            label: Text
            placeholder: Enter free text
            clientErrorMessage: Field is required and must be between 5 and 50 characters
            required: true
            maxLength: 50
          - validationRegularExpression: "^[a-zA-Z\\s]*$"
            autoSubmit: false
            displayType: textInput
            defaultValue: "${(submittedFields.value.myTextArea)!''}"
            multiLine: true
            name: myTextArea
            label: Text Area
            placeholder: Enter free text
            clientErrorMessage: Numbers are not allowed
          - autoSubmit: false
            displayType: datePicker
            minDate: "1970-01-01"
            defaultValue: "${(submittedFields.value.myDate)!''}"
            name: myDate
            maxDate: "${.now?iso_utc[0..9]}"
            label: Date
            placeholder: Pick a date in the past
            clientErrorMessage: Date is required and must be in the past.
            required: true
          - autoSubmit: false
            maxTime: "12:00"
            displayType: timePicker
            minTime: "00:00"
            defaultValue: "${(submittedFields.value.myTime)!''}"
            name: myTime
            label: Time
            placeholder: Pick a time in the morning
            clientErrorMessage: Time must be in the morning.
            required: false
          - autoSubmit: false
            displayType: numberInput
            minValue: 5
            maxValue: 500
            defaultValue: "${(submittedFields.value.myNumber)!''}"
            name: myNumber
            label: Number
            placeholder: Enter a number between 5 and 500
            clientErrorMessage: Number is required and must be between 5 and 500.
            required: true
          - autoSubmit: false
            displayType: singleSelect
            defaultValue: "${(submittedFields.value.mySingleSelect)!''}"
            name: mySingleSelect
            options:
              - label: Label 1
                value: Value 1
              - label: Label 2
                value: Value 2
              - label: Label 3
                value: Value 3
            layoutStyle: list
            label: Single Select
            clientErrorMessage: Field is required
            required: true
          - autoSubmit: false
            displayType: multiSelect
            defaultValue: "${(submittedFields.value.myMultiSelect?join(','))!''}"
            name: myMultiSelect
            options:
              - label: Label 1
                value: Value 1
              - label: Label 2
                value: Value 2
              - label: Label 3
                value: Value 3
            layoutStyle: list
            label: Multi Select
            clientErrorMessage: Field is required
            required: true
          - displayType: toggle
            defaultValue: "${(submittedFields.value.myToggle)!'true'}"
            name: myToggle
            labelOn: "Yes"
            label: Toggle
            valueOff: "false"
            labelOff: "No"
            valueOn: "true"
        actions:
          - label: Submit
            type: submitForm
        channelCustomProperties:
          - channel: "${system.channelType}"
            properties:
              replaceMessage: "${system.message.messagePayload.type == 'formSubmission'}"

Metadatenvorlage "Formulare bearbeiten"

Im Folgenden finden Sie einige Hinweise zur Vorlage für den Antworttyp editForm:
  • Die für die Objekte items, actions und channelCustomProperties angegebenen Eigenschaften sind alle spezifisch für die Objekte editFormMessagePayload. Diese Payload enthält unter anderem Beschreibungen des Gesamtlayouts der vom Benutzer empfangenen Eingabeformularnachricht, der Formularfelder (schreibgeschützt und bearbeitbar) und kanalspezifischer Anpassungen für plattformspezifisches UI-Rendering und Formularweiterleitungsverhalten.
  • Für jedes Element und innerhalb des Knotens actions referenziert die Vorlage eine Variable auf Ablaufebene mit dem Namen submittedFields, in der die Benutzereingabe gespeichert ist. Dies ist eine Zuordnungsvariable, die generiert wird, wenn Sie dem Dialogablauf den Status inputForm hinzufügen.
    Hinweis

    Je nach Ihren Anforderungen können Sie anstelle der Variablen submittedFields einzelne Variablen oder eine Mischentityvariable referenzieren.
  • items:
    • Während die Vorlage Eigenschaften für die bearbeitbaren Felder bereitstellt (Einzel- und Mehrfachauswahlfelder, Datums- und Uhrzeitauswahl, Eingabefeld für Zahlen und Umschalter), können Sie auch Elemente für den Text hinzufügen und schreibgeschützte Elemente verknüpfen.
    • Die bearbeitbaren Felder verwenden eine Gruppe gemeinsamer Eigenschaften, einschließlich der Eigenschaft autoSubmit. Dies ist eine optionale Eigenschaft. Wenn Sie sie jedoch aktivieren (autoSubmit: true), kann das Formular einen Feldwert weiterleiten, bevor der Benutzer das gesamte Formular weitergeleitet hat. Sie können diese Eigenschaft für voneinander abhängige Felder in Ihrem Formular verwenden. Beispiel: Sie können diese Eigenschaft festlegen, wenn die Anzeige eines Feldes von einem in ein anderes Feld eingegebenen Wert abhängt oder wenn ein WerteSet für ein Feld die in einem anderen Feld zulässige Eingabe einschränkt.
      Hinweis

      Microsoft Teams unterstützt autoSubmit nicht.
    • Die optionale Eigenschaft clientErrorMessage legt die feldspezifische Fehlermeldung fest, die angezeigt wird, wenn eine begrenzte clientseitige Validierung vorhanden ist oder wenn die clientseitige Validierung nicht erfolgreich ist. Beispiel: Bei Nachrichten, die über den Slack-Kanal gesendet werden, wird diese Eigenschaft nur unterstützt, wenn sich das Formular auf der Unterhaltungsseite befindet. Wird nicht angezeigt, wenn sich die Formularnachricht in einem modalen Dialogfeld befindet.
      Hinweis

      Diese Eigenschaft ist hauptsächlich für adaptive Microsoft Teams-Karten gedacht. Dadurch können Sie nur eine einzige Nachricht für alle Fehler auf Feldebene verwenden.
  • actions: In diesem Knoten beschreibt die Vorlage die Formularweiterleitungsaktionen, mit denen die Benutzereingabe über FormSubmissionMessagePayload weitergeleitet wird.
  • channelCustomProperties: Um eine Multimode-Erfahrung zu unterstützen, bei der der Benutzer vor dem Weiterleiten des Formulars Text- und Sprachkombinationen zum Ausfüllen der Formularfelder verwenden kann, enthält die Vorlage die Eigenschaftskonfiguration replaceMessage, die den Clientkanal anweist, die aktuelle Eingabeformularnachricht zu aktualisieren, anstatt der Unterhaltung ein neues Eingabeformular hinzuzufügen.

Eingabeformularfelder

Element Beispiel Beispielcode: Zuordnungsvariable (submittedFields) Bearbeitbar?
Einfachauswahlliste Ermöglicht es Benutzern, ein Element aus einer vordefinierten Liste zu suchen und auszuwählen. Sie können diese Komponente als eine Liste von Optionen formatieren, die Benutzer abfragen und auswählen können.

 - 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
Ja
Mehrfachauswahlliste Eine Liste, die mehrere Auswahlmöglichkeiten unterstützt. Sie können diese Komponente als Auswahlliste formatieren, die Benutzer filtern und auswählen können, oder als eine Reihe von Kontrollkästchen.

 - 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 attendees
Ja
Zeitauswahl Ermöglicht es dem Benutzer, einen Zeitwert innerhalb eines bestimmten Bereichs einzugeben. Die Eigenschaften maxTime und minTime der Komponente validieren die Benutzereingabe.

      - 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
Ja
Datumsauswahl Ein Feld mit einem Dropdown-Kalender, mit dem Benutzer einen Tag, einen Monat und ein Jahr auswählen können. Die Eigenschaften maxDate und minDate der Komponente validieren die Benutzereingabe.

 - 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
Ja
Zahleneingabe Ermöglicht dem Benutzer die Eingabe eines Zahlenwerts. Die Eigenschaften minValue und maxValue validieren die Benutzereingabe.

     - displayType: numberInput
        minValue: 5
        serverErrorMessage: "${(amountError.value)!''}"
        maxValue: 500
        defaultValue: "${(submittedFields.value.Amount)!''}"
        name: Amount
        label: Amount
        placeholder: Enter expense amount
        clientErrorMessage: Amount is required and must be between 5 and 500.
        required: true
Ja
Texteingabe Ermöglicht dem Benutzer die Eingabe eines Texts.

      - 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
Ja
Ein-/ausschalten Stellt einen Umschalter (oder je nach Kanal eine Optionsfeldgruppierung) für zwei Optionen bereit.

      - displayType: toggle
        defaultValue: "false"
        name: TipIncluded
        labelOn: Tip
        label: Tip Included?
        valueOff: "false"
        labelOff: No Tip
        valueOn: "true"
Ja
Text Schreibgeschützter Inline-Text

      - displayType: text
        alignment: left
        value: Read our expenses policy.
Nein – schreibgeschützt
Link Ein Inline-Link

      - displayType: link
        alignment: left
        value: "http:www.oracle.com"
Nein – schreibgeschützt
Aktion Einer der Aktionstypen (Link, Schaltfläche oder Symbol). Im folgenden Snippet wird ein Aktionslink wiedergegeben, wenn der Wert für die Variable selectedOrder mit dem Wert der Zeile item umschlungen wird.
- displayType: action
  action:
    displayType: link
    payload:
      variables:
        selectedOrder: "${item.SO_CUSTOMER_PO_NUMBER}"
        action: order
       label: "${item.SO_CUSTOMER_PO_NUMBER}"
       type: postback
       label: CUSTOMER PO NUMBER
Nein – schreibgeschützt

Benutzerdefinierte Parameter

In Ihrem Skill können Sie benutzerdefinierte Parameter definieren, die Sie in Dialogabläufen referenzieren können.

Nachdem Sie den Skill veröffentlicht haben, können Sie die Werte dieser Parameter ändern (Sie können aber keine anderen Parameterdetails ändern bzw. Parameter hinzufügen oder löschen).

Benutzerdefinierte Parameter werden als skill.system.config-Variablen zur Verwendung in der Dialogablaufdefinition angegeben. Beispiel: Auf einen benutzerdefinierten Parameter mit dem Namen faHostName wird mit dem folgenden Ausdruck zugegriffen:

${skill.system.config.faHostName}

Wenn Sie den Wert für den Parameter eines Skills in dem digitalen Assistenten festlegen möchten, dem Sie den Skill hinzufügen, stellen Sie dem Parameternamen da. als Präfix voran (einschließlich dem Punkt (.)). Beispiel: Sie können da.faHostName als Namen des Parameters für einen Hostnamen verwenden.

Mit dieser Methode können Sie Parameter mit demselben Namen in mehreren Skills festlegen, alle diese Skills einem digitalen Assistenten hinzufügen und dann die Werte für die gemeinsamen Parameter an einer Stelle im digitalen Assistenten festlegen.

Um auf einen Parameter von einer benutzerdefinierten Komponente zuzugreifen, definieren Sie einen Eingabeparameter in der benutzerdefinierten Komponente, und übergeben Sie denn den Wert des Skillparameters an diesen.

Hinweis

Sie können die Werte benutzerdefinierter Parameter (oder anderer Variablen mit dem Präfix skill.system.config) nicht nicht direkt im Dialogfeld oder in benutzerdefinierten Komponenten festlegen.

Benutzerdefinierte Parameter erstellen

  1. Klicken Sie auf Symbol zum Öffnen des Seitenmenüs, um das Seitenmenü zu öffnen, wählen Sie Entwicklung > Skills und dann Ihren Skill aus.
  2. Klicken Sie in der linken Navigationsleiste des Skills auf Symbol "Einstellungen".
  3. Klicken Sie auf die Registerkarte Konfiguration.
  4. Klicken Sie auf Neuer Parameter, und füllen Sie die Felder des angezeigten Dialogfeldes aus.

Sichere Parameter

Wenn Ihr Skill auf einem Parameter basiert, dessen Wert nicht für andere Benutzer sichtbar sein soll, die diesen Skill entwickeln, versionieren oder klonen, können Sie diesen Parameter als sicheren Parameter festlegen. Jeder, der dann zur Seite "Einstellungen" im Skill navigiert, kann den Namen des Parameters, nicht jedoch den Wert sehen.

Wenn Sie den Skill exportieren, wird der Wert des Parameters nicht in den Export aufgenommen.

So erstellen Sie einen sicheren Parameter:

  • Wählen Sie im Dialogfeld "Parameter erstellen" in der Dropdown-Liste Typ die Option Sicher aus.

Wert für einen benutzerdefinierten Parameter in einem veröffentlichten Skill ändern

Nachdem Sie einen Skill veröffentlicht haben, können Sie keine benutzerdefinierten Parameter hinzufügen oder löschen, können ihre Werte jedoch ändern. Führen Sie hierzu die folgenden Schritte aus:

  1. Klicken Sie auf Symbol zum Öffnen des Seitenmenüs, um das Seitenmenü zu öffnen, wählen Sie Entwicklung > Skills und dann Ihren Skill aus.

  2. Klicken Sie in der linken Navigationsleiste des Skills auf Symbol "Einstellungen".

  3. Wählen Sie die Registerkarte Konfiguration aus.
  4. Wählen Sie den Parameter aus, klicken Sie auf Bearbeiten, und geben Sie den aktualisierten Wert ein.

Hinweis

Wenn Sie einem digitalen Assistenten einen Skill mit einem Parameter mit dem Präfix da. hinzugefügt haben und Sie den vom digitalen Assistenten verwendeten Wert aktualisieren möchten, müssen Sie diesen Vorgang im digitalen Assistenten ausführen. Ansonsten verwendet der digitale Assistent weiterhin den Wert, den der Parameter zu dem Zeitpunkt enthielt, als er dem digitalen Assistenten hinzugefügt wurde. Eine Änderung des Wertes im Skill wirkt sich nur auf den Skill aus, wenn er als Standalone-Skill verwendet wird oder wenn er später zu einem anderen digitalen Assistenten hinzugefügt wird.

Wert für einen Parameter im digitalen Assistenten festlegen

Nachdem ein Skill veröffentlicht und zu einem digitalen Assistenten hinzugefügt wurde, können Sie den Wert im digitalen Assistenten für alle Parameter mit dem Präfix da. (einschließlich des Punkts (.)) festlegen.

Wenn ein da.-Parameter mit demselben Namen in mehreren Skills im digitalen Assistenten definiert ist, wird der Wert dieses Parameters von den Skills im digitalen Assistenten gemeinsam verwendet.

So legen Sie den Wert für einen Parameter in einem digitalen Assistenten fest:

  1. Klicken Sie auf Symbol zum Öffnen des Seitenmenüs, um das Seitenmenü zu öffnen, wählen Sie Entwicklung > Digitale Assistenten und anschließend Ihren digitalen Assistenten aus.
  2. Klicken Sie in der linken Navigationsleiste des digitalen Assistenten auf Symbol "Skills".
  3. Wählen Sie einen der Skills aus, die den Parameter verwenden.
  4. Scrollen Sie nach unten zum Abschnitt "Parameter" der Seite, und geben Sie einen Wert für den Parameter ein.

    Der aktualisierte Parameterwert wird auf alle Skills angewendet, die den Parameter verwenden.

Import- und Exportabläufe

Sie können Dialogabläufe im visuellen Modus mit den Optionen Importablauf und Ausgewählten Ablauf exportieren im Menü Weitere Informationen importieren und exportieren.



Flüsse exportieren

Sie können einen Ablauf exportieren, indem Sie ihn zuerst auswählen und dann auf Mehr > Ausgewählten Ablauf exportieren klicken. Der exportierte Dialogablauf ist eine YAML-Darstellung des Dialogfelds. Dieses Dokument ist nach dem Skill und Ablauf benannt und wird mit -Flow (Beispiel: PizzaSkill-pizza.ans.proc.veggiePizza-Flow.yaml) angehängt. Die YAML-Syntax entspricht dem visuellen Dialogmodus, nicht dem OBotML für Skills, die im YAML-Modus erstellt wurden. Wenn Sie einen Ablauf exportieren, exportieren Sie nur dieses Dokument. Es wird nicht von einer der folgenden Abhängigkeiten begleitet, auch wenn sie referenziert werden.
  • Der Sicherheitsdienst, der von den Statusangaben der Sicherheitskomponenten referenziert wird.
  • Services für verschiedene Serviceintegrationszustände
  • Übersetzungsservices
  • Intents, Entitys, Resource Bundles
  • Referenzierte Taskflows
Beim Import wird der Ablauf ordnungsgemäß ausgeführt, wenn der Skill bereits über die referenzierten Artefakte verfügt. Andernfalls löst der Import Validierungsfehler aus.
Hinweis

Sie können jeden Ablauf mit Ausnahme des Hauptflusses exportieren.
Beispiel für die YAML-Darstellung des visuellen Dialogmodus:
name: "WineryChats"
trackingId: "D6BFE43B-D774-412A-91F6-4582D04B3375"
type: "task"
version: "2.0"
interface:
  returnActions:
  - "done"
variables:
- name: "redWineCard"
  type: "map"
  system: false
defaultTransitions:
  actions:
    system.outOfOrderMessage: "outOfOrderMessageHandler"
    system.startTaskFlow: "buildRedWineMenu"
states:
  buildRedWineMenu:
    component: "System.SetVariable"
    properties:
      variable: "redWineCard"
      value: 
        Cabernet Sauvignon:
          image: "https://cdn.pixabay.com/photo/2016/05/24/16/16/wine-1412603__340.jpg"
          price: 35
          description: "Flavor of dark fruits like black cherry and blackberry along with a warm spice, vanilla and black pepper"
          title: "Cabernet Sauvignon"
...

Abläufe importieren

Sie können einen Ablauf importieren, indem Sie auf Mehr > Ablauf importieren klicken und dann ein YAML-Dokument suchen und auswählen, das für den visuellen Dialogmodus formatiert ist. Bei diesen Abläufen kann es sich um die YAML-Dokumente handeln, die beim Exportieren eines Dialogablaufs generiert werden (diejenigen mit Namen, die als <skill name> - <flow name> -Flow.yaml formatiert sind), oder um die YAML-Dateien, die sich im Ordner dialogs einer exportierten ZIP-Datei für einen mit dem visuellen Dialogmodus erstellten Skill befinden. Sie können ein OBotML-Dokument nicht direkt importieren. Sie müssen zuerst den Skill migrieren.

Es gibt einige Ausnahmen von den Abläufen, die importiert werden können.
  • Sie können keinen Hauptfluss importieren (die Datei System.MainFlow.yaml im Ordner dialogs einer exportierten ZIP-Datei für einen Skill im visuellen Dialogmodus).
  • Sie können keinen Ablauf importieren, der bereits im Skill oder in Ihrer Instanz vorhanden ist. Wenn der Ablauf bereits vorhanden ist, können Sie das YAML-Dokument hochladen, indem Sie den Wert für den Knoten name ändern.
    name: "WineryChats"
    trackingId: "D6BFE43B-D774-412A-91F6-4582D04B3375"
    type: "task"
    ...
    Sie können den Ablauf jedoch stattdessen duplizieren (Menü > Ausgewählten Ablauf duplizieren), anstatt die YAML zu bearbeiten.
Sie können einen Ablauf auch dann erfolgreich importieren, wenn er Artefakte wie Entitys, Intents, Resource Bundles oder Backend-Services referenziert, die nicht im Skill vorhanden sind. Diese Importe führen jedoch zu ValidierungsfehlernDieses Bild zeigt das Warnsymbol.. Um eine Liste der Validierungsfehler abzurufen, klicken Sie in den Fehlermeldungen, die nach dem Import angezeigt werden, auf Validierungsergebnisse anzeigen.
Dieses Bild zeigt die Fehlermeldung "Importflussvalidierung".