什么是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设计界面。
 
   BPM设计界面由上方按钮区域、左侧面板图元区域、中间画布工作区域和右侧属性配置区域四部分组成。
 
   | 序号 | 分类 | 功能说明 | 
|---|---|---|
| 1 | 按钮区域 | 功能按钮区域,包括锁定、解锁、启用(或者禁用)、保存、另存为新版本或者新BPM、运行、操作回退、撤销回退、启用流跟踪器以及切换版本的操作。支持快捷键操作,即可脱离鼠标直接用键盘操作。 | 
| 2 | 面板图元区域 | BPM的组成图元,详细介绍请参见BPM图元。 | 
| 3 | 画布工作区域 | 设计操作区域,在该区域可对BPM进行具体流程设计、组件放置。 选中图元或者泳道按“Delete”,可进行删除操作。 | 
| 4 | 属性配置区域 | 整个BPM、泳道(Lane)或者图元属性设置区域。 
 | 
如下是开发BPM的主要步骤,可根据以下步骤快速开发BPM。如何创建一个端到端的BPM,请参见简易出差审批应用开发。
| 步骤序号 | 相关术语 | 描述 | 操作 | 
|---|---|---|---|
| 1 | 创建BPM | 
 | 
 | 
| 2 | (可选)BPM的开始类型 | 
 一般选择“自定义”,当BPM由表单或者页面启动时,选择“表单”类型。 | 选中“Star”开始图元,设置开始类型,一般选择“自定义”。当BPM由表单或者页面启动时,选择“表单”类型。 | 
| 3 | 创建或配置BPM变量 | 创建对象或全局结构体。 | 在全局上下文中,根据实际情况进行创建。 | 
| 4 | 定义泳道并选择图元 | 
 | 
 | 
| 5 | 配置图元 | 在泳道中,选中图元后,即可根据需要在右侧属性配置区,进行配置。 | 可以根据需要选择图元,进行配置。 
 | 
| 6 | 连接图元并指定图元的逻辑关系 | 根据实际业务场景,需要确定BPM中用到的图元和逻辑顺序。根据逻辑实现,需要在拖入并配置好所有图元后,将图元按照逻辑顺序有序的连接起来。在执行BPM时,系统会根据连线顺序有序执行图元任务,从而实现整个流程运转。 | 根据逻辑设计有序连接各图元。 | 
| 7 | (可选)配置运行态界面布局 | 在配置完整个BPM图元及流程后,还可根据需要选择性的配置BPM运行态界面布局。 | - | 
 
   
    