Expressions pour les valeurs de variable

Vous pouvez utiliser des expressions FreeMarker pour les valeurs des variables dans vos flux de dialogue.

Expressions pratiques

Voici quelques expressions courantes que vous pouvez utiliser dans vos flux.

Conseil :

La saisie semi-automatique vous guide tout au long de l'écriture de ces (et d'autres) expressions Apache FreeMarker.
Opération Expression Freemarker Type de résultat
Obtenir le nom du flux parent ${system.parentFlow} Chaîne
Obtenir la charge utile d'événement ${skill.system.event.value.EVENT_NAME} Objet JSON
Accéder au résultat du traitement du langage naturel ${skill.system.nlpresult.value} Objet JSON
Accéder à une variable de portée de compétence ${skill.VAR_NAME}  
Variable de portée de flux d'accès ${VAR_NAME}  
Paramètre d'entrée du flux d'accès ${INPUT_PARAM_NAME}  
Accéder à la variable de portée utilisateur ${user.VAR_NAME}  
Variable d'étendue de profil d'accès ${profile.VAR_NAME}  
Obtenir la réponse d'intention de réponse ${skill.system.event.value.intent.answer}

Remarque : vous pouvez également utiliser ${skill.system.event.value.answerIntent.answer}.

 
Obtenir le nom de l'intention

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

Chaîne
Obtenir le message d'erreur ${skill.system.event.value.dialogError.errorMessage} Chaîne
Entrée de groupe de ressources d'accès ${skill.system.rb.RB_ENTRY_NAME} Groupe de ressources
Accéder à la valeur d'un paramètre personnalisé ${skill.system.config.CUSTOM_PARAMETER_NAME} Chaîne

Pour plus d'informations sur FreeMarker dans vos composants, reportez-vous à Syntaxe de langage de modèle Apache FreeMarker.

Syntaxe de langage de modèle Apache FreeMarker

Vous pouvez utiliser le langage FTL Apache pour accéder aux valeurs de variable, afficher ou masquer des éléments de réponse, trouver des mots-clés dans un message utilisateur, imprimer une liste de valeurs ou afficher des tableaux triés en fonction d'un attribut de données spécifique. La syntaxe de base de ces expressions de valeur est ${...}. Vous pouvez intégrer FTL dans les définitions de propriété de divers composants de flux de dialogue.
Remarque

Vous pouvez également définir les expressions à l'aide de la directive if (<#if>...</#if>).
Procédez comme suit... ... Procédure
Lire les valeurs des variables Ajoutez la propriété value à l'aide de la syntaxe par points suivante :
${VAR_NAME.value}
Par exemple :
${MyEmail.value}
Lire des valeurs des variables définies par des entités complexes Utilisez la syntaxe par points suivante pour ajouter une propriété supplémentaire :
${VAR_NAME.value.property}
Par exemple :
${MyMoney.value.totalCurrency}
Si vous utilisez une expression telle que ${MyMoney} dans un composant System.Output d'une brique avec un flux de dialogue basé sur YAML, vous verrez toutes les propriétés de l'objet JSON de devise référencé.
Renvoyer l'ensemble de valeurs définies pour une entité de liste de valeurs Utilisez les variables intégrées type et enumValues dans la syntaxe suivante :
${VAR_NAME.type.enumValues}
Utiliser des variables intégrées pour les chaînes, les tableaux (séquences), les nombres et les dates Reportez-vous à Référence Apache FreeMarker. A la fin de la propriété value, ajoutez un point d'interrogation (?) ainsi que le nom de l'opération :
${VAR_NAME.value?ftl_function}
  • Opérations de chaîne :
    ${VAR_NAME.value?lower_case}
  • Opérations de tableau :
    ${VAR_NAME.value?size?number}
  • Opérations de nombre :
    ${VAR_NAME.value?round}
  • Opérations de date et d'heure :
    ${VAR_NAME.value.date?long?number_to_date?string.short}
Concaténer des expressions FTL. Regroupez les opérations en une chaîne à l'aide d'un point d'interrogation (?) :
${VAR_NAME.value?ftl_function1?ftl_function2}

Référencement des valeurs d'entité dans les briques multilingues

Lorsque vous disposez de briques multilingues, vous devez vous assurer que l'option Utiliser les correspondances d'entité complètes est définie sur true pour le composant chargé de résoudre vos entités. Vous pouvez ainsi écrire les types d'expression suivants :

  • Expressions qui font référence à la valeur d'entité dans la langue de la conversation. Vous pouvez utiliser ces expressions, par exemple, pour afficher les valeurs d'entité aux utilisateurs sous forme de boutons, de messages de confirmation, etc.

    Pour de telles expressions, ajoutez value pour obtenir la valeur dans la langue de la conversation. Par exemple, si vous avez défini la variable de flux de dialogue pizza et que vous voulez référencer la valeur d'entité PizzaSize dans une invite, utilisez pizza.value.PizzaSize.value (au lieu de pizza.value.PizzaSize) dans l'expression.

  • Expressions qui font référence à la valeur de l'entité dans la langue principale. La valeur de langue principale sert en quelque sorte de clé pour les valeurs correspondantes dans toutes les langues de l'entité. Vous pouvez référencer cette valeur à des fins de logique métier sans avoir à vous soucier de la langue de la conversation.

    Pour ces expressions, ajoutez primaryLanguageValue (par exemple, pizza.value.PizzaSize.primaryLanguageValue).