撰寫表示式
您可以撰寫 表示式,以指定與步驟中所收集或儲存在階段作業變數中的值無關或衍生自值的值。 您可以使用表示式來定義步驟條件,或定義階段作業變數的值。
在步驟條件中使用表示式
如果您要根據交談期間所收集的資訊,對計算結果設定步驟條件,則可以在步驟條件中使用表示式。
例如,假設客戶的儲蓄帳戶中有 200 美元,並希望將 150 美元轉入新的支票帳戶。 資金轉帳費為 $3,而在儲蓄帳戶內少於 $50 時,銀行會收取費用。 您可以建立具有步驟條件的步驟,以檢查此狀況。 步驟條件會使用如下所示的表示式:
${savings} - (${Step_232} + ${transfer_fee}) < 50
其中:
${savings}
代表儲存客戶儲蓄帳戶總計的階段作業變數。${Step_232}
代表要求提供客戶要轉帳之金額的步驟。${transfer_fee}
代表指定資金轉帳費用的階段作業變數。
如果符合步驟條件,則步驟會警告使用者,所要求的轉帳將使儲蓄帳戶餘額低於 50 美元下限並產生費用,並要求先確認再繼續進行。
若要在步驟條件中使用表示式,請遵循下列步驟:
-
從步驟中,按一下新增條件。
系統會使用最可能的選項自動產生條件,這通常是前一個步驟中設定的任何變數。
-
按一下所產生條件的第一個區段,向下捲動,然後按一下表示式。
-
選用: 按一下
展開 圖示,以開啟表示式編輯器視窗。 (您也可以直接在欄位中輸入表示式,而不開啟視窗,但編輯器可讓您更容易編輯較長或更複雜的表示式。)
-
鍵入您要使用的表達式。
使用表示式將值指派給階段作業變數
如果您想要根據其他變數來計算變數的值,則可以在指派值給階段作業變數時使用表示式。
例如,假設您想要告知客戶購買的總成本,包括 6% 營業稅及固定 $3.00 處理費用。 若要計算總成本,您可以建立階段作業變數,並使用表示式來指派值:
(${price} * 1.06) + 3
然後,您可以在 助理指出 欄位中參照此變數。
若要在指派值給階段作業變數時使用表示式,請遵循下列步驟:
-
從步驟內,按一下 設定變數值。
-
按一下設定新值。
-
從下拉清單中,選取您要儲存值的階段作業變數。
-
在 至之後,選取 表示式。
-
輸入您要使用的表達式。
-
如果您使用表示式編輯器,請按一下 套用 以儲存變更並關閉編輯器視窗。
您也可以使用表示式,將起始值指派給階段作業變數。 在「階段作業變數」視窗中,移至 起始值 欄位,然後按一下 使用表示式。
您也可以直接撰寫表示式,而不先挑選變數:
-
從步驟內,按一下 設定變數值。
-
按一下設定新值。
-
從下拉清單中,選取 表示式。
-
輸入您要使用的表達式。
-
如果您使用表示式編輯器,請按一下 套用 以儲存變更並關閉編輯器視窗。
表示式語法
watsonx Assistant 表示式語言基於 Spring 表示式語言 (SpEL),但語法有一些重要差異。 有關詳細背景信息SpEL,看 Spring 表達語言(SpEL )。
變數
若要參照表示式中的變數,請鍵入錢幣符號 ($
),然後從清單中選取變數。 參照會以正確的表示法插入表示式中,並使用變數 ID 而非其顯示名稱 (例如,${step_773}
或 ${customer_id}
) 來參照變數。 除非您想要參照不同的變數,且您確定其變數 ID,否則請不要編輯此參照。
若要在自訂建置的用戶端應用程式中引用使用者定義的操作或會話變量,請使用保留關鍵字前綴 user_defined_
。 例如,使用 ${user_defined_my_context_var}
得到的值 my_context_var
由您的客戶設定。 有關定制客戶端的更多信息,請參閱 客製化客戶端。
標準數學
對於數值,您可以使用表示式來執行數學計算。 對於基本算術,您可以使用標準運算子 (+
、-
、*
、/
)。
您也可以使用方法來執行其他數學運算。 如需相關資訊,請參閱 動作的表示式語言方法。
陣列
若要定義陣列值,請使用方括弧 ([]) 鍵入值,並以逗點區隔項目 (例如,[ "one", "two", "three" ]
)。
若要參照陣列中的項目,請使用方括弧表示法,並指定陣列中項目的索引 (從零開始)。例如,${Items}[0]
代表陣列中的第一個項目 Items
。
您也可以使用陣列方法 get()
,從陣列擷取項目。 如需相關資訊,請參閱 動作的表示式語言方法。
JSON 物件
使用 JSON 表示法在表示式中定義複合物件。 例如,下列表示式將複式 JSON 物件指派為變數的值:
{
"name": {
"firstname": "John",
"lastname": "Doe"
},
"age": 36
}
您可以在 JSON 內使用變數及標準數學,來建立在執行時期計算的動態物件。 例如,下列表示式定義參照變數並計算平均值的 JSON 物件:
{
"temp_1": ${temp_1},
"temp_2": ${temp_2},
"avg_temp": (${temp_1} + ${temp_2}) / 2
}
若要參照包含在 JSON 值中的子物件,請使用帶點表示法來表示物件的路徑 (例如,${customer}.name.lastname
)。
如果您需要參照可能或可能未定義之物件的子項,請使用安全導覽運算子 (?
)。例如,如果 customer.name
是 null
,則表示式 ${customer}.name?.lastname
會評估為 null
。 (如果沒有安全導覽運算子,則會產生錯誤。)
方法
使用表示式語言方法來操作值 (例如,格式化字串或將項目附加至陣列)。 如需每一種資料類型所支援方法的相關資訊,請參閱 動作的表示式語言方法。