组织可以自动设置文档或对象记录上的字段值,以确保数据完整性并简化用户互动。
使用的一些示例:
- 生成“智能作业编号”,其中合并了其他的文档字段,例如产品名称和批准日期
- 添加与另一个日期之间的日、月、年偏移量,以计算定期审查日期
- 在对象记录每次进入审查中状态时加一 (1),以使处于“审查中”状态的次数等字段递增
- 根据用户所处的时区,设置用户使文档进入其已批准状态的日期和时间
此功能将 Vault 的公式语言与生命周期状态入口操作、事件操作和工作流步骤结合使用。
如何配置入口操作
使用公式设置字段和更新记录字段入口操作,您可以在更改状态期间设置文档或对象字段的值。
用于文档的“使用公式设置字段”入口操作
要配置一个使用使用公式设置字段入口操作的入口操作:
- 在入口操作页面中,选择使用公式设置字段操作和一个要更新的文档字段。
- 单击计算器图标,以打开公式生成器。
- 使用来自字段、函数和运算符列表的项,在公式字段中创建一个表达式。要将一个项从这些列表中移到公式字段,请双击它。公式字段的操作就像一个基本的文件编辑器。请在《Vault 公式引用指南》中了解函数和有效的运算符。
- 单击检查语法。Vault 将告知您的表达式是否有效。
- 单击标题,以查看高级设置。
- 可选:选择一种运行时错误处理。这将决定当发生错误并导致 Vault 无法执行公式时会发生什么情况。
- 可选:为空白值处理选择一个选项。这将决定 Vault 如何处理公式内的空白字段值。
- 单击保存,以关闭公式生成器。
用于对象记录的“更新记录字段”入口操作
要配置一个使用更新记录字段入口操作的入口操作:
- 在入口操作页面中,选择更新记录字段操作和一个要更新的对象记录字段。
- 单击计算器图标,以打开公式生成器。
- 使用来自字段、函数和运算符标签页的项,在公式字段中创建一个表达式。单击一个项,以将其移到公式字段中。公式字段的操作就像一个基本的文件编辑器。请在《Vault 公式引用指南》中了解函数和有效的运算符。
- 单击检查语法。Vault 将告知您的表达式是否有效。
- 单击保存,以关闭公式生成器。
如何配置更新字段步骤
要使用公式生成器配置更新记录字段工作流步骤:
- 单击操作工作流步骤。
- 从步骤的操作菜单中,单击编辑。
- 选择一个要在工作流步骤中更新的字段。
- 单击计算器图标,以打开公式生成器。
- 使用来自字段、函数和运算符标签页的项,在公式字段中创建一个表达式。单击一个项,以将其移到公式字段中。公式字段的操作就像一个基本的文件编辑器。请在《Vault 公式引用指南》中了解函数和有效的运算符。
- 单击检查语法。Vault 将告知您的表达式是否有效。
- 单击保存,以关闭公式生成器。
支持的字段类型
此功能支持下列字段类型:
- 日期
- 数字
- 文本
- 是/否
- 选项列表
- 日期时间(只能通过文档生命周期入口操作使用)
不支持某些标准字段。不支持的字段包括:合并字段 (merge_fields__v)。
定义公式时,请确保公式中的运算符、函数、字段和值与字段的数据类型匹配。对于“日期”和“日期时间”字段类型,请参阅有关时区处理的信息。
运行时错误处理
这些选项控制着当 Vault 无法解析公式表达式时会发生什么情况。对于每个入口操作,您可以选择要应用的错误处理类型:
- 严格处理:如果在计算值时发生任何错误,Vault 将不允许文档更改状态。相反,文档会保持它的原始状态。如果状态更改是工作流的一部分,工作流将无法继续进行。
- 灵活处理:如果在计算值时发生错误,Vault 将修改结果,以允许完成公式计算。这意味着 Vault 可以将字段值设置为“0”或空白。
错误 | 灵活处理的结果 |
计算出的值大于字段的最大值 | 将字段设置为最大值 |
计算出的值小于字段的最小值 | 将字段设置为最小值 |
计算出的文本值大于字段的最大长度 | 在最大长度处将值截断 |
计算结果除以零 | 除法得到零 |
计算导致必填字段为空值 | 忽略“必填”设置 |
空白值处理
这将决定 Vault 如何处理公式内的空白字段值:
- 使用将空白值视为零时,Vault 将使用零来替代空白值,以使您能够完成公式计算。
- 使用将空白值视为空白时,一个空白字段值会导致整个表达式返回一个 null/空白值。
示例
公式:Document.days_in_draft__c + Document.days_pending_qc__c
处于“草稿”状态的天数 | 等待质检的天数 | “将空白值视为零”结果 | “将空白值视为空白”结果 |
5 | 5 | 5 | |
9 | 空白 | 9 | 空白 |
多函数公式中的空白
如果一个公式中包含多个函数,例如 numTimesInValue(Document.status__v, "Draft") + numTimesInValue(Document.status__v, "Pending QC"),则 Vault 始终将此公式字段的空白值视为空白(并非零)。