Show Menu
主题×

高级表达式编辑

关于高级表达式编辑

编辑表达式需要手动输入条件以形成规则。
此模式允许您使用高级功能。 这些函数允许您处理用于执行特定查询的值,如操作日期、字符串、数字字段、排序等。
编辑表达式时也可以使用事件变量。 有关此内容的详细信息,请参阅使 用事件变量自定义活动
您可以编辑表达式,以便:
  • 通过添加规则时 Advanced mode 可用的选项定义查询。
  • 在工作流中编辑表达式。 例如,向活动添加其他数据。
  • 编辑可见性条件以定义HTML内容编辑器中块的显示方式。 在这种情况下,表达式将以JavaScript格式进行编辑,并且不提供将高级函数作为标准使用。

编辑表达式

高级表达式版本允许您手动定义一个与您的需求特别对应的表达式。
编辑表达式可在创建电子邮件时在“受众”窗口中使用,也可以在创建工作流时在查询活动中使用。
  1. 通过“关于高级表达式编辑”部分中详细介绍的方法之一 访问表达式编辑窗口 。 它涉及以下元素:
    • 在其中定义表达式的输入字段。
    • 可用字段列表,可在表达式中使用并与查询的定位维对应(请参阅定 位维和资源 )。
    • 可用函数列表,按类别排序。
  2. 通过直接在相应字段中输入表达式或使用可用字段和函数列表来编辑表达式。
    双击字段或表达式可将其添加到放置光标的表达式中。
    可以使用工作流的事件变量构建表达式。 有关此内容的详细信息,请参阅使 用事件变量自定义活动
  3. 根据需要为规则指定一个特定名称。 输入的名称将作为规则名称显示在查询编辑器工作区中。
通过编辑表达式,您可以个性化“受众”表达式以根据需要定位受众。
相关主题:

表达式语法

标准语法

标准表达式由一个或多个条件组成,这些条件与以下语法元素相关:
  • 每个条件都采用 <value1> <comparison operator> <value2>的形式,据此 :
    • <value1> 是字段或函数。 例如 ,@created for the date a profile was created or Year(@created) for the year a profile was 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> is a date,则 <value2> assuble be date.
  • 如果要使用多个条件,可以使用逻辑运算符将它们组合在一起。
    • && :两个条件相交。
    • || :两个条件结合在一起。
例如:
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 可检索年龄在60岁或以下的配置文件。
不同 != != 第一个值必须不同于第二个值。 @language != English 将检索尚未定义为英语的配置文件。
包含 IN N/A 第一个值必须包含第二个值。 @domain IN mail 。 此处,结果中将返回所有具有“mail”值的域名。 因此,“gmail.com”域名将构成返回结果的一部分。
喜欢 LIKE N/A Like 与Contains运算符非 常相似 。 它允许您在所搜 索的值中 ,插入%通配符。 @lastName LIKE Mart%n 。 在此处,替换字符 % 用作“小丑”,在拼写不正确的假设情况下查找名称“Martin”。
不喜欢 NOT N/A 与“喜欢”类 。 它不允许您恢复输入的值。 在此,输入的值也必须包含 % 通配符。 @lastName不是Smi%h 。 此处,收件人与名称“Smi%h”(so Smith,等)对应不返回。
为空 为空 N/A 第一个值必须与空值对应。 @mobilePhone IS NULL 将检索其手机号码尚未提供的所有配置文件。