# 工作流 {#workflow}

## 概述
工作流由三种类型：
- 规则，规则有多个触发器组成，每个触发器可以定义在执行某个操作后执行一些负责的后台任务
- 状态流，不同事项的状态流定义，和项目设置的状态流一致
- 自动完成，类似Linux系统的Cron，用于定时执行一些任务





## 规则管理{rule}

点击左侧菜单某个项目的"工作流"，即可打开该项目的工作流的规则管理。或者以下Url访问：

`/p/{org_path}/{project_key}/rules`  

`{org_path}`：组织标识符，用于唯一标识一个组织。`{project_key}`：项目标识符，用于唯一标识一个项目。  
 示例 
`http://localhost:8888/p/default/p1/rules`

 ![规则管理界面](/workflow/rules.png)


### 创建规则
1. 在页面右上方点击「新建规则」
2. 填写规则基本信息：规则名称、规则描述，保存
![添加触规则](/workflow/rule_add.png)

3. 规则创建成功后，在规则列表中即可看到创建的规则
4. 创建规则后，没有任何触发器，系统提示添加触发器。
5. 或者鼠标移动到在要添加的规则上方，在右侧点击`+`按钮进行添加触发器。
6. 填写触发器名称和选择触发类型，最后保存即可。
 
  ![添加触发器](/workflow/trigger_add.png)

 触发类型有：可视化和代码脚本。
  - 可视化：满足触发条件后，拖拽组件加入到规则中，设置组件属性，即可触发规则
  - 代码脚本：满足触发条件后，执行编写代码脚本


## 触发器设计 
### 触发器类型为：可视化
  可视化触发器，满足触发条件后，拖拽组件加入到规则中，设置组件属性，即可触发规则。
  组件库中包含了常用的组件，如控制类：条件、并行过程、Sql条件、Ai执行条件；过程类：执行脚本、新增事项、更新事项、删除事项、移动项目、发送邮件、Http请求、发送企业钉钉机器人、发送企业飞书机器人等。
  组件的属性设置，根据组件的不同，属性设置也不同。

   触发器的条件：
   - 事件：触发规则的事件，如：事项创建、事项更新、事项删除、事项评论等。

  常用操作：
  - 组件的添加：鼠标点击某个组件库，在点击下方出现的`+`按钮，然后根据需求选择你要添加的组件，即可添加到规则中。
    添加组件： 
    ![添加组件](/workflow/trigger_add_com.png)

    支持的组件： 
    ![支持的组件](/workflow/trigger_add_com_support.png)

 - 组件的属性设置：鼠标移动到组件上，点击编辑按钮，即可设置组件。
    更新事项组件：
    ![更新事项组件操作](/workflow/issue_update_ui.png)

    发送邮件组件：
    ![发送邮件组件操作](/workflow/mail_send_ui.png)

    Http请求组件：
    ![Http请求组件操作](/workflow/http_request_ui.png)


  - 组件的删除：鼠标移动到组件上，点击删除按钮或按`delete`键，即可删除组件。

  - 组件的移动：鼠标移动到组件上，点击并拖动组件，即可移动组件。
 
  - 组件的保存：无需任何操作，系统自动保存每一次操作


## 状态流管理{status_flow}
  该功能与项目设置的状态流一致。
  状态流管理：

  ![状态流管理](/workflow/status.png) 

  ![状态流管理](/workflow/status_flow.png)


## 自动运行（定时任务）{autorun}
   
   该功能能根据时间的设置，定时执行任务。
 

  ![自动运行管理](/workflow/cron.png)

