关于您的文档和流程的一些重要问题无法直接通过报告文档字段的值进行回答。贵组织可能需要衡量仅可从多个字段的组合或通过分析字段值的历史记录派生的值。

您可通过创建特殊的公式类型字段并在报告中使用该字段来实现此目的。公式字段使用类似 Excel 的公式语言通过其他字段值、一组内置函数和标准数学运算符计算结果。

有关支持的函数和运算符的信息,请参阅 Vault 公式引用指南:文档报告指标 (PDF)。

如何创建公式字段

要创建公式字段,请执行以下操作:

  1. 管理 > 配置 > 文档字段单击您想要在其中定义此公式字段的文档类型。
  2. 单击添加... 并选择新字段
  3. 选择公式作为字段类型。
  4. 为字段输入一个标签。此标签在使用字段作为报告列、筛选器或分组依据字段时显示。
  5. 设置状态。如果设为活动,该字段将在您保存后立即可用。如果设为非活动,您必须先更改状态,然后字段才可用。
  6. 选择 Vault 应为字段的最终值四舍五入的小数位数。
  7. 使用来自字段函数面板的项,并根据需要使用数学运算符,以在公式字段中创建一个表达式。要将项从这些面板移动到公式字段,请高亮显示该项并单击箭头图标。公式字段就像一个基本的文本编辑器。有关可用函数和运算符的更多信息,请参阅 Vault 公式引用指南
  8. 单击验证。Vault 将告知您的表达式是否有效。
  9. 选择字段值处理选项。将空白值视为零让 Vault 在即使有一个或多个值为空白值的情况下也能够执行计算。将空白值视为空白会在公式包含空白值的情况下返回 null 或无效结果。了解有关空白值处理的更多信息。
  10. 可选:为帮助内容输入文本。此文本在用户将光标悬停在文档字段名称上时显示。
  11. 单击保存

空白值处理

将空白值视为空白选项用于字段值处理时,一个空白字段值会导致整个表达式返回 null/空白值。请参阅公式表达式 Document.days_in_draft__c + Document.days_pending_qc__c 的以下示例。

处于“草稿”状态的天数等待质检的天数结果
12517
505
9空白空白

历史记录函数在计算的字段从未指定过值时返回空白值。例如,函数 firstTimeinValue ( Document.status__v, "In MLR Approval") 在文档从未处于过正在进行 MLR 批准状态的情况下返回空白值。

如果一个公式中包含多个函数,例如 numTimesInValue(Document.status__v,"Draft") + numTimesInValue(Document.status\_\_v, "Pending QC"),则 Vault 始终将此公式字段的空白值视为空白(并非零)。您可以通过为每个函数创建单独的公式字段并在最终公式字段内使用这些字段来绕过它,例如 Times.in.draft__c + Times.in.pending.qc__c

日期字段的时区处理

Vault 以 UTC 时间在数据库中存储日期日期时间类型字段的所有值。计算 dateDiff 值时,我们使用以下规则进行时区转换:

  • 对于涉及两个日期字段的计算,我们不执行时区转换。考虑日期字段,而不包括时间。
  • 对于涉及两个日期时间字段的计算,我们不执行时区转换。两个字段值都以 UTC 时间存储,因此函数不受时区影响。我们执行日期对日期计算,并将值四舍五入到最近的整数。对于引用这些字段的报告,值可以在定义为准确反映日期差异时包括小数位。
  • 对于涉及日期字段和日期时间字段的计算,我们将日期时间值从 UTC 时间转换为 Vault 的默认时区设置时间,并截断值的时间部分。然后,我们执行日期到日期计算。Vault 不考虑夏令时。

公式示例

这些常见公式字段可能有助于在 Vault 中分析文档和流程。您可以将公式表达式直接复制到公式文本字段中。

审批时间(总计)
dateDiff(firstTimeInValue(Document.status__v, "Pending QC"), firstTimeInValue(Document.status__v, "Approved for Production"))
审批时间(生产时间)
dateDiff(firstTimeInValue(Document.status__v, "Approved for Production"), firstTimeInValue(Document.status__v, "Approved for Distribution"))
已停用:在到期前撤回
dateDiff(firstTimeInValue(Document.status__v,"Withdrawn"), Document.expiration_date__c)
筛选器:大于 1 配合使用
已过期:过期时撤回
dateDiff(firstTimeInValue(Document.status__v, "Withdrawn"), Document.expiration_date__c)
筛选器:等于 0 配合使用
审查周期数
numTimesInValue(Document.status__v, "In MLR Review")