zoukankan      html  css  js  c++  java
  • 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
      在这里插入图片描述
      (2) 前端修改:需要在i18n文件夹下新增语言配置文件;然后修改app.js里的语言配置:
      $translateProvider.preferredLanguage(‘your language’);

    3. 实现效果

    审核人选择页面:
    在这里插入图片描述
    流转条件配置页面:
    在这里插入图片描述

  • 相关阅读:
    Jquery easyui中的有效性检查
    当执行批量删除时
    nested exception is com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1044 > 1024
    java的四种取整方法
    springmvc乱码解决
    跨域
    垂直居中
    js判断数组
    安装 node-sass 的正确姿势
    js判断qq浏览器
  • 原文地址:https://www.cnblogs.com/cnsec/p/13286594.html
Copyright © 2011-2022 走看看