热门标签 | 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 "更多文档")


推荐阅读
  • 本文内容为asp.net微信公众平台开发的目录汇总,包括数据库设计、多层架构框架搭建和入口实现、微信消息封装及反射赋值、关注事件、用户记录、回复文本消息、图文消息、服务搭建(接入)、自定义菜单等。同时提供了示例代码和相关的后台管理功能。内容涵盖了多个方面,适合综合运用。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • ShiftLeft:将静态防护与运行时防护结合的持续性安全防护解决方案
    ShiftLeft公司是一家致力于将应用的静态防护和运行时防护与应用开发自动化工作流相结合以提升软件开发生命周期中的安全性的公司。传统的安全防护方式存在误报率高、人工成本高、耗时长等问题,而ShiftLeft提供的持续性安全防护解决方案能够解决这些问题。通过将下一代静态代码分析与应用开发自动化工作流中涉及的安全工具相结合,ShiftLeft帮助企业实现DevSecOps的安全部分,提供高效、准确的安全能力。 ... [详细]
  • 【Windows】实现微信双开或多开的方法及步骤详解
    本文介绍了在Windows系统下实现微信双开或多开的方法,通过安装微信电脑版、复制微信程序启动路径、修改文本文件为bat文件等步骤,实现同时登录两个或多个微信的效果。相比于使用虚拟机的方法,本方法更简单易行,适用于任何电脑,并且不会消耗过多系统资源。详细步骤和原理解释请参考本文内容。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 分享2款网站程序源码/主题等后门检测工具
    本文介绍了2款用于检测网站程序源码和主题中是否存在后门的工具,分别是WebShellkiller和D盾_Web查杀。WebShellkiller是一款支持webshell和暗链扫描的工具,采用多重检测引擎和智能检测模型,能够更精准地检测出已知和未知的后门文件。D盾_Web查杀则使用自行研发的代码分析引擎,能够分析更为隐藏的WebShell后门行为。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
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社区 版权所有