跳到主要内容

为什么使用公式

Steedos的公式引擎可以帮助非程序员快速实现一些简单的业务逻辑,类似Excel公式,它是从其他字段、表达式或值派生其值的一种算法,通过公式字段,可以帮助您根据其他字段自动计算一个字段的值。

什么是公式?

公式实例

Total_Pay = 
IF(Total_Hours__c <= 40, Total_Hours__c * Hourly_Rate__c,
40 * Hourly_Rate__c +
(Total_Hours__c - 40) * Overtime_Rate__c)

公式中的元素

公式可以包含对字段值、运算符、函数、文字表示值或其他公式的引用。使用任意或所有这些元素构建公式。

文字表示值

您输入的未经计算或更改的文本字符串或数字。

例如,如果您有一个总是要乘以金额的 2% 的值,公式将会包含该金额的 2% 的文字表示值:

ROUND((amount*0.02), 2)

此示例包含公式每个可能的部分:

  • 一个称为 ROUND 的函数,用于返回一个数值舍入为指定小数位数的数值。
  • 名为“金额”的字段引用。
  • 一个运算符 *,告诉公式生成器用文字表示值 0.02 乘以金额字段的值。
  • 一个文字表示数值 0.02。对所有百分数使用小数值。要在您的公式中包括实际文本,应将其括在引号内。
  • 此公式中的最后一个数字 2 是确定要返回的小数位数的 ROUND 函数所需的输入。

字段引用

使用合并字段引用另一个自定义字段或标准字段的值。

合并字段的语法对于标准字段是 field_name,对于自定义字段是 field_name__c。相关对象上合并字段的语法是 reference_to_field_name.field_name,必要时可在您的公式中插入合并字段,并且理论上支持无限层次的扩展引用,比如三层引用写法为reference_to1_field_name.reference_to2_field_name.field_name

支持引用当前登录用户相关字段,写法是以$user开头来表示当前登录用户的引用,并用点符号来连接后续要扩展引用的属性,比如$user.name表示引用当前用户的名称,$user.organization.name表示引用当前用户所属组织的名称。

要引用关联字段指向的记录id只要用点符号来连接_id即可,比如reference_to_field_name._id$user._id

除了可以用 $user 开头的表达式来引用当前登录用户信息,还可以用 $userSession 开头的表达式来引用当前登录用户的 UserSession。

公式中的运算符和函数

在构建公式时可以使用很多运算符和函数。

在哪些地方可以使用公式?

Steedos的许多地方都可以使用公式。开始使用公式之前,请了解其用法的差别。

  • 批准过程: 定义记录必须满足才能进入批准过程的条件。
  • 批准步骤: 定义记录必须满足才能进入批准步骤的条件。
  • 字段默认值: 在用户创建记录时向自定义字段应用一个值。使用公式可以定义默认值。用户可以更改默认值。默认值可以由使用您指定的值、合并字段或表达式的公式确定。
  • 公式字段: 使用您指定的值、合并字段或表达式。自动计算自定义字段的值。用户不能更改公式字段的值。
  • 验证规则: 防止用户在标准/自定义字段中输入无效值。验证规则可以基于公式,并在用户输入无效值时,向用户显示出错消息。
  • 字段更新: 自动将字段值更改为您指定的值。公式中可以包括其他值、合并字段或表达式。可以将字段更新设置为因工作流规则或批准过程而发生。
  • 工作流规则: 定义记录触发工作流规则时必须满足的条件。
用法何时执行?只读?可以指定空处理?
批准过程记录提交待批准不适用
批准步骤记录提交待批准不适用
字段默认值创建记录时
公式字段记录被保存后
验证规则记录被保存前不适用
字段更新工作流或批准过程中不适用
工作流规则保存记录时不适用

公式返回的数据类型

公式的数据类型决定预期从公式返回的数据的类型。

  • 文本: 返回字符串。除公式输出外,若还要显示文本,请将该文本放入引号中。对文本、多行文本、网址、邮件地址和自动编号等字段使用文本数据类型。
  • 布尔: 返回 true(真) 或false(假)。该字段在记录详细信息页面和报表中显示为复选框。使用 true 作为选中值,使用 false 作为未选中值。
  • 金额:  只能输入数值内容,默认2位小数,也可以指定小数位数。
  • 日期: 返回代表日历中某一天的日期。当前日期可通过在公式中调用内部函数 TODAY() 获得。
  • 日期时间: 返回表示时间中某一时刻的数据。日期时间字段包括日期,还包括由小时、分钟和秒组成的一天中的时刻。您可以使用 NOW() 函数在公式中插入当前日期和时间。
  • 数字: 返回正负整数或小数(最多 18 位)。Steedos对公式字段使用四舍五入平分规则。例如,12.345 变为 12.35 和 -12.345 变为 -12.35。
  • 百分比: 返回后跟百分号的百分比格式数字(最多 18 位)。百分比数据存储为小数,值为除以 100 后得到的小数,即 90% 等于 0.90。
  • 时间(暂不支持): 返回表示时间中某一时刻的数据,没有日期。时间字段包含小时、分钟、秒和毫秒的时间。您可以使用 TIMENOW() 函数在公式中插入当前日期。