
# 什么是BPM
BPM（Business Process Management）即业务流程管理，源自业界BPMN 2.0标准。AstroZero基于该规范实现了自己的业务流程管理系统，由于BPM本身已经成为了业界一套行业规范，因此在AstroZero称实现此类流程的引擎为BPM流程编排，以下简称BPM。
与服务编排类似，BPM也是一套图形化的流程编排引擎，但是BPM着重于构建带有用户交互行为的业务流程，例如审批流、工单派发流程等。
BPM与服务编排有以下三点核心区别：
- BPM描述的是用户交互流程，使用用户任务将人和页面进行了关联，而服务编排描述的则是单次的业务操作。
- BPM内置实现了顺序审批、或签、会签、投票等任务分派规则，可基于用户任务实现复杂的任务分派规则，应对复杂的交互流程。
- BPM对每次用户交互都会产生流程历史并可以在流程历史中查看，对于非交互类流程这是非必要的。
以上也是BPM更适合制作交互式流程的原因。人工交互流程需要页面的结合、需要对复杂的分配规则的封装，需要能够进行事后审计的能力。而对于系统的服务编排是不必要的，并且，记录日志反而可能会造成不必要的性能损失。
因此，结合两者的不同场景，BPM可与服务编排结合进行使用。服务编排用于实现系统的具体逻辑操作，BPM通过调用服务编排、关联用户任务与页面，实现多次人机交互的流程，例如审批流、工单分发等场景。
#### 初识BPM
在经典版应用设计器中，将光标放在应用的某个目录上，单击"+"，选择"BPM"。在弹出的"添加工作流"中，设置BPM的标签和名称后，单击"添加"，即可进入BPM设计界面。
图1创建BPM   
![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960286009.png "点击放大")
BPM设计界面由上方按钮区域、左侧面板图元区域、中间画布工作区域和右侧属性配置区域四部分组成。
图2BPM设计界面   
![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933046884.png "点击放大")
表1BPM设计界面说明 
| 序号 | 分类     | 功能说明                                                                                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|
| 1  | 按钮区域   | 功能按钮区域，包括锁定、解锁、启用（或者禁用）、保存、另存为新版本或者新BPM、运行、操作回退、撤销回退、启用流跟踪器以及切换版本的操作。支持快捷键操作，即可脱离鼠标直接用键盘操作。                                                                                                                                                                                                                                                                                                                                              |
| 2  | 面板图元区域 | BPM的组成图元，详细介绍请参见[BPM图元](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0635.html)。                                                                                                                                                                                                                                                                                                                                    |
| 3  | 画布工作区域 | 设计操作区域，在该区域可对BPM进行具体流程设计、组件放置。 选中图元或者泳道按"Delete"，可进行删除操作。                                                                                                                                                                                                                                                                                                                                             |
| 4  | 属性配置区域 | 整个BPM、泳道（Lane）或者图元属性设置区域。 - 当选择BPM中图元时，右侧配置区域为该图元的属性设置区域。  - 当选择BPM中空白区域时，右侧配置区域为该BPM的设置区域。  - 当选择泳道左侧标签时，右侧配置区域为该泳道的属性设置区域。   |
   
#### BPM开发流程
在低代码平台中，创建一个BPM的流程，如[图3]所示。
图3BPM开发流程   
![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960126209.png)
如下是开发BPM的主要步骤，可根据以下步骤快速开发BPM。如何创建一个端到端的BPM，请参见[简易出差审批应用开发](https://support.huaweicloud.com/bestpractice-astrozero/astrozero_bestpractice_0000.html)。
表2开发BPM步骤 
| 步骤序号 | 相关术语           | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | 操作                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| 1    | 创建BPM          | - 新建：创建空白BPM。  - 导入既有：将同一租户或平台中已有的BPM以导入的方式创建BPM，方便用户快速继承已有BPM的配置，增加效率。  - 基于模板：系统预置了一些典型场景的BPM模板，可基于这些模板，快速创建BPM。目前系统内置的模板有以下几类： - 通用：基础审批流、多步骤审批流和并行审批流。  - HR：请假申请、出差申请、绩效管理、试用期确认和工作交接。  - 金融：贷款申请、ERP信用提升和商业计划申请。  - 项目：进度管理、版本管理和发布管理。     | - 根据需要选择不同的方式，创建BPM。  - 若业务场景贴合已有模板，建议选择"基于模板"来快速创建BPM。快速创建后，只需要创建泳道中配置的工作队列即可使用BPM。                                       |
| 2    | （可选）BPM的开始类型   | - BPM的开始类型，可以从"Star"开始图元下进行配置。开始种类包括如下两种： - 自定义：默认为"自定义"，即不指定事件的起因，即不需要指定触发条件，主要用于接口调用进行启动。  - 表单：使用表单或页面启动BPM。选择该项时，需要配置具体的表单、标准页面或高级页面。     一般选择"自定义"，当BPM由表单或者页面启动时，选择"表单"类型。                                                                                                                                                                                                                                                                                                                                                                    | 选中"Star"开始图元，设置开始类型，一般选择"自定义"。当BPM由表单或者页面启动时，选择"表单"类型。                                                                                                                                                                                                                                                          |
| 3    | 创建或配置BPM变量     | 创建对象或全局结构体。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | 在全局上下文中，根据实际情况进行创建。                                                                                                                                                                                                                                                                                             |
| 4    | 定义泳道并选择图元      | - 一条泳道代表BPM流程处理中的一种用户角色。  - BPM中每个泳道都和队列一一对应。处于不同泳道的图元，分别归属不同的队列中的用户去处理。当图元由系统处理时，泳道中不用配置队列。  - BPM编辑器提供了一些图元，作为编排BPM使用。                                                                                                                                                                                                                                                                                                                                                                                                                                                             | 1. 在BPM开发页面，单击"Add Lane"，添加泳道。根据场景定义泳道。  2. 根据逻辑设计，从BPM编辑器面板区域，拖拽相应类型下的图元至画布中。                                      |
| 5    | 配置图元           | 在泳道中，选中图元后，即可根据需要在右侧属性配置区，进行配置。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | 可以根据需要选择图元，进行配置。 - 如果使用了"规则"图元，需要提前创建好决策表。  - 如果使用了"用户任务"图元，且任务界面要用到标准表单，建议提前创建好标准表单。   |
| 6    | 连接图元并指定图元的逻辑关系 | 根据实际业务场景，需要确定BPM中用到的图元和逻辑顺序。根据逻辑实现，需要在拖入并配置好所有图元后，将图元按照逻辑顺序有序的连接起来。在执行BPM时，系统会根据连线顺序有序执行图元任务，从而实现整个流程运转。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | 根据逻辑设计有序连接各图元。                                                                                                                                                                                                                                                                                                  |
| 7    | （可选）配置运行态界面布局  | 在配置完整个BPM图元及流程后，还可根据需要选择性的配置BPM运行态界面布局。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | -                                                                                                                                                                                                                                                                                                               |
   
