开发BMP
BPM全称为Business Process Management,即业务流程管理,源自业界BPMN 2.0标准。
与服务编排的区别
与服务编排类似,BPM也是一套图形化的流程编排引擎,但是BPM着重于构建带有用户交互行为的业务流程,例如审批流、工单派发流程等。
BPM与服务编排有以下三点核心区别:
- BPM描述的是用户交互流程,使用用户任务将人和页面进行了关联,而服务编排描述的则是单次的业务操作。
- BPM内置实现了顺序审批、或签、会签、投票等任务分派规则,可基于用户任务实现复杂的任务分派规则,应对复杂的交互流程。
- BPM对每次用户交互都会产生流程历史并可以在流程历史中查看,对于非交互类流程这是非必要的。
以上也是BPM更适合制作交互式流程的原因。人工交互流程需要页面的结合、需要对复杂的分配规则进行封装,需要能够进行事后审计的能力。而对于服务编排是不必要的,并且,记录日志反而可能会造成不必要的性能损失。
因此,结合两者的不同场景,BPM可与服务排结合进行使用:服务编排用于实现系统的具体逻辑操作,BPM通过调用服务编排、关联用户任务与页面,实现多次人机交互的流程,例如审批流、工单分发等场景。
场景描述
本示例基于BPM提供的出差申请模板,针对员工出差场景(即员工在出差前需要提交一个出差申请审批的电子流程,员工提交出差申请后,主管处理审批或拒绝提交人申请)为例,描述BPM的开发过程。
本示例中的出差审批应用主要包括如下功能:
- 基于工作流模板创建出差电子流。
- 发送邮件。
操作步骤
- 创建BPM。
- 设置工作流,配置各泳道处理人。