Show Menu
主題×

進階運算式編輯

關於進階運算式編輯

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

編輯運算式

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

運算式語法

標準語法

標準運算式由一個或多個符合下列語法元素的條件組成:
  • 每個條件的形 式為<value1> <comparison運算子> <value2> :
    • <value1>是 一個欄位或函式。 例如, @created for the date a profile was created, or Year(@created) for the year a profile screated.
    • <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運算子> <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語法 說明 Example
等於 = == 第一個值必須與第二個值完全相同。 @lastName = Martin 會擷取其姓氏為'Martin'的描述檔,只會擷取這些相同字元。
大於 > > 第一個值必須斷斷續續大於第二個值。 @age > 50 會擷取早於'50'、'51'、'52'等的描述檔。
小於 < < 第一個值必須斷斷續續小於第二個值。 @created < DaysAgo(100) ,檢索在少於100天前的資料庫中建立的所有配置檔案。
大於或等於 >= >= 第一個值必須大於或等於第二個值。 @age >= 30 會擷取年齡在30歲以上的描述檔。
小於或等於 <= <= 第一值必須小於或等於第二值。 @age <= 60 referse profiles are of 60.
不同 != != 第一個值必須與第二個值不同。 @language != English refires that have not defined as English。
包含 IN 不適用 第一個值必須包含第二個值。 @domain IN mail 。 在此,結果中將返回所有具有'mail'值的域名。 因此,'gmail.com'網域名稱將構成傳回結果的一部分。
不適用 Like 與Contains運算子非 常類似 。 它可讓您在所搜 尋的值中插入 %萬用字元。 @lastName LIKE Mart%n 。 在此處,替代字 元% (%)作為「小丑」,在拼字不正確的假設情況下尋找名稱"Martin"。
不贊 NOT 不適用 類似 Like 。 它可讓您不復原輸入的值。 在這裡,輸入的值也必須包含 % (萬用字元)。 @lastName NOT Smi%h 。 在這裡,收件者對應名稱「Smi%h」(所以Smith等)的值。
空白 為空 不適用 第一個值必須對應至空值。 @mobilePhone IS NULL 會擷取所有尚未提供行動電話號碼的設定檔。