進階運算式編輯 advanced-expression-editing
關於進階運算式編輯 about-advanced-expression-editing
編輯運算式需要手動輸入條件以形成規則。
此模式可讓您使用進階功能。這些函式可讓您控制用於執行特定查詢的值,例如控制日期、字串、數值欄位、排序等。
編輯運算式時,也可以使用工作流程的事件變數。 如需詳細資訊,請參閱使用事件變數自訂活動區段。
您可以編輯運算式,以:
-
透過新增規則時可用的 Advanced mode 選項定義查詢。
-
編輯工作流程中的運算式。例如,若要新增其他資料至活動。
-
編輯可見性條件,以定義 HTML 內容編輯器中區塊的顯示方式。在這種情況下,運算式會以 JavaScript 格式編輯,不提供使用進階函式做為標準的功能。
編輯運算式 edit-an-expression
進階運算式版本可讓您手動定義符合需求的運算式。
編輯運算式可在建立電子郵件時用於「客群」視窗,或在建立工作流程時用於「查詢」活動。
-
透過關於進階運算式編輯區段中所詳述的其中一個方法, 存取運算式編輯視窗。它包含下列元素:
- 定義運算式的輸入欄位。
- 可用欄位清單,可用於運算式中,並對應至查詢的定位維度(請參閱定位維度和資源)。
- 可用函式的清單,按類別排序。
-
直接在對應欄位中輸入運算式,或使用可用欄位和函式清單來編輯運算式。
按兩下某個欄位或運算式將其新增到游標所在的運算式中。
您可使用工作流程的事件變數來建立運算式。如需詳細資訊,請參閱使用事件變數自訂活動區段。
-
視需要為規則指定特定名稱。輸入的名稱將作為規則名稱顯示在查詢編輯器工作區中。
編輯運算式可讓您個人化「客群」運算式,以視需要鎖定群體。
相關主題:
運算式語法 expression-syntax
標準語法 standard-syntax
標準運算式由一或多個符合下列語法元素的條件組成:
-
每個條件都採用 <value1> <comparison operator> <value2> 行式,其中:
- <value1> 是一個欄位或函式。例如,@created 適用於建立設定檔的日期,或是 Year(@created) 適用於建立設定檔的年份。
- <comparison operator> 是「比較」運算子區段中所列的運算子。此運算子定義 <value1> 及 <value2> 之間的比較方法。
- <value2> 是手動輸入的欄位、函式或值。
note note NOTE <value1> 及 <value2> 類型資料必須相同。例如,如果 <value1> 是日期,則 <value2> 也必須是日期。 -
如果要使用多個條件,可以使用邏輯運算子將它們組合起來。
- AND:兩個條件相交。
- OR:兩個條件結合在一起。
例如:
Year(@created) = Year(GetDate()) AND Month(@created) = Month(GetDate())
在此範例中,會定位其建立日期為目前月份和年份的描述檔。
JavaScript語法 javascript-syntax
在定義 HTML 內容編輯器的文本類型區塊的可見性條件時,必須使用具有 JavaScript 類型語法的運算式。
JavaScript 運算式由一或多個條件組成,並使用下列語法元素:
-
每個條件都採用 <context> <comparison operator> <value2> 行式,其中:
- <context> 是可讓您指定上下文的欄位或函式。例如,context.profile.@email 適用於設定檔的電子郵件地址,或者 context.profile.firstName.length() 適用於設定檔名字的字元數。
- <comparison operator> 是「比較」運算子區段中所列的運算子。此運算子定義 <context> 及 <value2> 之間的比較方法。
- <value2> 是手動輸入的欄位、函式或值。
note note NOTE <context> 及 <value2> 類型資料必須相同。例如,如果 <context> 是日期,則 <value2> 也必須是日期。 -
如果要使用多個條件,可以使用邏輯運算子將它們組合起來。
- &&:兩個條件相交。
- ||:兩個條件結合在一起。
例如:
context.profile.age > 21 && context.profile.firstName.length() > 0
在此範例中,已提供 21 歲以上且其名字的描述檔(以 firstName 欄位至少包含一個字元為例)。
比較運運算元 comparison-operators
對於某些規則,查詢編輯器可讓您選取值來定義條件。
條件必須使用下列其中一個運算子連結至值。