热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

flowable工作流流程变量_信也科技工作流平台的技术实践

1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体

1 背景

随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:

  • 目前OA流程引擎无法满足企业特定业务流程需求,且移动端体验差,定制化困难,使用门槛高,影响简单流程快速上线
  • 企业内部系统无统一流程引擎平台,面向公司HR、运维、资产等相关IT系统流程化需求对接复杂,系统内集成流程功能重复开发,对接无统一标准造成严重资源浪费,主要体现方面如下:

f7de7fc50bb965ccf61bc60b3e1e290c.png

图1 现状&项目背景

2 开源框架选型

2.1 技术选型-流程引擎

2970ae8a75f18ca6664f4b319d366a4e.png

图2 开源技术对比

Flowable是一个流行的轻量级的采用Java开发的业务流程引擎。通过Flowable流程引擎,可以部署BPMN2.0的流程定义(一般为XML文件),通过流程定义创建流程实例,查询和访问流程相关的实例与数据。Flowable可以灵活地添加到我们的服务、应用、架构中,可以通过引入Flowable jar包,或者直接使用Flowable的Rest API来进行业务流程引擎的操作,相关核心服务如下:

b9569da45babe3bf2bffd0d28630c9c3.png

图3 Flowable引擎架构

a3cb7db226e918898b6eaa623208540c.png

图4 Flowable引擎服务

  • RepositoryService:操作和管理流程定义和部署,deployment(部署)是ProcessEngine的基本单元
  • RuntimeService:每个流程都可以创建许多的运行实例,RuntimeService启动流程的实例,检索和存储实例的变量信息
  • IdentityService:管理组和用户的身份认证信息
  • FormService:流程表单引擎相关服务操作
  • HistoryService:检索ProcessEngine的历史数据,和相关流程数据
  • ManagementService:检索数据库的元数据和表的信息
  • DynamicBpmnService:动态的改变流程的定义

2.2 技术选型-Web端

1afa052d73d60047663a7ff114e0ece9.png

图5 Web选型对比

2.3 信也工作流解决方案

  • 整体架构设计

引入Flowable之后,将相关服务处理分为身份认证服务,报表服务、任务调度、流程监控服务等、底层Flowable提供流程引擎相关基础能力

2e720b9d562e4df9e120267d01497c42.png

图6 整体设计

  • 系统架构设计

a5e37fd3f5912b20eb5c8c7bc38d5181.png

图7 系统架构设计

核心功能点:

  • BPM流程设计引擎

基于BPM2标准的流程设计规范,可视化流程设计与配置,构建企业业务流程服务:灵活配置实现跨系统的业务编排整合,为业务高效流转提供了坚实的技术支持,无需代码即可轻松创建、改变、维护业务流程应用,核心体现如下:

  1. 支持多节点类型:目前支持审批节点&服务节点&抄送节点&延时节点&流程分支,同时支持节点类型自定义扩展

8abd1ffefc92bafc4549b24c1f2efbae.png

图8 流程节点类型

  1. 分支判定规则:满足不同条件的数据通过不同的分支进行流转,合理使用让业务流程更“智能”

    bb24d680d70936ca4fad83a5db9f3bfb.png

    图9 流程分支

  2. 动态节点负责人:不仅可以固定流程节点负责人,还可以根据表单内的字段值,http和DB动态数据以及企业架构等设置动态的节点负责人

b28455411c7449d6b464121fc302f9c1.png

图10 关联组织架构

f1a818abb78370f8f2ff6983f68700df.png

图11 审批动态关联设置

  1. 节点权限控制:每个节点都可以单独配置对表单的操作权限

66a6e1b9e6b0122bf47f586721e456e8.png

图12 节点字段权限设置

  • Form表单引擎设计

像“乐高”一样,拖拽式设计表单,字段类型丰富 还可以定义表单样式,设置数据联动、公式函数、逻辑规则、来源标记等 强大、实用且美观。自定义您的企业数据入口,目前支持多达18种基础控件,支持几十种常用表单控件及多种校验规则在线配置功能:

c49ae05915ee367db180b59f408ec233.png

图13 表单组件

a7e603967fdd6c6ae06ce0e04911094a.png

图14 表单设计

  • 支持动态数据源接入
  1. 支持HTTP/DB 两种方式

  2. 支持动态JS脚本对内容进行转换

  3. 支持流程&前端调用

20aa0250884b03b07c517509bfda819b.png

图15 动态数据设置
  • 中国特色功能
  1. 支持抄送:类似邮件抄送

  2. 支持代办:指定他人代理审批

  3. 动态加签:临时增加流程内的动态审批人

  • 三方集成—应用

ddae5d5771467a1d2a2bc24632145fa6.png

图16 三方集成-应用
  • 三方集成—接口

a0addacc3e30758fdd3293b89d384de6.png

图17 三方集成-接口

3 总结

信也工作流平台(BPM)目前能够高效的,较好的快速贴合业务需求,并根据流程配置中心的配置减少大量重复工作从而提高执行效率。同时集成到米粒通及企业微信中,提高了用户体验,目前不足的地方是产品的工具化属性,平台属性不够凸显。后续会继续贴合公司相关业务更好扩充产品能力。( 如下附部分使用效果图)

78626db5bf8c10d9f67361a8f324f190.png

图18 使用效果

eba61e0cabc8821a403ab5614962419d.png

图19 使用效果

【参考文献】

[1] Flowable文档: https://flowable.com/open-source/docs/bpmn/ch05a-Spring-Boot/[2] Flowable官网:https://flowable.com/open-source/[3] Vue文档:https://cn.vuejs.org/ [markdown-nice-docs(https://docs.mdnice.com "更多文档")


推荐阅读
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • 本文探讨了 Spring Boot 应用程序在不同配置下支持的最大并发连接数,重点分析了内置服务器(如 Tomcat、Jetty 和 Undertow)的默认设置及其对性能的影响。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文介绍了如何利用JavaScript或jQuery来判断网页中的文本框是否处于焦点状态,以及如何检测鼠标是否悬停在指定的HTML元素上。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • 本文介绍如何通过Windows批处理脚本定期检查并重启Java应用程序,确保其持续稳定运行。脚本每30分钟检查一次,并在需要时重启Java程序。同时,它会将任务结果发送到Redis。 ... [详细]
  • 作为一名新手,您可能会在初次尝试使用Eclipse进行Struts开发时遇到一些挑战。本文将为您提供详细的指导和解决方案,帮助您克服常见的配置和操作难题。 ... [详细]
  • 高效解决应用崩溃问题!友盟新版错误分析工具全面升级
    友盟推出的最新版错误分析工具,专为移动开发者设计,提供强大的Crash收集与分析功能。该工具能够实时监控App运行状态,快速发现并修复错误,显著提升应用的稳定性和用户体验。 ... [详细]
  • andr ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 本文详细介绍超文本标记语言(HTML)的基本概念与语法结构。HTML是构建网页的核心语言,通过标记标签描述页面内容,帮助开发者创建结构化、语义化的Web页面。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 深入解析三大范式与JDBC集成
    本文详细探讨了数据库设计中的三大范式,并结合Java数据库连接(JDBC)技术,讲解如何在实际开发中应用这些概念。通过实例和图表,帮助读者更好地理解范式理论及其在数据操作中的重要性。 ... [详细]
  • 创建项目:Visual Studio Online 入门指南
    本文介绍如何使用微软的 Visual Studio Online(VSO)创建和管理开发项目。作为一款基于云计算的开发平台,VSO 提供了丰富的工具和服务,简化了项目的配置和部署流程。 ... [详细]
author-avatar
小辣椒jie
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有