为什么使用公式
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() 函数在公式中插入当前日期。