# 流程自动化

URL: https://docs.ones.cn/on-premises/7.33/product-manual/ones-project/automation-management

## 1.功能入口

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

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

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

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

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

### 3.1 触发规则的判断：

1. 系统会先判断用户的操作是否满足自动化规则里的「触发事件」；
2. 如有，系统会再判断用户操作的工作项是否满足自动化规则里的「触发条件」。
发生了指定的触发事件后，且工作项满足触发条件，系统才会执行自动化规则的流程。

### 3.2 流程的运行：

1. 执行自动化规则的流程时，系统按照用户的配置，从上到下线性的执行每一个流程。如果出现了流程分支（条件分支、联动数据对象），则会执行完当前分支后，继续回到主流程，直到执行完所有流程。
2. 如果出现了联动数据对象分支，则此分支的动作都是针对联动的数据对象执行的，而不是触发配置的工作项对象。
流程自动化具体的功能范围与解释，见以下详情页面：

- 触发事件
- 触发条件
- 联动数据对象
- 条件分支
- 条件校验
- 动作（区别当前工作流的「后置动作」）

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

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

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

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

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

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

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

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

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

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

- 最外层的流程节点，可以添加动作、条件分支、条件校验、联动数据对象；

- 条件分支流程里，只能添加联动数据对象、动作和条件校验；

- 联动数据对象流程里，只能添加动作和条件校验，不能添加条件分支。

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

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

## 5.流程自动化具体功能范围与解释

[配置自动化规则](https://docs.ones.cn/on-premises/7.33/product-manual/ones-project/automation-management/configure-an-automation-rule/)

[新建自动化规则](https://docs.ones.cn/on-premises/7.33/product-manual/ones-project/automation-management/create-an-automation-rule/)

[管理自动化规则](https://docs.ones.cn/on-premises/7.33/product-manual/ones-project/automation-management/manage-automation-rules/)

[查看运行历史](https://docs.ones.cn/on-premises/7.33/product-manual/ones-project/automation-management/query-the-running-history/)
