Oracle Cloud Infrastructureドキュメント

A 組込みコンポーネント: プロパティ、遷移および使用方法

統制コンポーネント

制御コンポーネントは、ユーザー入力が事前定義済の値に一致するかどうかに基づいてフローをルーティングします。

System.ConditionEquals

このコンポーネントは、変数値に基づいてナビゲーションを変更します。

このコンポーネントを使用して、値が一致した場合にダイアログ・フローを分岐します。 このコンポーネントは、sourceまたはvariableプロパティの値セットを、valueプロパティが格納している値と比較することによって、値ベースのルーティングを実行します。 このコンポーネントは、一致(または不十分な)に基づいて、equalアクションとnotequalアクションを適切にトリガーします。 ordersコンテキスト変数に抽出された入力がorderPizza状態になるのは、次のスニペットで、顧客はpizzaと一致する場合、またはorderPastaで始まる実行パスにルーティングされます。
  Check for Pizza:
    component: "System.ConditionEquals"
    properties:
      variable: "orders"
      value: "pizza"
    transitions:
      actions:
        equal:  "orderPizza"
        notequal: "orderPasta"
プロパティ 説明 必須?
variable 現在の値がルーティングを決定する変数の名前。 sourceプロパティも定義している場合、ダイアログ・ボックスはvariableプロパティを無視します。 いいえ
source sourceプロパティは、variableプロパティのかわりです。 いいえ
value sourceまたはvariableプロパティと比較される値。 はい
System.ConditionEqualsコンポーネントでApache FreeMarker Expressionを使用する方法は?
valueおよびsourceプロパティをApache FreeMarkerの式で定義することで、一致基準を特定の値および書式に限定できます。 例えば:
  • verifyCode:
        component: "System.ConditionEquals"
        properties:
          variable: "code"
          value: "${userEnteredCode.value}"
        transitions:
          actions:
            equal: "wrongCode"
            notequal: "${flow.value}"
    
  • conditionEquals:
        component:"System.ConditionEquals"
        properties:
          source: "${addressVariable.value.state} - ${addressVariable.value.country}"
          value: "CA - USA"
        transitions:
          actions:
            equal: goCalfifornia
            notequal: goSomewhereElse
  • main: true
    name: "Shoppingbot"
    context:
      variables:
        yesnoVar: "YES_NO"
        
    ...
    
     confirmBuy:
        component: "System.ConditionEquals"
        properties:
          source: "${yesnoVar.value.yesno}"
          value: "YES"
        transitions:
          actions:
            equal: "deviceDone"
            notequal: "cancelOrder"
      deviceDone:
        component: "System.Output"
        properties:
          text: "Your ${devices.value} is on its way."
        transitions:
          return: "done"
      cancelOrder:
        component: "System.Output"
        properties:
          text: "Thanks for your interest."
        transitions:
          return: "done"
  • context:
      variables:
        wordLength: "int"
        words: "string"
    states:
      askName:
        component: "System.Text"
        properties:
         prompt: "What is your name?"
         variable: "words"
      setVariable:
        component: "System.SetVariable"
        properties: 
          variable: "wordLength"
          value: "${words.value?length}"
      conditionEquals:
        component: "System.ConditionEquals"
        properties:
          source: "${(wordLength.value?number > 2)?then('valid', 'invalid')}"
          value: "valid"
        transitions:
          actions:
            equal: "checkFirstNameinDatabase"
            notequal: "inValidName"
      done:
        component: "System.Output"
        properties:
          text: "Done"
        transitions:
          return: "done"
      checkFirstNameinDatabase:
        component: "System.Output"
        properties:
          text: "Check the first name in the database."
        transitions:
          return: "done"
      inValidName:
        component: "System.Output"
        properties:
          text: "This name is not valid. It needs to be at least three letters."
        transitions:
          return: "done"

System.ConditionExists

このコンポーネントを使用して、指定した変数の存在をチェックします。 値に従ってダイアログをルーティングするには、existsおよびnotexist処理を使用して遷移キーを定義します。

プロパティ 説明 必須?
variable 変数の名前。 はい
main: true
name: "HelloKids"
context:
  variables:
    foo: "string"
    lastQuestion: "string"
    lastResponse: "string"
states:
  intent:
    component: "System.Intent"
    properties:
      variable: "iResult"
    transitions:
      actions:
        Talk: "checkUserSetup"
        unresolvedIntent: "checkUserSetup"
  checkUserSetup:
    component: "System.ConditionExists"
    properties:
      variable: "user.lastQuestion"
    transitions:
      actions:
        exists: "hellokids"
        notexists: "setupUserContext"
  setupUserContext:
    component: "System.CopyVariable"
    properties:
      from: "lastQuestion,lastResponse"
      to: "user.lastQuestion,user.lastResponse"
    transitions: {}

...

System.Switch

このコンポーネントを使用して、変数値に基づいて状態を切り替えます。

System.ConditionEqualsコンポーネントと同様の値ベースのルーティ