Activiti流程引擎与业务整合方案

0. 前言

前些时间,基于流程引擎activiti做了一个审批功能,但是扩展性并不是很好,对于新的流程的开发量还是比较大。于是需要进行升级改造,增强其通用性。

1. 场景

对于不同的业务类型,需要接入统一的审批流程进行审批。需要满足以下要求:

  • 不同业务类型需传入不同流程变量,以便于配置流转条件;
  • 流程配置界接入自有业务系统,支持审批人的选择
  • 审批人类型包括但不限于用户、角色
  • 流转条件配置需要简化,提高用户体验。
  • 流程配置界面支持多语言

2. 思路及方案设计

  • 需求:不同业务类型需传入不同流程变量,以便于配置流转条件
    方案:提供统一接口发起流程,入参传入流程变量

  • 需求:流程配置界接入业务系统,支持审批人的选择
    方案:改造activiti默认配置界面

    主要修改文件为:
    properties-assignment-controller.js
    assignment-popup.html

  • 需求:审批人类型包括但不限于用户、角色
    方案:统一作为候选人处理,以不同前缀区分,例如对于用户:user.10001,对于角色:role.10001等

    主要修改文件为:
    properties-assignment-controller.js
    assignment-popup.html

  • 需求:流转条件配置需要简化,提高用户体验
    方案:引入query builder组件,可视化配置条件,并将条件sql转化为流程引擎支持的UEL表达式。

    需要全局引入querybuilder库。需要修改的文件为
    condition-expression-popup.html
    properties-condition-expression-controller.js

    Go to : QueryBuilder文档

  • 需求:流程配置界面支持多语言
    方案:改造activiti前端和后端语言配置部分代码,实现多语言切换。

    需要修改地方有:
    (1) 后端修改:获取左侧图标栏配置的json文件,中文时取得中文json,英文时取得英文json
    Activiti流程引擎与业务整合方案_第1张图片
    (2) 前端修改:需要在i18n文件夹下新增语言配置文件;然后修改app.js里的语言配置:
    $translateProvider.preferredLanguage(‘your language’);

3. 实现效果

审核人选择页面:
Activiti流程引擎与业务整合方案_第2张图片
流转条件配置页面:
Activiti流程引擎与业务整合方案_第3张图片

你可能感兴趣的:(工作笔记)