低代码

本页目录

自动执行业务流程

更新时间:2023-09-12 09:47:44

自动执行业务流程

我应使用哪个自动化工具?

智企易码提供多种工具,以自动执行贵组织的重复性业务流程,目前支持: 工作流批准 。 您需要的最佳自动化工具取决于您将进行自动化的业务流程的类型。

记录如何获得批准

示例:经理批准其直接下属的休假请求。 例如,在员工请求休假时,休假时间将由员工经理批准。您需要确保休假请求已提交待批准时,正确的人员(员工经理)会收到该请求。 要自动执行您组织的审批记录进程,请创建批准进程。

当记录有特定值时该如何做

示例:在相关个案升级后,通知客户所有人。 我们可使用工作流工具,即创建工作流规则来解决此使用案例。

我们建议优先考虑使用工作流来实现自动执行业务流程,特别是为那些可简化为“如果/则”语句的业务流程。例如:如果进行了个案升级,则通知客户所有人。

自动化工具的功能

以下是各个自动化工具所支持的所有功能和操作的分类列表。使用该列表以找出最适合您业务需求的工具。

- 工作流 批准
实现方式 工作流规则 批准过程
复杂度 单个“如果/则”语句。 单个“如果/则”语句。
开始时间 更改记录后 提请批准后
基于时间的操作 未来可能支持 不支持
- 支持的操作 -
更新字段 记录或其父记录 记录或其父记录
其他操作 敬请期待 敬请期待

工作流规则

工作流可让您自动化标准内部过程和进程,以在贵组织范围内节省时间。工作流规则是一组工作流指示的主要容器。这些指示始终可以用“如果/则”语句概括。

例如:如果下雨,请带雨伞。

工作流规则可以分为两个主要组成部分。

  • 条件:“如果/则”语句的“如果”部分。换言之,记录内容必须为真,才能让工作流规则执行关联操作。
  • 操作:“如果/则”语句的“则”部分。换言之,在记录满足条件时执行的操作。

在下雨示例中,条件是“如果下雨”,则操作是“带雨伞”。如果条件未满足(未下雨),则不会执行操作(无需带雨伞)。

在记录满足工作流规则的所有条件时,则将会执行规则的操作,请参考执行自动操作来了解智企易码目前支持的操作。

工作流规则

注意事项

  • 每个工作流规则适用于单个对象。
  • 删除自定义对象时,将同时删除自定义对象上的工作流规则(暂时未实现)。
  • 并不保证单个操作和操作类型执行的顺序。首先,执行字段更新操作,然后是其他操作。
  • 在新建或编辑对象时,会先执行该对象的验证规则,再执行该对象的工作流规则,但是就目前来说,工作流规则中的操作,比如字段更新并不会再次触发验证规则。

何时触发?

  • 保存记录或创建记录时都可以触发工作流规则,这取决于您的规则条件。在保存记录后创建的规则不会追溯地影响这些记录。
  • 修改或创建记录可能会触发多个规则。
  • 工作流规则自动触发且用户不可见。

相关术语

当描述工作流特性和功能时,使用了以下术语。

工作流规则 满足其指定的条件时,工作流规则将使工作流开始操作。您可以配置工作流操作,使其在某记录符合工作流规则中的条件时立即执行,或设置时间触发器,使其在特定日执行工作流操作。

工作流操作 工作流操作是在满足工作流规则条件时触发的相关操作,智企易码暂时只支持字段更新这一种操作,未来可能会扩展更多操作类型,比如发送出站消息或电子邮件等。

字段更新 字段更新是使用新值自动更新字段的操作。

出站消息 出站消息会将信息发送到指定端点,例如外部服务。

智企易码暂时未支持基于时间的工作流规则。

创建工作流规则

通过创建工作流规则可使贵组织的标准过程实现自动化,可选择规则涉及的对象并配置其条件来开始创建一个新的工作流规则。

创建工作流规则

  • 在“设置”-“流程自动化”中选择“工作流规则”,点击新建。

  • 选择要应用该工作流规则的对象。

  • 为工作流规则输入API名称和显示名称。

  • 需要启用该规则请勾选启用按钮。

  • 设置评估条件:

    • 新建时:在每次创建记录时评估规则条件。如果满足规则条件,运行规则。忽略现有记录的所有更新。使用此选项时,规则对每个记录的运行次数从不超过一次。
    • 新建时,和每次编辑时:在每次创建或更新记录时评估规则条件。如果满足规则条件,运行规则。使用此选项时,只要记录满足规则条件,每次编辑记录时,规则都会重复运行。(如果您选择此选项,则无法添加依赖于时间的操作)
    • 新建时,或编辑数据导致条件成立:(默认)在每次创建或更新记录时评估规则条件。对于新记录,在满足规则条件的情况下运行规则。对于更新的记录,仅在将记录从未满足规则条件到更改为满足规则条件的情况下执行规则。使用此选项时,规则对每个记录可以运行多次,但是,如果记录编辑与规则条件无关,则规则不运行。

    例如,假设要使业务机会记录满足规则条件,业务机会可能性必须大于 50%。如果创建一个可能性为 75% 的业务机会,则工作流规则运行。如果编辑该业务机会,将可能性更改为 25%或80%,则此次编辑不会导致规则运行。如果随后编辑该业务机会,将可能性从 25% 更改为 75%,则此次编辑导致规则运行。最后一次编辑时规则运行的原因是,记录从不满足规则条件更改为满足规则条件。

  • 为工作流规则输入描述。

  • 输入您的规则条件:输入评估结果为“真”或“假”值的公式。当公式返回“真”值时,会触发该工作流规则执行后续设置的操作。

  • 向工作流规则添加即时操作,完成后点击保存。

可向工作流规则添加自动操作,目前暂时只支持即时操作,未来可能会支持依赖于时间的操作,请参考执行自动操作

工作流规则示例

想要寻找方法让工作流规则帮助简化业务?观看这些示例。

自动启用新用户

  • 对象: 用户
  • 描述: 确保每个新用户为启用状态,以便用户可登录到智企易码。
  • 评估条件: 当记录进行以下操作时验证规则:新建时。
  • 规则条件: 公式:active <> TRUE
  • 即时操作: 字段更新:将启用设置为“真 (True)”。
    • 要更新的对象:用户
    • 要更新的字段:active
    • 新字段值类型:特定值
    • 指定新字段值:勾选勾选框

设置默认业务机会名称

一些公司的业务机会命名习惯是“客户名: 业务机会名称”。要在贵组织中自动确定每个业务机会的默认名称,请创建下列工作流规则。

  • 对象: 业务机会
  • 描述: 强制业务机会命名约定。
  • 评估条件: 当记录进行以下操作时验证规则:新建时,或编辑数据导致条件成立
  • 规则条件: 公式:NOT(CONTAINS( Name, Account.Name ))
  • 即时操作: 字段更新:将业务机会名称设置为指定公式值。
    • 要更新的对象:业务机会
    • 要更新的字段:Name
    • 新字段值类型:使用公式设置新值
    • 公式:Account.Name & ": " & Name

为个案设置目标解决日期

本示例会根据关联客户上的字段值设置个案解决日期。将会把客户对象上的“支持级别”字段设置为自定义选项列表字段,其中包含 3 个值:基础、标准和高级。此外,个案对象上的“目标解决日期”字段也是自定义日期字段。

使用下列三个工作流规则示例,以根据相关客户的支持级别设置个案的目标解决日期。

a.设置基本支持的解决日期

  • 对象: 个案
  • 描述: 为享受基本支持的客户设置个案目标解决日期:从现在起 30 日内。
  • 评估条件: 当记录进行以下操作时验证规则:新建时。
  • 规则条件:公式:Account.Support_Level__c = "Basic"
  • 即时操作:字段更新:设置目标解决日期为指定公式值。
    • 要更新的对象:个案
    • 要更新的字段:Closed_Date__c
    • 新字段值类型:使用公式设置新值
    • 公式:Today() + 30

b.设置标准支持的解决日期

  • 对象: 个案
  • 描述: 为享受标准支持的客户设置个案目标解决日期:从现在起 14 日内。
  • 评估条件: 当记录进行以下操作时验证规则:新建时。
  • 规则条件: 公式:Account.Support_Level__c = "Standard"
  • 即时操作: 字段更新:设置目标解决日期为指定公式值。
    • 要更新的对象:个案
    • 要更新的字段:Closed_Date__c
    • 新字段值类型:使用公式设置新值
    • 公式:Today() + 14

c.设置高级支持的解决日期

  • 对象: 个案
  • 描述: 为享受高级支持的客户设置个案目标解决日期:从现在起 5 日内。
  • 评估条件: 当记录进行以下操作时验证规则:新建时。
  • 规则条件: 公式:Account.Support_Level__c = "Premium"
  • 即时操作: 字段更新:设置目标解决日期为指定公式值。
    • 要更新的对象:个案
    • 要更新的字段:Closed_Date__c
    • 新字段值类型:使用公式设置新值
    • 公式:Today() + 5

候选人接受作业时更新应用程序记录

此工作流规则会在候选人接受任务时关闭应用程序记录。在主表/子表关系中的对象之间支持跨对象字段更新到主记录。

  • 对象: 候选人
  • 描述: 当自定义“候选人”对象的候选人状态字段更改为“已接受”时,为自定义“应用程序”对象将应用程序状态字段更改为“已关闭”。
  • 评估条件: 当记录进行以下操作时验证规则:新建时,或编辑数据导致条件成立
  • 规则条件: 公式:Status = "Accepted"
  • 即时操作: 字段更新:在父“应用程序”记录上更改应用程序状态字段为“已关闭”。
    • 要更新的对象:应用程序
    • 要更新的字段:Status
    • 新字段值类型:特定值
    • 指定新字段值:选择框中选择“已关闭”选项

覆盖默认业务机会结束日期

  • 对象: 业务机会
  • 描述: 将默认结束日期从该季度结束改写为业务机会创建后的 6 个月。
  • 评估条件: 当记录进行以下操作时验证规则:新建时
  • 规则条件:公式:Closed = false
  • 即时操作:字段更新:使用指定公式将业务机会关闭日期设置为创建日期之后六个月。
    • 要更新的对象:业务机会
    • 要更新的字段:Close_Date
    • 新字段值类型:使用公式设置新值
    • 公式:DATE( YEAR(TODAY()) , (MONTH(TODAY()) + 6), DAY(TODAY()))

批准过程

您很可能熟悉工作流形式的过程自动化。智企易码的批准过程,则在自动化处理方面更进一步,让您可以指定批准该类记录所必需经历的审批步骤序列。还可以指定在各个时间点、各个审批步骤的自动处理操作。

批准过程的处理逻辑如下图所示:

批准过程

以付款为例,处理过程可能包括:

  • 付款记录提交批准时,记录将被锁定,这时用户无法修改它。同时,应将该付款记录的状态修改为“已提交”。
  • 不同情形下,审批的过程可能有所区别。如果付款金额为 500元及以下,则无需审批、直接获准;如果付款金额高于 500元,向部门经理发送批准请求;如果付款金额高于5000元,部门经理批准后,还需向分管副总发送批准请求。
  • 如果付款申请得到了所有人的批准,则该付款记录的状态会更改为“已批准”,同时解锁记录。如果付款申请未获批准,则该付款记录的状态会更改为“已拒绝”,同时解锁记录。

批准的限制和注意事项

在您通过批准过程自动化某些操作之前,应注意相关限制和注意事项。

因为用户无法了解当他们单击提交待批准时将触发哪个批准过程,用户需要熟悉每个批准过程的条件以及每个批准过程的任务。如果记录不符合输入条件或者他们不是任何批准过程的允许提交者,智企易码会显示出错。

配置批准时的注意事项

当创建或编辑批准过程时,谨记批准如何兼容工作流规则等功能。在您开始之前,绘制出您的批准过程步骤。

  • 批准条件

在批准条件中,请勿引用如:NOW()等解析随机值的表达式。这样,如果需要重新评估条件,则每次会以相同方式评估记录。

  • 批准中的字段更新操作

为批准操作执行的字段更新不会触发工作流规则或者授权过程。

  • 预期错误

考虑审查批准错误的内容。这样,您可以预测常见问题和配置您的批准过程,减小错误发生的可能性。

设置批准人时的注意事项

当您为特定的批准步骤指定批准人,应谨记一些事情。

(1)具有以下权限的用户可以响应批准请求。

  • “修改所有数据”权限
  • 对象的“修改所有”权限

(2)确保所分配的批准人有权读取批准请求的记录。例如,不能查看费用记录的用户无法查看费用批准请求。

(3)可让用户手动选择批准人的批准过程也会让用户将自己选为批准人。

(4)你可以在单一步骤中向相同用户多次分配批准请求。但是,系统只向该用户发送一个请求。

管理批准时的注意事项

当维护现有批准过程(包括启用或删除它们)时应谨记一些东西。

(1)管理权限 具有其中一些权限的用户被视为批准管理员。

  • 指定对象的修改所有对象级别权限
  • 修改所有数据用户权限 批准管理员可以:
  • 批准或拒绝等待批准的请求,无需作为批准过程的一部分。
  • 编辑已锁定以待批准的记录。

(2)启用批准过程

  • 批准过程必须至少具有一个步骤,您才能启用它。
  • 在您启用批准过程之前,请先测试它。
  • 启用批准过程后,您无法添加、删除或更改步骤的顺序或更改拒绝或跳过行为,即便该过程无效。

(3)删除批准过程 删除批准过程之前:

  • 确保其已停用。
  • 删除与其相关联的等待批准请求。

相关术语

与批准过程相关的术语如下,请参考。

  • 批准操作 执行批准过程时系统自动执行的批准操作,例如锁定记录、更新相关字段。

  • 批准过程 批准过程用于配置记录如何在智企易码中批准。批准过程会指定批准的每个步骤,包括请求批准发起对象和过程中每个时间点或环节需要采取的操作。

  • 批准通知 批准通知是应用程序通知,用于通知相关处理人,记录已提交待批准。

  • 批准步骤 批准步骤定了一个特殊的批准过程的所有批准环节。每个步骤会决定哪些记录可以转到该步骤以及分配批准请求的处理人。

    第一步指定如果记录不前进到该步骤时应如何处理。后来的步骤指定如果批准人拒绝该请求会怎样。

  • 分配的批准人 分配的批准人是负责响应某批准请求的用户。

  • 重新分配批准人 重新分配批准人是由分配的批准人重新指定处理批准请求的人员。

  • 初始提交操作 当用户第一次提交记录以待时,发生初始提交操作。默认情况下,记录被锁定。

  • 最终批准操作 在完成所有必需批准时实施最终批准操作。

  • 最终拒绝操作 当批准人拒绝请求并转为最终拒绝状态时发生最终拒绝操作。

  • 批准过程实例(申请单) 批准过程实例代表批准过程的一个实例。每次记录提交待批准时,都会创建一个新的批准过程实例。

  • 批准过程实例节点(签核历程) 批准过程实例节点代表批准过程步骤的一个实例。记录每次在批准过程中输入一个步骤时,系统均会创建过程实例节点。当记录不满足步骤条件时或批准过程实例在未输入步骤的情况下完成,则系统不会创建过程实例节点。

  • 调回操作 当提交的批准请求被调回时,发生调回操作。默认情况下,记录解除锁定。

  • 记录锁定 记录锁定防止用户编辑记录(无论字段级安全或共享设置如何)。默认情况下,智企易码锁定等待批准的记录。只有管理员可以编辑锁定的记录。

设置批准过程

如果批准是适合您业务流程的自动化工具,请遵循以下步骤为您的组织创建新的批准。

  • 在“设置”-“流程自动化”中选择“批准过程”,点击新建。
  • 为批准过程输入API名称和显示名称。
  • 选择要应用该批准过程的对象。
  • 依次输入序号。
  • 输入您的指定条目条件:输入评估结果为“真”值的公式。当公式返回“真”值时,会触发该批准过程执行后续设置的操作。
  • 设置记录可编辑性属性:
    • 仅管理员可在批准过程中编辑记录:默认唯一选项。
  • 允许提交人取消申请时请勾选按钮。
  • 设置批准过程自动操作的锁定记录,以及对应的字段更新,完成后点击保存。
  • 新建批准过程成功后,点击显示名称进入详情页,在页面底部向批准过程添加批准步骤。
指定条目条件

如果你希望所有记录都通过批准过程,可在指定条目条件中输入1=1。如果只考虑特定记录类型,可输入进入的条件或公式。当提交的记录满足条件或公式,则可进入该批准过程。

示例

只有折扣批准截止日期小于 30 天时,该公式才允许记录进入该批准过程。

(discount_approvalDate < (closeDate - 30)

只有审批状态instance_state为草稿、拒绝或取消时,当前记录才会出现“提请批准”的按钮。

```javascript
ISPICKVAL(instance_state, 'draft') || ISPICKVAL(instance_state, 'rejected') || ISPICKVAL(instance_state, 'terminated') 
编辑锁定的记录

记录提交等待批准时,它将被锁定,以防止用户在批准过程中编辑该记录。只有管理员可以编辑在该批准过程中被锁定的记录。

批准过程的自动操作

当发生操作时,每个批准过程都会组织到操作组中,例如初始提交。若要将自动操作添加到批准过程,确定要将其添加到哪个操作组中。

  1. 初始提交 用户第一次提交记录以待批准。默认操作:记录锁(锁定)
  2. 批准步骤批准 已针对记录提供该步骤的所有必要批准。默认操作:无
  3. 批准步骤拒绝 批准人拒绝该步骤的请求。默认操作:无
  4. 最终批准 已针对记录提供所有必要批准。默认操作:记录锁(锁定)
  5. 最终拒绝 批准人拒绝该请求,它转至最终拒绝状态。默认操作:记录锁(解锁)
  6. 调回 调回提交的批准请求。默认操作:记录锁(解锁)

添加批准步骤

控制批准步骤

通过设置步骤标准控制哪些记录作为批准步骤的一部分。您还可以指定不符合步骤标准时如何处理记录。

标准选项

如果所有记录都通过该批准步骤,选择 所有记录均应进入此步骤。

如果仅特定类型的记录应进入此过程,请选择如果满足以下条件,则进入此步骤...,然后输入需满足的条件。

如果不满足条件,则:

  • 批准记录:批准请求,执行所有最终批准操作。
  • 拒绝记录:拒绝请求,执行所有最终拒绝操作。
  • 转到下一步: 跳过此步骤并转到下一步。只有当这是以后的步骤时可用。

当您在第一步应用该选项时,谨记:

  • 如果记录不符合任何随后步骤的标准,记录会被拒绝。
  • 如果您删除以后的所有步骤,智企易码会拒绝该记录。 当您在其他步骤中应用该选项时,谨记:
  • 如果您删除以后的所有步骤,智企易码会结束该过程。

分配批准人

指定在该步骤中将批准请求发送给谁。

选择分配的批准人

指定将批准分配给谁。

  • 允许提交人手动选择批准人(默认值):提示用户选择下一个批准人。
  • 自动分配至批准人: 分配批准请求到指定用户、指定审批角色、指定审批岗位、指定相关用户字段处理。
选择多个批准人

只有当选中自动分配至批准人时可用。

  • 基于首次回复的批准或拒绝:

批准请求的第一个响应决定批准记录还是拒绝记录。

  • 要求所有选定批准人的一致批准:

只有在每个人都选择批准时记录才被批准。如果任何批准人拒绝请求,批准请求都会被拒绝。

  • 重新分配的批准人也可批准该请求:

批准人重新分配的批准人不能再次分配批准请求;他们只能批准或拒绝它们。

指定拒绝行为

配置批准人拒绝请求后的结果。

  • 执行所有拒绝操作:即使已经批准之前的步骤,仍然能拒绝请求。执行此步骤中指定的所有拒绝操作以及所有最终拒绝操作。

  • 仅执行此步骤的拒绝操作:拒绝请求,将批准请求返回前一个批准人。执行为此步骤指定的所有拒绝操作。

选择自动批准人

通过以下选项之一设置下个批准人。

  • 提交人手动指定用户来批准所有批准请求。

自动分配至批准人:

指定批准人

  • 指定用户处理
  • 指定审批角色
  • 指定审批岗位
  • 指定相关用户字段
启用批准过程

在为批准过程创建至少一个步骤后,启用该过程。

  1. 进入批准流程,选择需启用的批准过程。
  2. 确保配置正确。
  3. 点击最右边的倒三角框,选择启用。

使用批准过程

您的管理员可以设置批准过程,可让您和其他用户提交记录进行批准,从而产生批准请求。

提交记录以待批准

对记录具有读取权限,您可以直接从记录中提交记录以待批准。

  • 转至您希望提交以待批准的记录。
  • 确保准备提交。 在提交待批准记录之前,记录必须满足活动批准过程的条件。如果您不确定要求满足哪些条件,请咨询您的管理员。
  • 提交批准。 如果批准过程适用于记录,会自动开始批准过程。该按钮在提交记录后不可用。

撤销批准请求

如果您提交了记录以待批准,但是突然需要更新记录中的信息,可以调回批准请求。然而,您能否调回批准请求取决于您的管理员如何配置批准过程来处理提交的记录。 撤销批准请求所需用户权限需对记录具有读取权限。

  • 转至与批准请求有关的记录的详细页面。
  • 在批准历史相关列表中,调回批准请求。

回应批准请求

您收到批准请求时,通过批准、拒绝或重新分配进行回应。

批准历史

若要跟踪批准流程中的记录,查看其批准历史相关列表。

  • 已提交:记录已提交待批准。
  • 待处理:记录已提交待批准,正在等待批准或拒绝。
  • 已批准:记录已批准。
  • 已拒绝:记录已被拒绝。
  • 已重新分配:记录已提交待批准,但被分配至其他批准人。
  • 已调回:提交记录用于批准,但是从批准过程调回。

工作流操作

自动操作是可重复使用的组件,可在后台执行某种操作,如更新字段或发送电子邮件。创建自动操作后,可将其添加到 工作流规则 、 批准过程 或其他自动过程中。

字段更新

字段更新操作允许您自动更新字段值。您可以将字段更新与工作流规则、批准过程关联。

开始之前,检查要更新字段的类型。只读字段(如公式字段或自动编号字段)不可用于字段更新。

创建字段更新的途径

  • 您可以在新建、编辑工作流规则时选择已有字段更新选项或创建新的字段更新操作并与之关联。此时会自动选中当前工作流规则基于的对象为该字段更新记录所基于的对象值并且锁定该选项不让更改。
  • 您可以在新建、编辑批准过程时选择已有字段更新选项或创建新的字段更新操作并与之关联。此时会自动选中当前工作流规则基于的对象为该字段更新记录所基于的对象值并且锁定该选项不让更改。
  • 您也可以在设置应用中定位到菜单流程自动化-工作流操作-字段更新,然后新建字段更新或编辑某条已有的字段更新记录。这些字段更新记录都可以作为工作流规则、批准过程或其他自动过程的备选字段更新操作。
如何创建字段更新

新建字段更新

  • API名称:在 API 中输入引用该组件的唯一名称。API 名称只能包含小写字母、数字,必须以字母开头,不能以下划线字符结尾或包含两个连续的下划线字符。
  • 显示名称:输入此字段更新的名称,下拉框选项或列表界面将显示该名称。
  • 对象:该字段更新记录所基于的对象。
  • 要更新的对象:选择您要更新其字段的对象,默认为当前选定的对象,您也可以改为选择主表/子表关系中的父对象。
  • 要更新的字段:选择要更新的字段。只显示选定的“要更新的对象”中的字段。
  • 新字段值类型:支持空值、使用公式设置新值、特定值三个选项。当选择第二个选项时,将根据后续填写的“公式”内容设置新字段值;当选择第三个选项时将使用后续填写的“指定新字段值”内容设置新字段值;如果需要清除该字段已有值为空,请选择第一个选项,但是该选项对必需字段、复选框和其他某些字段类型不可用。
  • 公式:当上述“新字段值类型”选定为“使用公式设置新值”时,必填输入公式内容,关于如何填写公式内容,请参考通过公式计算字段值。值得注意的是此处公式内容可引用的字段是基于上述“要更新的对象”中选中的对象值,而不是“对象”中选中的对象值。
  • 指定新字段值:当上述“新字段值类型”选定为“特定值”时,此处内容必填,其输入框将根据上述“要更新的字段”值的字段类型显示为不同的控件,比如布尔类型字段将显示为勾选框,日期时间类型字段将显示为日期时间控件等。
  • 描述:输入此字段更新的描述。
  • 字段更改后重新评估工作流规则:选择是否希望在字段值更新后重新评估此对象上的工作流规则。如果选择此选项,则如果字段更新导致对字段值的更改,智企易码将重新评估该字段更新关联对象上的所有工作流规则,从而触发满足条件的所有工作流规则。
将操作与工作流规则和批准过程相关联

您可以在新建、编辑工作流规则或新建、编辑批准过程时选择已有字段更新选项或创建新的字段更新操作来与之关联。

跨对象字段更新

对于所有自定义对象和一些标准对象,您可以创建对子表记录的更改会更新相关主表记录上字段的操作。跨对象字段更新可用于自定义对象与自定义对象之间的主表/子表关系、自定义对象与标准对象之间的主表/子表关系以及标准对象与标准对象之间的主表/子表关系。

例如,在自定义招聘应用程序中,创建一个当候选人(子表)接受职位时将应用程序(主表)的状态设为“关闭” 的工作流规则。再比如,创建规则,以便在客户添加个案留言时将个案状态从“等待客户回复”更改为“进行中”。

重新评估工作流规则的字段更新
  • 如果在字段更新操作中启用字段更改后重新评估工作流规则,则如果字段更新导致对字段值的更改,智企易码将重新评估字段更新关联对象上的所有工作流规则。
  • 如果任何触发的工作流规则导致另一个字段更新,该字段更新也支持工作流规则重新评估,那么就会发生多米诺效应,由于新触发的字段更新,更多的工作流规则可以重新评估。这种工作流规则重新评估和触发的级联在启动它的初始字段更新之后最多可以发生五次。
  • 确保您的工作流规则没有设置为创建递归循环。例如,如果Rule1的字段更新触发了Rule2,而Rule2的字段更新触发了Rule1,那么递归触发器虽然做了限制最多只会触发5次,但是这不只会影响性能,也可能造成因为触发了最大循环次数而忽略了后续部分流程规则的重新评估。
  • 是否勾选字段更新上的"字段更改后重新评估工作流规则"选项,只标识是否重新评估字段更新关联对象上的工作流规则。
  • 字段更新配置的要更新的对象不是字段更新本身的关联对象时,如果勾选"字段更改后重新评估工作流规则"选项,保存字段更新记录时会报错,因为不支持也不需要重新评估跨对象的字段更新关联对象上的工作流规则。
  • 字段更新配置的要更新的对象不是字段更新本身的关联对象时,始终不会重新评估字段更新本身关联对象上的流程规则,但是始终会重新评估要更新的对象上的工作流规则。
字段更新操作的注意事项

了解如何在工作流中充分利用字段更新操作,在为工作流规则或批准过程创建字段更新时,请考虑以下事项:

字段更新处理
  • 如果单个工作流规则包含的多个字段更新对同一字段应用不同值,则字段更新的结果将不可预知。
  • 字段更新可能会影响基于过滤条件的相关列表中的信息。例如,如果设置为要更新业务机会的某个字段(如金额或结束日期),它将影响业务机会的“阶段历史”相关列表,比如增加或减少了一些记录的显示。
  • 工作流规则或批准过程中的字段更新无法验证此前有效的字段。出现失效错误的原因是,字段更新操作不会触发验证规则。
  • 工作流规则可以使以前有效的字段失效。失效是因为根据工作流规则的操作对记录的更新不会触发验证规则。
关于跨对象字段更新的说明
  • 智企易码支持跨对象字段更新,即支持更新字段更新本身关联对象的父对象上的字段。
  • 跨对象字段更新上不能勾选"字段更改后重新评估工作流规则"选项,因为不支持也不需要重新评估跨对象的字段更新关联对象上的工作流规则。
  • 跨对象字段更新始终不会重新评估字段更新本身关联对象上的流程规则,但是始终会重新评估要更新的对象上的工作流规则。
  • 当触发跨对象的字段更新时,不但会重新计算依赖了该字段的公式、累计汇总字段,其级联触发的字段更新操作也会级联触发相关公式、累计汇总字段的重新计算。
字段更新操作和自定义字段
  • 更改自定义字段的类型之前,请确保它不是工作流字段更新的目标,也未被将在新类型下失效的字段更新公式所引用。
  • 您无法删除被字段更新所引用的自定义字段。
字段更新操作限制
  • 字段更新的结果不会触发其他规则,如验证规则。
  • 公式、累计汇总、自动编号这些只读的字段类型不能用于字段更新操作,但是普通的只读字段是可以用于字段更新操作的。
  • 如果字段更新引用了特定的用户,则不能停用该用户。例如,如果您的字段更新被设计为将记录的所有者更改为张三,那么在禁用张三这个用户之前请更改对应的字段更新。
  • 如果一个字段被“将该字段设置为空值”的字段更新使用,则不应该将其设置为通用必填字段。
  • 在触发字段更新时,只有字段值发生变化时才会触发更新操作,也才会进一步触发级联的其他操作,比如重新评估关联对象上的工作流规则,重新计算公式、累计汇总字段等。

工作流通知

通知操作允许您自动发送工作流通知给指定人员。您可以将工作流通知与工作流规则、批准过程关联。

创建工作流通知的途径

  • 您可以在新建、编辑工作流规则时选择已有通知选项或创建新的通知操作并与之通过对象关联。
  • 您可以在新建、编辑批准过程,批准步骤时选择已有通知选项或创建新的通知操作并与之通过对象关联。
  • 您也可以在设置应用中定位到菜单流程自动化-工作流操作-工作流通知,然后新建通知或编辑某条已有的通知记录。这些记录都可以作为工作流规则、批准过程或其他自动过程的备选通知操作。

创建工作流通知

  • 对象:该通知操作记录所基于的对象。
  • API 名称:在 API 中输入引用该组件的唯一名称。API 名称只能包含小写字母、数字,必须以字母开头,不能以下划线字符结尾或包含两个连续的下划线字符,下拉框选项或列表界面将显示该名称。
  • 标题公式、正文公式:根据公式动态生成标题和正文,关于如何填写公式内容,请参考通过公式计算字段值。值得注意的是此处公式内容可引用的字段是所选对象的字段。
  • 选择分配的用户:指定通知的接受者,可以是固定的人员,也可以根据对象的人员字段动态指定。
在工作流规则和批准过程中使用工作流通知

您可以在新建、编辑工作流规则或新建、编辑批准过程,批准步骤时,在各种操作分组中选择已有工作流通知选项或创建新的工作流通知操作。

有新消息到达时,在页面右上角显示推送通知提醒,点击推送通知小铃铛图标,可以查看通知中心。

对象验证规则

在智企易码中,用户可以为每一个对象创建验证规则。验证规则主要用于验证该对象的数据是否符合特定的规则。当用户对于对象的某个字段的更改不符合用户创建的验证规则时,智企易码会拒绝保存用户的输入。

比如:用户可以创建验证规则,使得每一个“业务机会”的“金额”数值必须大于1000,否则拒绝保存。验证规则适用于对象被添加或更改的所有场景。最常见的情况是用户在“编辑”界面点击“保存”按钮时进行验证。

验证规则可以包含公式或表达式,它们会计算一个或多个字段中的数据,然后返回“真”或“假”值。验证规则还包含当规则返回“真”值时要显示给用户的错误消息,以红色文本显示。

管理验证规则

使用验证规则提高数据质量。在某个对象管理详细页的对象验证规则子表栏,您可以:

  • 创建验证规则
  • 单击规则名称旁边的编辑来修改验证规则
  • 单击规则名称旁边的删除来删除验证规则
  • 单击验证规则名称以查看更多详细信息

创建验证规则

  • 在“设置”应用中点击“对象设置”-“对象”并点击某条详细记录,在对象详细信息页面找到对象验证规则子表,单击新建。
  • 为验证规则输入规则名,该名称作为API名称是唯一标识符,只能包含小写字母、数字,必须以字母开头,不能以下划线字符结尾或包含两个连续的下划线字符。
  • 如果想立即启用请勾选上已启用。
  • 可以为验证规则输入说明。
  • 设置错误条件公式,用于验证字段的表达式,请参阅通过公式计算字段值
  • 设置错误消息,当字段的错误条件公式成立时向用户显示的消息。
  • 选择错误位置,确定错误消息显示在页面上的位置。[暂不支持,目前是统一显示在右上角。]
  • 设置完成后点击保存。
使用验证规则
  • 要使用验证规则,请先确保验证规则已经启用。
  • 可以通过创建记录或编辑现有记录来测试验证规则效果。
  • 当单击保存时将执行验证规则:

如果所有数据有效,将保存此记录。

如果任一数据无效,将显示关联的错误消息,不保存该记录。

  • 如果验证不通过,用户可进行必要的更改后,再次单击保存,直到所有验证规则都通过才能成功保存记录。
编写提示
  • 验证规则是在记录被保存前触发的,如果验证不通过会阻止记录保存。
  • 请考虑可能会使记录无法通过验证的所有设置,比如字段更新、隐藏字段、公式及汇总字段。
  • 务必小心,不要为同一个字段创建多个冲突的验证规则,否则用户将无法保存记录。
  • 设计不当的验证规则会妨碍用户保存有效数据。启用验证规则之前,确保您已充分测试该验证规则。
  • 在验证公式中引用相关字段时,确保已部署了这些对象及字段。
  • 验证规则中公式应该按返回值为布尔类型来编制,返回值为TRUE才验证不通过。
  • 不必使用 IF 函数来开始验证规则公式。只需使用布尔错误条件表达式即可。例如: 正确:CloseDate < TODAY() 错误:IF(CloseDate < TODAY(), TRUE, FALSE)
  • 请记住,当验证规则包含 BEGINS 或 CONTAINS 函数时,它会将空白字段处理为有效字段。例如,如果您的验证规则要测试资产序列号是否以“3”开始,则序列号为空白的所有资产都将视为有效。
  • 使用验证规则时需要注意字段值为空的情况,请使用 ISBLANK 函数判断字段是否为空。例如,要验证自定义字段不为空且不能等于1,请使用下面的验证规则以在该字段为空白或1时显示错误:OR (ISBLANK (field__c), field__c=1)
  • 使用验证规则时需要注意字段值为空的情况,请使用 ISBLANK 函数判断字段是否为空。例如,要验证自定义字段不为空且不能等于1,请使用下面的验证规则以在该字段为空白或1时显示错误:OR (ISBLANK (fieldc), fieldc=1)

与公式字段不同,在配置验证规则时不可以配置空值处理方式,如果公式中引用了值为空的数值类型的字段时,是按0值处理的,即 ISBLANK(count__c) 这样的表达式,只要count__c字段类型是数值,任何情况下在验证规则中它的返回值都是TRUE,另一个空值处理函数 BLANKVALUE 也类似。

编写验证规则错误消息的提示
  • 提供操作指导。 “无效条目”这样的错误消息并没有告诉用户哪类条目有效。编写一些更为具体的消息,例如“结束日期必须晚于今天”。
  • 始终包括字段标签。 用户可能不知道哪个字段验证失败,尤其当错误消息不是出现在字段旁边而是出现在右上角时。
  • 如果需要多语言提示错误信息,可能需要翻译错误消息。您可以在错误信息中直接输入对应的i18n翻译key,比如email_format_error,这会显示错误信息“邮件格式错误”。

验证规则注意事项

在实施验证规则前,请先了解以下注意事项。

  • 当一条验证规则失败时,智企易码不会继续对该字段或页面中的其他字段检查其他验证规则。
  • 如果工作流规则、批准过程等配置了字段更新,且要更新的字段上正好配置了验证规则的话,当触发字段更新时,不会触发相关字段的验证规则。
  • 由于公式字段中的公式是在记录被保存(afterInsert/afterUpdate)后才触发的,所以如果验证规则中引用了公式字段,有可能与设计验证规则的初衷不同,因为触发验证规则时其中引用的公式字段值可能是之前已经在数据库中保存过的老值,而且在公式字段本身值变更时不会再次触发执行验证规则。
  • 与公式字段一样,如果验证规则中引用了累计汇总字段,当汇总字段值在变更时也不会触发执行验证规则,比如主记录有一个验证规则,要求累计汇总字段值必须小于100。如果用户对相关子记录的更改将输入超过 100 的值,希望用户无法保存该子表记录,实际上子记录变更时主记录的验证规则是不会被触发的,要实现这个需求,通常的做法是把验证规则配置在子表而不是主表中,类似:lookup_mater_object_field.summary_value + current_value >= 100

验证规则示例

请按您的实际目的,查看以下有参考价值的验证规则示例。用户保存记录之前,验证规则会验证用户在记录中输入的数据是否符合您指定的标准。 有关这些示例中使用的任何公式函数的详细信息,请参阅 公式运算符和函数。

客户编号为数字

  • 说明: 验证非空客户编号是否为数字。
  • 公式:
AND(
   NOT(ISBLANK(AccountNumber)),
   NOT(ISNUMBER(AccountNumber))
)
  • 错误消息:客户编号不为数字。
  • 错误位置:客户编号

智企易码公式引擎暂时不支持ISNUMBER函数,可以用正则代替,请参考 REGEX ,该示例可替换为:

AND(
   NOT(ISBLANK(AccountNumber)),
   NOT(REGEX(AccountNumber, "[0-9]+(.[0-9]+)*"))
)

中国手机号码包含11位数字

  • 说明:验证电话号码的格式是 13800000000。这通过使用 REGEX 函数检查数字是否采用 13800000000 格式的11位数字工作。
  • 公式:NOT(REGEX(Phone, "1[3-9][0-9]{9}"))
  • 错误消息:中国手机号码必须为此格式: 13800000000。
  • 错误位置:手机号

日期必须属于当月

  • 说明:验证自定义日期字段包含的日期属于当年当月。
  • 公式:
OR (
   YEAR( My_Date__c ) <> YEAR ( TODAY() ),
   MONTH( My_Date__c ) <> MONTH ( TODAY() )
)
  • 错误消息:日期必须属于当月。
  • 错误位置:我的日期

My_Date__c是一个日期类型字段,而不是日期时间类型字段,否则上述公式会报错。

如果需要,请关注TODAY函数对于时区方面的偏差,以防止出现预期不一致的效果,可以参考:有关日期时间和时区的备注

< 上一篇:字段类型索
下一篇: 公式运算符和函数 >