打印      打开 PDF 版本的联机帮助


上一主题

下一主题

关于表达式

表达式是指可由 Oracle CRM On Demand 计算的一个或多个运算符、函数、字段和文字的有效组合。本主题提供有关以下表达式功能的信息:

  • 表达式中的字段和字段名称格式
  • 表达式长度
  • 文字长度
  • 条件表达式
  • 验证表达式
  • 在表达式中使用相关字段

表达式中的字段和字段名称语法

某记录类型的字段设置页面中提供的大多数字段也在 Expression Builder 中该记录类型的字段列表中提供,且可在表达式中使用。

注意:文本(短 - 可屏蔽)字段类型的定制字段除外。您不能在 Expression Builder 的表达式中使用这些字段。

当您通过从 Expression Builder 内的字段列表中选择字段名称以将字段添加到表达式时,会使用下列语法在表达式编辑器中输入字段:

[{FieldName}]

出现在表达式编辑器中的字段名称是用于在 Oracle CRM On Demand 中内部标识字段的独立于语言的字段名称。虽然您也可以使用 [{FieldName}] 语法将字段名称直接键入到表达式编辑器中,但建议始终从字段列表中选择字段,以便表达式中的字段名称正确。

关于较早版本内表达式中的字段名称和字段名称语法

在比 Oracle CRM On Demand 第 29 版 Service Pack 1 更旧的版本中,当您从 Expression Builder 内的字段列表中选择字段时,会使用以下语法在表达式编辑器中输入字段:

[<FieldName>]

此外,在比第 29 版 Service Pack 1 更旧的版本中,Expression Builder 使用的独立于语言的字段名称不同于第 29 版 Service Pack 1 和更高版本的 Expression Builder 中所使用的独立于语言的字段名称。但是,使用 [<FieldName>] 语法和相应字段名称且在更旧版本中有效的任何表达式在第 29 版 Service Pack 1 和更高版本中继续有效。如果愿意,您也可以直接使用 [<FieldName>] 语法在表达式编辑器中继续键入独立于语言的旧字段名称。但是,建议您始终从 Expression Builder 内的字段列表中选择字段,以便字段名称和字段语法始终正确。

如果为新字段名称使用 [{FieldName}] 语法,为旧字段名称使用 [<FieldName>] 语法,则表达式可以包含混合在一起的新字段名称和旧字段名称。

关于 Oracle CRM On Demand 联机帮助中的示例

联机帮助中显示的某些表达式示例有助于使用在比第 29 版 Service Pack 1 更旧版本中使用的独立于语言的字段名称和字段名称语法。这些示例仍然有效。但是,在第 29 版 Service Pack 1 或更高版本中创建或更新表达式时,如果从 Expression Builder 内的字段列表中选择对应的字段,则表达式中的字段名称将不同于联机帮助内示例中所显示的字段名称,字段将使用新字段语法出现在表达式编辑器中。

表达式长度

对于通过工作流规则上的“发送电子邮件”操作配置的电子邮件的邮件正文,表达式的最大支持长度为 2000 个字符,包括空格在内。您可以通过按 Enter 键在电子邮件中插入换行符。换行符在文本框中计为两个字符。

在使用 Expression Builder 的其他所有情况下,表达式支持的最大长度为 1024 个字符(包括空格)。

此外,还必须确保在要保存表达式的字段中字符总数不超过该字段的限制。在下列工作流字段中,函数和字段名前后分别放有 3 个百分号 (%%%):

  • 通过“发送电子邮件”操作配置的电子邮件中的“主题”和“邮件正文”字段
  • 通过“创建任务”操作配置的任务中的“主题”和“说明”字段

百分号表示该函数或字段名将转换为文本值。在保存表达式的字段中,每个百分号计为 1 个字符。

如果直接在字段中键入函数或字段名,则必须在该函数或字段名前后键入 3 个百分号。如果使用Expression Builder嵌入函数或字段名,则会自动添加百分比符号。

例如,如果使用 Expression Builder 将以下字段名称插入工作流操作的电子邮件正文中:

[{Name}]

则 Expression Builder 会将下列内容(共 14 个字符)插入工作流操作的电子邮件正文中:

%%%[{Name}]%%%

文字长度

将字符串或数字文字传递到 Expression Builder 中的函数时,文字包含的字符数(包括空格)不能超过 75。如果文字超过 75 个字符,则 Expression Builder 会将文字视为语法错误。通过引用字段名称将字符串传递到函数时,75 个字符的限制不适用于字段中传递到文字的值的长度。

创建表达式来设置字段的默认值时,75 个字符的限制适用于传递到表达式中任何函数的任何字符串或数字文字。此外,表达式结果中的字符数不能超过字段允许的最大字符数。

条件表达式

条件表达式是指在应用产品计算后始终返回布尔值(如 True 或 False)的表达式。

注意:Yes、No、Y 和 N 不是布尔值。如果将 True 或 False 指定为诸如 IIf 之类的函数的返回值,则返回的 True 和 False 为字符串,而不是布尔值。在条件表达式中,使用不正确的布尔值可能导致不可预知的行为。

在以下任何上下文中使用的表达式都必须是条件表达式:

  • 指定字段验证规则
  • 指定工作流规则中的条件
  • 作为 IIf 函数中的第一个参数

验证表达式

验证表达式用于确保字段中输入的数据为有效数据。验证表达式必须是条件表达式。

在创建记录以及用户每次更新字段时,都将计算字段的验证表达式,但在以下情况下例外:

  • 创建记录时未填写某个字段。执行字段验证不强求某个值。
  • 某个字段中有预先存在的无效值,更新时也未更改该值。

如果未计算验证表达式,或者验证表达式的计算结果为空,则不会生成错误消息。仅当表达式验证失败(即表达式的计算结果为假)时才会生成错误消息。

验证表达式与其他表达式类型的不同之处在于,它允许以条件运算符开头。例如,如果表达式即将要验证的字段是“客户名称”,则表达式的开头可以是:

= 'Acme Hospital'

此表达式虽然形式不规范,但仍能通过语法检查,因为如果 Oracle CRM On Demand 在表达式的开头没有找到字段名,便会在表达式前插入将要验证的字段的名称。您也可以按以下所示输入验证表达式:

[<AccountName>]= 'Acme Hospital'

其中 [<AccountName>] 是即将要验证的字段。

如果除了即将要验证的字段,表达式还需要计算其他字段,则表达式的标准做法是首先比较即将要验证的字段。

验证表达式仅用于 Oracle CRM On Demand 高级字段管理中的“字段验证”文本框。

验证表达式示例

示例 1:业务流程要求商机的结束日期必须迟于其创建日期。

要实施此过程,请为“结束日期”字段(在商机的“字段设置”页面中)创建一个验证表达式,如下所示:

> [<CreatedDate>]

或者,您也可以使用以下示例。但是请注意,即将要计算的字段(“结束日期”)必须是表达式中的第一个字段:

[<CloseDate>] > [<CreatedDate>]

有关创建和编辑字段的信息,请参阅创建和编辑字段

示例 2:如果商机的机率为 40% 或更高,则业务流程要求商机的收入必须为非零值。

业务规则表示这两个字段之间存在相关性,可重新表述此相关性,如下所示:

对于商机,如果机率大于或等于 40,则收入不能为零。相反,如果收入为零,则机率不能大于或等于 40。

在创建记录以及用户每次更新字段时,将会计算字段的验证表达式。因为对“机率”字段或“收入”字段进行更新都可能会影响这两个字段,所以必须具有“机率”字段和“收入”字段验证规则,才能正确实施业务规则。(有关创建和编辑字段的信息,请参阅创建和编辑字段。)

实现此示例所需的步骤如下所示:

  1. 为“机率”字段配置以下验证规则:

    < 40 OR ([<Probability>]>= 40 AND [<Revenue>]> 0)

    请注意未使用百分比符号 (%)。

  2. 将诸如以下内容的验证错误消息添加到“机率”字段中:

    如果机率大于或等于 40%,则收入必须大于 0。

  3. 为“收入”字段配置以下验证规则:

    (> 0 AND [<Probability>]>= 40) OR [<Probability>]< 40

  4. 将诸如以下内容的验证错误消息添加到“收入”字段中:

    如果机率大于或等于 40%,则收入必须大于 0。

在表达式中使用相关字段

相关字段是值取决于外键的联接字段。联接字段 是记录类型上的某个字段,该字段使用外键引用另一个记录类型上的字段。一个相关字段示例是“商机”记录类型中的 AccountName 字段。“商机”记录类型中的 AccountName 字段是值取决于 AccountId 外键字段的联接字段,其中此外键字段引用“客户”记录类型。

如果表达式必须确定相关字段的值,建议使用 JoinFieldValue 函数并获取字段的最近值,方法是引用 ID 字段,即外键字段。否则,表达式的结果可能错误,且表达式值的结果可能无效。有关联接字段和 JoinFieldValue 函数的更多信息,请参阅 JoinFieldValue

相关主题

请参阅以下主题以了解相关的 Expression Builder 信息:


已发布 9月 2017 Copyright © 2005, 2017, Oracle. 保留所有权利。Legal Notices.