進階運算式編輯

關於進階運算式編輯

編輯運算式需要手動輸入條件以形成規則。

此模式可讓您使用進階功能。這些函式可讓您控制用於執行特定查詢的值,例如控制日期、字串、數值欄位、排序等。

編輯運算式時也可以使用工作流程的事件變數。 如需詳細資訊,請參閱使用事件變數自訂活動區段。

您可以編輯運算式,以:

  • 透過新增規則時可用的 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 會擷取所有尚未提供行動電話號碼的設定檔。

本頁內容