Show Menu
主題×

進階運算式編輯

關於進階運算式編輯

編輯運算式需要手動輸入條件以形成規則。
此模式可讓您使用進階功能。這些函式可讓您控制用於執行特定查詢的值,例如控制日期、字串、數值欄位、排序等。
編輯運算式時也可以使用工作流程的事件變數。 如需詳細資訊,請參閱 使用事件變數自訂活動 區段。
您可以編輯運算式,以:
  • 透過新增規則時可用的 Advanced mode 選項定義查詢。
  • 編輯工作流程中的運算式。例如,若要新增其他資料至活動。
  • 編輯可見性條件,以定義 HTML 內容編輯器中區塊的顯示方式。在這種情況下,運算式會以 JavaScript 格式編輯,不提供使用進階函式做為標準的功能。

編輯運算式

進階運算式版本可讓您手動定義符合需求的運算式。
編輯運算式可在建立電子郵件時用於「對象」視窗,或在建立工作流程時用於「查詢」活動。
  1. 透過 關於進階運算式編輯 區段中所詳述的其中一個方法, 存取運算式編輯視窗。它包含下列元素:
    • 定義運算式的輸入欄位。
    • 可用欄位清單,可用於運算式中,並對應至查詢的定位維度(請參閱 定位維度和資源 )。
    • 可用函式的清單,按類別排序。
  2. 直接在對應欄位中輸入運算式,或使用可用欄位和函式清單來編輯運算式。
    按兩下某個欄位或運算式將其新增到游標所在的運算式中。
    您可使用工作流程的事件變數來建立運算式。如需詳細資訊,請參閱 使用事件變數自訂活動 區段。
  3. 視需要為規則指定特定名稱。輸入的名稱將作為規則名稱顯示在查詢編輯器工作區中。
編輯運算式可讓您個人化「對象」運算式,以視需要鎖定母體。
相關主題:

運算式語法

標準語法

標準運算式由一或多個符合下列語法元素的條件組成:
  • 每個條件都採用 <value1> <comparison operator> <value2> 行式,其中:
    • <value1> 是一個欄位或函式。例如, @created 適用於建立設定檔的日期,或是 Year(@created) 適用於建立設定檔的年份。
    • <comparison operator> 「比較」運算子 區段中所列的運算子。此運算子定義 <value1> <value2> 之間的比較方法。
    • <value2> 是手動輸入的欄位、函式或值。
    <value1> <value2> 類型資料必須相同。例如,如果 <value1> 是日期,則 <value2> 也必須是日期。
  • 如果要使用多個條件,可以使用邏輯運算子將它們組合起來。
    • AND :兩個條件相交。
    • OR :兩個條件結合在一起。
例如:
Year(@created) = Year(GetDate()) AND Month(@created) = Month(GetDate())

在此範例中,會定位其建立日期為目前月份和年份的描述檔。

JavaScript 語法

在定義 HTML 內容編輯器的文本類型區塊的可見性條件時,必須使用具有 JavaScript 類型語法的運算式。
JavaScript 運算式由一或多個條件組成,並使用下列語法元素:
  • 每個條件都採用 <context> <comparison operator> <value2> 行式,其中:
    • <context> 是可讓您指定上下文的欄位或函式。例如, context.profile.@email 適用於設定檔的電子郵件地址,或者 context.profile.firstName.length() 適用於設定檔名字的字元數。
    • <comparison operator> 「比較」運算子 區段中所列的運算子。此運算子定義 <context> <value2> 之間的比較方法。
    • <value2> 是手動輸入的欄位、函式或值。
    <context> <value2> 類型資料必須相同。例如,如果 <context> 是日期,則 <value2> 也必須是日期。
  • 如果要使用多個條件,可以使用邏輯運算子將它們組合起來。
    • && :兩個條件相交。
    • || :兩個條件結合在一起。
例如:
context.profile.age > 21 && context.profile.firstName.length() > 0

在此範例中,已提供 21 歲以上且其名字的描述檔(以 firstName 欄位至少包含一個字元為例)。

比較運算子

對於某些規則,查詢編輯器可讓您選取值來定義條件。
條件必須使用下列其中一個運算子連結至值。
運算元 標準語法 JavaScript 語法 說明 範例
Equal to = == 第一個值必須與第二個值完全相同。 @lastName = Martin 會擷取其姓氏為 'Martin' 的描述檔,只會擷取這些相同字元。
Greater than > > 第一個值必須斷斷續續大於第二個值。 @age > 50 會擷取早於 '50'、'51'、'52' 等描述檔。
Less than < < 第一個值必須斷斷續續小於第二個值。 @created < DaysAgo(100) ,搜尋在少於 100 天前的資料庫中建立的所有設定檔。
Greater than or equal to >= >= 第一個值必須大於或等於第二個值。 @age >= 30 會擷取年齡在 30 歲以上的描述檔。
Less than or equal to <= <= 第一值必須小於或等於第二值。 @age <= 60 會接取年齡在 60 歲或以下的設定檔。
Different != != 第一個值必須與第二個值不同。 @language ! = English 會擷取尚未設定為說英語的設定檔。
Contains IN N/A 第一個值必須包含第二個值。 @domain IN mail 。在此處,結果將返回所有具有 'mail' 值的網域名稱。因此,'gmail.com' 網域名稱將構成傳回結果的一部分。
Like LIKE N/A Like 與  Contains  運算子非常類似。它可讓您在所搜尋的值中插入  %  萬用字元。 @lastName LIKE Mart%n 。在此處,替代字元 % (%) 作為 "joker",在拼字不正確的假設情況下尋找名稱 "Martin"。
Not like NOT N/A 類似 Like 。它可讓您不復原輸入的值。在這裡,輸入的值也必須包含 % 萬用字元。 @lastName NOT Smi%h 。在這裡,與名稱 'Smi%h' (如 Smith 等)相對應的收件者不會被傳回為結果。
Is empty IS NULL N/A 第一個值必須對應至空值。 @mobilePhone IS NULL 會擷取所有尚未提供行動電話號碼的設定檔。