Expressões para Valores Variáveis

Você pode usar expressões FreeMarker para valores de variáveis em seus fluxos de caixas de diálogo.

Expressões úteis

Aqui estão algumas expressões comuns que você pode usar em seus fluxos.

Dica:

O preenchimento automático orienta você na gravação dessas (e de outras) expressões do Apache FreeMarker.
Operação Expressão Freemarker Tipo de Resultado
Obter nome do fluxo pai ${system.parentFlow} String
Obter payload do evento ${skill.system.event.value.EVENT_NAME} Objeto JSON
Acessar resultado de NLP ${skill.system.nlpresult.value} Objeto JSON
Acessar variável de escopo de habilidade ${skill.VAR_NAME}  
Variável de escopo do fluxo de acesso ${VAR_NAME}  
Parâmetro de entrada do fluxo de acesso ${INPUT_PARAM_NAME}  
Acessar variável de escopo do usuário ${user.VAR_NAME}  
Variável de escopo do perfil de acesso ${profile.VAR_NAME}  
Obter resposta da Intenção de Resposta ${skill.system.event.value.intent.answer}

Observação: Você também pode usar ${skill.system.event.value.answerIntent.answer}.

 
Obter nome da intenção

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

String
Obter mensagem de erro ${skill.system.event.value.dialogError.errorMessage} String
Entrada do pacote de Recursos de Acesso ${skill.system.rb.RB_ENTRY_NAME} Pacote de Recursos
Acessar o valor de um parâmetro personalizado ${skill.system.config.CUSTOM_PARAMETER_NAME} String

Para obter mais informações sobre FreeMarker em seus componentes, consulte Sintaxe de Linguagem de Modelo FreeMarker do Apache.

Sintaxe de Linguagem de Modelo do FreeMarker Apache

Você pode usar a Linguagem de Modelo do Apache FreeMarker (FTL) para acessar valores de variáveis, mostrar ou ocultar itens de resposta, encontrar palavras-chave em uma mensagem do usuário, imprimir uma lista de valores ou exibir arrays classificados por um atributo de dados específico. A sintaxe básica para essas expressões de valor é ${...}. Você pode incorporar a linguagem FTL nas definições de propriedades de vários componentes do fluxo de caixas de diálogo.
Observação

Você também pode definir as expressões usando a diretiva if (<#if>...</#if>).
Para isso... ...Faça isto
Leia os valores das variáveis. Adicione a propriedade value usando notação de ponto:
${VAR_NAME.value}
Por exemplo :
${MyEmail.value}
Leia os valores das variáveis definidas por entidades complexas. Use a notação de ponto para adicionar uma propriedade:
${VAR_NAME.value.property}
Por exemplo :
${MyMoney.value.totalCurrency}
Se você usar uma expressão como ${MyMoney} em um componente System.Output em uma habilidade com um fluxo de caixas de diálogo baseado em YAML, verá todas as propriedades do objeto JSON de moeda referenciado.
Retorne o conjunto de valores definidos para uma entidade da lista de valores. Use as variáveis incorporadas type e enumValues na seguinte sintaxe:
${VAR_NAME.type.enumValues}
Use built-ins para strings, arrays (sequências), números e datas. Consulte Referência do Apache FreeMarker. Siga a propriedade value com um ponto de interrogação (?) e o nome da operação:
${VAR_NAME.value?ftl_function}
  • operações de string:
    ${VAR_NAME.value?lower_case}
  • operações de array:
    ${VAR_NAME.value?size?number}
  • operações de número:
    ${VAR_NAME.value?round}
  • operações de hora e data:
    ${VAR_NAME.value.date?long?number_to_date?string.short}
Concatene as expressões FTL. Una as operações usando um ponto de interrogação (?):
${VAR_NAME.value?ftl_function1?ftl_function2}

Referenciando Valores de Entidade em Habilidades de Vários Idiomas

Quando você tiver habilidades de vários idiomas, certifique-se de que o componente que está resolvendo suas entidades tenha Usar Correspondências Completas de Entidade definido como true. Isso permite escrever os seguintes tipos de expressões:

  • Expressões que fazem referência ao valor da entidade no idioma da conversa. Você pode usar essas expressões para, por exemplo, exibir os valores das entidades para os usuários em botões, mensagens de confirmação etc.

    Para essas expressões, anexe value para obter o valor no idioma da conversa. Por exemplo, se você tiver definido uma variável de fluxo de caixas de diálogo, pizza, e quiser fazer referência ao valor de entidade PizzaSize em um prompt, use o seguinte na expressão pizza.value.PizzaSize.value (em vez de apenas pizza.value.PizzaSize).

  • Expressões que fazem referência ao valor da entidade no idioma principal. O valor do idioma principal serve como um tipo de chave para os valores correspondentes em todos os idiomas da entidade. Você pode fazer referência a esse valor para fins de lógica de negócios sem precisar se preocupar em qual idioma a conversa está.

    Para essas expressões, anexe primaryLanguageValue (por exemplo, pizza.value.PizzaSize.primaryLanguageValue).