# 流程自动化

## 1. 适用版本

此文档适用于「企业版/私有部署」的 ONES 系统 10 月底上线的版本。

❌  团队版/SaaS公有云

✅  企业版/私有部署

## 2. 功能入口

「团队管理员」可以在「配置中心」的「自动化规则」页面管理团队使用的流程自动化规则。

## 3. 流程自动化规则示例

新建自动化规则时，可以选择系统已预置的一些常用自动化规则模版，了解流程自动化如何工作：

* 根据所属项目，自动分配工单负责人
* 需求状态同步到来源工单的处理结果
* 任务都完成后，自动完成来源需求
* 子任务都完成后，自动完成父工作项

## 4. 流程自动化的工作方式

### 4.1 触发的判断

* 系统会先判断用户的操作是否满足自动化规则里的「触发事件」；
* 如有，系统会再判断用户操作的工作项是否满足自动化规则里的「触发条件」。

发生了指定的触发事件后，且工作项满足触发条件，系统才会执行自动化规则的流程。

### 4.2 流程的运行

* 执行自动化规则的流程时，系统按照用户的配置，从上到下线性的执行每一个流程。如果出现了流程分支（条件分支、联动数据对象），则会执行完当前分支后，继续回到主流程，直到执行完所有流程。
* &#x20;如果出现了联动数据对象分支，则此分支的动作都是针对联动的数据对象执行的，而不是触发配置的工作项对象。

### 4.3 预防流程出现无限循环

#### **自动化规则的动作触发另一个自动化规则的情况**

比如，规则 A 的动作是更新某一需求的优先级，而规则 B 的触发事件是需求的优先级发生变更，则规则 B 会被规则 A 的执行结果触发。

此时，如果规则 B 的动作又是更改需求的负责人，则 B 的动作执行完后，系统会判断到 B 刚刚执行的动作会再次满足 A 的触发配置，系统监测到循环，自动化规则运行终止。

综上，当两个规则会互相触发执行，系统会检测到循环，两个规则只会各自执行一次。

#### **自动化规则的动作再次触发自己的情况**

当规则自身会执行后再次满足自身触发，系统会检测到循环，规则只会执行一次。

### 4.4 条件分支与联动数据对象的约束

用户可以添加联动数据对象流程或条件分支流程，来配置成多个流程分支。

但是为了保证自动化规则的可读与可执行：

* 最外层的流程节点，可以添加动作、条件分支、条件校验、联动数据对象；
* 条件分支流程里，只能添加联动数据对象、动作和条件校验；
* 联动数据对象流程里，只能添加动作和条件校验，不能添加条件分支。

## 5. 流程自动化对工作流的影响

* 流程自动化的「动作」，可以将状态流转到「任意」该工作项类型下原本工作流配置的各个状态，不需要根据工作流的配置一步步流转，流程自动化的动作执行可以直接流转到指定状态。比如，需求类型下工作流 配置的状态是必须 A到B再到C，流程自动化的动作可以执行成功 A直接流转到C，不会因为有必走的中间态而执行失败；
* 「工作流」对应的状态流转「A 到 B」的某条「步骤」如果设置了相关「后置动作」，此时自动化规则的「动作」是执行更新状态到「B」，那么用户触发这条自动化规则并执行的「动作」不会并发原本工作流中的「步骤」中的「后置动作」；
* 自动化规则 1 的动作执行是让工作项状态 A 流转到 B，自动化规则 2 的触发是同样的工作项状态 A 流转到 B。那么自动化规则 1 和 2 连着执行。如果本身该工作项的状态流转 A 到 B 在工作流中有配「后置动作」，这个「后置动作」不会执行；
* 「工作流」的后置动作如果是满足某条「流程自动化」规则的触发条件，自动化规则会正常触发并执行流程。

&#x20;

流程自动化具体的功能范围与解释，见以下详情页面：

* [配置自动化规则](https://guides-ones.gitbook.io/guides/usage-guide/liu-cheng-zi-dong-hua/pei-zhi-zi-dong-hua-gui-ze)
* [管理自动化规则](https://guides-ones.gitbook.io/guides/usage-guide/liu-cheng-zi-dong-hua/guan-li-zi-dong-hua-gui-ze)
* [查看运行历史](https://guides-ones.gitbook.io/guides/usage-guide/liu-cheng-zi-dong-hua/cha-kan-yun-xing-li-shi)
