高级表达式编辑

关于高级表达式编辑

编辑表达式需要手动输入条件以形成规则。

利用此模式,可使用高级功能。利用这些函数,可处理用于执行特定查询(如处理日期、字符串、数字字段、排序等)的值。

在编辑表达式时,还可以使用工作流的事件变量。 有关更多信息,请参阅使用事件变量自定义活动一节。

您可以编辑表达式,以:

  • 通过添加规则时可用的 Advanced mode 选项定义查询。

  • 编辑工作流中的表达式。例如,向活动添加附加数据。

  • 编辑可见性条件以定义编辑某个块在 HTML 内容编辑器中的显示方式。在这种情况下,表达式以 JavaScript 格式进行编辑,且不会提供高级函数作为标配。

编辑表达式

利用高级表达式版,可手动定义专门对应于您需求的表达式。

编辑表达式可于创建电子邮件时在受众窗口中使用,也可于创建工作流时在查询活动中使用。

  1. 有关访问表达式编辑窗口的方法详情,请参阅关于高级表达式编辑一节。其中涉及以下元素:

    • 定义表达式的输入字段。
    • 可在表达式中使用并对应于查询中定向维度的可用字段清单(请参阅定向维度和资源)。
    • 可用函数的列表,按类别排序。

  2. 通过直接在相应字段中输入表达式以编辑表达式,或通过使用一系列可用字段和函数以编辑表达式。

    双击某个字段或表达式,可将其添加到光标所在的表达式中。

    可以使用工作流的事件变量来构建表达式。有关更多信息,请参阅使用事件变量自定义活动一节。

  3. 根据需要为规则指定一个特定名称。输入的名称将作为规则名称,显示在查询编辑器工作区中。

通过编辑表达式,您可以个性化受众表达式,以根据需要定向群体。

相关主题:

表达式语法

标准语法

标准表达式由一个或多个符合以下语法元素的条件组成:

  • 每个条件都采用 <value1> <comparison operator> <value2> 的形式,其中:

    • <value1> 是字段或函数例如 @created 对应于创建用户档案的日期,而 Year(@created) 对应于创建用户档案的年份。
    • <comparison operator>Comparison operators 部分中列出的运算符之一。此运算符用于定义 <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>Comparison operators 部分中列出的运算符之一。此运算符用于定义 <context><value2> 之间的比较方法。
    • <value2> 是手动输入的字段、函数或值。
    注意

    <context><value2> 类型数据必须相同。例如,如果 <context> 是日期,则 <value2> 也必须是日期。

  • 如果要使用多个条件,则可使用逻辑运算符将它们组合在一起。

    • &&:两个条件相交。
    • ||:两个条件相并。

例如:

context.profile.age > 21 && context.profile.firstName.length() > 0

在本例中,就是 21 岁以上并且提供了名字的用户档案(以 firstName 字段至少包 含一个字符为标志)。

比较运算符

对于某些规则,利用查询编辑器,可选择一个值以定义条件。

条件必须通过使用下列运算符之一,链接到值。

运算符
标准语法
JavaScript 语法
说明
示例
等于
=
==
第一个值必须与第二个值完全相同。
@lastName = Martin 可检索姓氏为“Martin”的用户档案,且只检索与其相同的字符。
大于
>
>
第一个值必须绝对大于第二个值。
@age > 50 可检索年龄超过“50”(比如“51”、“52”等)的用户档案。
小于
<
<>
第一个值必须绝对小于第二个值。
@created < DaysAgo(100) 可检索之前 100 天(不含第 100 天)内在数据库中创建的所有用户档案。
大于或等于
>=
>=
第一个值必须大于或等于第二个值。
@age >= 30 可检索年龄为 30 岁或更大的用户档案。
小于或等于
<=
<>
第一个值必须小于或等于第二个值。
@age <= 60 可检索年龄为 60 岁或更小的用户档案。
不同
!=
!=
第一个值必须不同于第二个值。
@language ! = English 可检索尚未定义为可使用英语的用户档案。
包含
IN
N/A
第一个值必须包含第二个值。
@domain IN mail。此处,结果中会返回所有具有“mail”值的域名。因此,“gmail.com”域名也将构成返回结果的一部分。
相似
LIKE
N/A
相似包含运算符非常相似。利用该运算符,可在搜索的值中插 入 % 通配符。
@lastName LIKE Mart%n。在此,替换字符 % 将用作“绝招”,在假设拼写不正确的情况下查找名称“Martin”。
不相似
NOT
N/A
相似相同。不能用于取回输入的值。在本例中,输入的值也必须包含 % 个通配符字段。
@lastName NOT Smi%h。此处,不会返回与名称“Smi%h”(代表 Smith 等)对应的收件人作为结果。
为空
IS NULL
N/A
第一个值必须对应于空值。
@mobilePhone IS NULL 可检索尚未提供手机号码的所有用户档案。

On this page

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now