Ausdrücke für Variablenwerte

Sie können FreeMarker-Ausdrücke für Werte von Variablen in Ihren Dialogabläufen verwenden.

Praktische Ausdrücke

Im Folgenden finden Sie einige allgemeine Ausdrücke, die Sie in Ihren Abläufen verwenden können.

Tipp:

Die automatische Vervollständigung führt Sie durch das Schreiben dieser (und anderer) Apache FreeMarker-Ausdrücke.
Vorgang Freemarker-Ausdruck Ergebnisart
Name des übergeordneten Ablaufs abrufen ${system.parentFlow} Zeichenfolge
Ereignis-Payload abrufen ${skill.system.event.value.EVENT_NAME} JSON-Objekt
Auf NLP-Ergebnis zugreifen ${skill.system.nlpresult.value} JSON-Objekt
Auf Skillumfangvariable zugreifen ${skill.VAR_NAME}  
Zugriffsflussbereich variabel ${VAR_NAME}  
Eingabeparameter für Zugriffsablauf ${INPUT_PARAM_NAME}  
Benutzergeltungsbereichsvariable aufrufen ${user.VAR_NAME}  
Zugriffsprofilumfangvariable ${profile.VAR_NAME}  
Antwort-Intent-Antwort abrufen ${skill.system.event.value.intent.answer}

Hinweis: Sie können auch ${skill.system.event.value.answerIntent.answer} verwenden.

 
Intent-Namen abrufen

${skill.system.event.value.intent.intentName}

Zeichenfolge
Fehlermeldung abrufen ${skill.system.event.value.dialogError.errorMessage} Zeichenfolge
Zugriff auf Resource Bundle-Eintrag ${skill.system.rb.RB_ENTRY_NAME} Resource Bundle
Zugriff auf den Wert eines benutzerdefinierten Parameters ${skill.system.config.CUSTOM_PARAMETER_NAME} Zeichenfolge

Weitere Informationen zu FreeMarker in Ihren Komponenten finden Sie unter Apache FreeMarker Template Language Syntax.

Apache FreeMarker Template Language-Syntax

Mit der Apache FreeMarker Template Language (FTL) können Sie auf Variablenwerte zugreifen, Antwortelemente anzeigen oder ausblenden, Schlüsselwörter in einer Benutzernachricht suchen, eine Werteliste ausdrucken oder Arrays anzeigen, die nach einem bestimmten Datenattribut sortiert sind. Die Basissyntax für diese Wertausdrücke lautet ${...}. Sie können FTL in die Eigenschaftsdefinitionen für verschiedene Dialogablaufkomponenten aufnehmen.
Hinweis

Sie können die Ausdrücke auch mit der if-Anweisung (<#if>...</#if>) definieren.
Gehen Sie folgendermaßen vor... ... Vorgehensweise
Werte aus Variablen lesen Fügen Sie die Eigenschaft value mit der Punktnotation hinzu:
${VAR_NAME.value}
Beispiel:
${MyEmail.value}
Werte aus von komplexen Entitys definierten Variablen lesen Verwenden Sie die Punktnotation, um eine zusätzliche Eigenschaft hinzuzufügen:
${VAR_NAME.value.property}
Beispiel:
${MyMoney.value.totalCurrency}
Wenn Sie einen Ausdruck wie ${MyMoney} in einer System.Output-Komponente in einem Skill mit einem YAML-basierten Dialogablauf verwenden, werden alle Eigenschaften des referenzierten JSON-Währungsobjekts angezeigt.
Für eine Wertelistenentity definiertes Werteset zurückgeben Verwenden Sie die integrierten Variablen type und enumValues in der folgenden Syntax:
${VAR_NAME.type.enumValues}
Integrierte Vorgänge für Zeichenfolgen, Arrays (Sequenzen), Zahlen und Datumsangaben verwenden Siehe Apache FreeMarker-Referenz. Fügen Sie hinter der Eigenschaft value ein Fragezeichen (?) und den Vorgangsnamen ein:
${VAR_NAME.value?ftl_function}
  • Zeichenfolgevorgänge:
    ${VAR_NAME.value?lower_case}
  • Arrayvorgänge:
    ${VAR_NAME.value?size?number}
  • Zahlenvorgänge:
    ${VAR_NAME.value?round}
  • Zeit- und Datumsvorgänge:
    ${VAR_NAME.value.date?long?number_to_date?string.short}
FTL-Ausdrücke verketten Verketten Sie die Vorgänge mit einem Fragezeichen (?):
${VAR_NAME.value?ftl_function1?ftl_function2}

Entitywerte in mehrsprachigen Skills referenzieren

Wenn Sie mehrsprachige Skills nutzen, müssen Sie sicherstellen, dass für die Komponente, mit der Ihre Entitys aufgelöst werden, Vollständige Entityübereinstimmungen verwenden auf true gesetzt ist. So können Sie die folgenden Ausdrücke schreiben:

  • Ausdrücke, die den Entitywert in der Sprache der Unterhaltung referenzieren. Mit solchen Ausdrücken können Sie beispielsweise die Entitywerte für Benutzer in Schaltflächen, Bestätigungsnachrichten usw. anzeigen.

    Bei diesen Ausdrücken hängen Sie value an, um den Wert in der Sprache der Unterhaltung abzurufen. Beispiel: Wenn Sie die Dialogablaufvariable pizza definiert haben und den Entitywert PizzaSize in einem Prompt referenzieren möchten, verwenden Sie Folgendes im Ausdruck: pizza.value.PizzaSize.value (anstatt nur pizza.value.PizzaSize).

  • Ausdrücke, die den Wert der Entity in der primären Sprache referenzieren. Der primäre Sprachwert dient als Schlüssel für die entsprechenden Werte in allen Sprachen der Entity. Sie können diesen Wert für Geschäftslogikzwecke referenzieren, ohne sich Gedanken um die Sprache der Unterhaltung machen zu müssen.

    Für diese Ausdrücke hängen Sie primaryLanguageValue an (z.B. pizza.value.PizzaSize.primaryLanguageValue).