系统验证
对于每个审批操作,将在适用的情况下执行以下验证过程。
提升/审批的系统验证
用户是对实体具有写入访问权限的有效所有者
实体的当前位置与分配的用户相同
实体的计算状态为正常/无数据/系统已更改
对于启用了“按期间增强组织”的应用程序,实体的计算状态和节点状态都必须为“正常”/“无数据”/“系统已更改”。
锁定的系统验证
为了锁定当前期间的实体,必须锁定该实体同一年份内的所有先前期间。如果当前期间是当年的第一个期间,则必须锁定上一期间(其为上一年的最后一个期间)。
无阶段相关性的分阶段审批
由于不依赖于阶段,因此在同一期间内,系统不会检查是否先锁定阶段 1,然后才能锁定阶段 2。
系统不检查上一期间锁定。对于锁定期间检查,上一期间的所有阶段都被锁定,以便锁定当前期间的任何阶段。
例如,为了锁定 March, NY: GroupA,必须锁定此实体的所有先前期间和所有阶段。因此,必须锁定 Feb, NY: GroupA/GroupB/GroupC 和 Jan, NY: GroupA/GroupB/GroupC。
含阶段相关性的分阶段审批
对于含相关性的分阶段审批,除了上一期间检查外,系统还会进行检查,以确保同一期间内的所有先前阶段都已锁定。
系统在锁定每个阶段时检查计算状态。为了锁定阶段,实体状态必须为正常、SC 或无数据。
例如,阶段 1 可能已锁定,但后来您为尚未锁定的阶段 2 输入了更多数据。为了锁定阶段 2,必须先合并实体,使计算状态为正常,然后才能锁定阶段 2。
解锁的系统验证
为了解锁当前期间的实体,必须解锁该实体同一年份内的所有未来期间(含数据)。
无阶段相关性的分阶段审批
由于不依赖于阶段,因此在同一期间内,系统不会检查是否先解锁阶段 2,然后才能解锁阶段 1。
系统会进行检查,以确保含数据的未来期间的所有阶段都未锁定,以便解锁当前期间的任何阶段。
例如,为了解锁 March, NY: GroupA,假定含数据的最后一个期间为 May(五月),则必须解锁所有未来期间(April(四月)和 May(五月))中的所有阶段。必须解锁 April, NY: GroupA/GroupB/GroupC 和 May, NY: GroupA/GroupB/GroupC。
含阶段相关性的分阶段审批
对于含阶段相关性的分阶段审批,除了未来期间检查外,系统还会进行检查,以确保同一期间内的所有后续阶段都未锁定。
用户定义的验证
分阶段审批验证基于为每个阶段中的单元格定义的规则。
您可以定义所需的任何验证规则。您可以在数据表单中创建规则,也可以使用计算脚本进行计算,然后将结果分配给您在表单中作为验证规则的一部分引用的帐户。
如果要为不同的阶段使用不同的验证规则,则可以包括特定的验证帐户作为阶段定义的一部分。
由于自定义验证是可选的,您可能不需要对某些阶段进行验证,而对其他阶段实施验证。
阶段相关性验证
如果为审批单元层次选择“阶段相关性”选项,则在允许特定审批操作之前,会进行额外的验证检查。以下审批操作需要额外的阶段相关性检查:
启动
排除
提升
驳回
取得所有权
重新打开
批准
锁定
解锁
阶段相关性检查不适用于数据输入,因为在实体启动之前,用户无法开始输入数据。
审批单元层次内的实体组有三个需要为相关性检查考虑的属性。
审批状态验证(执行操作后的新审批状态)
阶段 N+1 的审批状态必须等于或低于阶段 N
位置验证(执行操作后的新位置)
级别 X 实体的位置必须等于或低于级别 X+1
所有者和审核者验证
同一位置内的所有者和审核者没有相关性验证。因此,提升路径内同一位置的所有者、审核者 1 和审核者 2 被认为是相同的。
要执行审批操作,必须通过审批状态验证和位置验证的相关性检查。如果验证的任何部分失败,则审批操作将失败。
除了审批操作的验证规则外,系统还会验证用户何时可以访问数据以及他们可以执行的操作。请参阅“数据验证规则”。