KonBAI-Qruoyi-flowable-plus 初步简略体验报告
KonBAI-Q/ruoyi-flowable-plus
初步简略体验报告
报告人: mercymodest
项目地址
什么是工作流
工作流( Workflow ):是一项将系统任务或操作抽取,再按照预定业务流程进行组织、协调、并自动化执行的技术。
我们也可以简单理解==工作流是一种简化审批业务流程开发的技术==,其主要是解决一些业务场景硬编码方式的成本高、效率低、变更慢等问题的技术。
复杂的业务流程,实现复杂度比较高,因此开发周期长,开发成本高,效率也低,如果发生需求变更,对之前复杂的代码进行修改,同样需要更长的时间,因此响应变更的速度呢也表现得慢。
工作流技术来实现类似复杂的业务,只需要集成流程引擎、画出流程中使用的表单、最后画出整个业务流程图,交给流程引擎3步,即可完成需求的开发。在整个实现过程中,流程引擎是一个三方框架,不需要我们过多编码,而画表单、画流程就是在页面中进行一些拖拉拽的操作。因此整个过程下来我们编码量极少,需要的开发时间也极少,通过此方式呢就轻松的解决了开发周期长、成本高、效率低的问题,如果需求变更了,工作流技术只需要修复之前的表单或图即可,因此变更响应速度自然也必硬编码开发的速度要快。
什么是工作流引擎
流程引擎:是用于驱动或控制业务流程每一步自动执行的代码框架。
目前市面上主流的流程引擎框架有jBPMN、Activiti、Flowable、Camunda4款,其中Activiti开源度最大,因此是当下主流的首选流程引擎。
当前项目是的是
Flowable
什么是BPMN
BPMN:业务流程建模与标记语言(Business Process Model and Notation),是一种用于图形化表示和描述业务流程的标准化标记语言。目前主流的版本是BPMN2.0,由 Object Management Group(OMG)制定,并于2011年发布,发展至今,已被主流的流程引擎支持,并作为默认。
讲白了,BPMN和HTML类似都是标记语言,都是通过XML的格式来组织数据,供后端解析,也可转成图形化方式直观展示给用户看。
例:BPMN标准的流程文件内容
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bioc="http://bpmn.io/schema/bpmn/biocolor/1.0" xmlns:tns="http://www.activiti.org/testm1685269119653" xmlns:xsd="http://www.w3.org/2001/XMLSchema" id="hiss_flow_1695088765609" name="" targetNamespace="http://www.activiti.org/testm1685269119653">
<process id="hiss_process_12_1695088765717" name="hiss_process" isExecutable="true">
<startEvent id="StartEvent_1" />
<userTask id="Activity_1xi315o">
<incoming>Flow_109kst5</incoming>
</userTask>
<sequenceFlow id="Flow_109kst5" sourceRef="StartEvent_1" targetRef="Activity_1xi315o" />
</process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="hiss_process_12_1695088765717">
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
<dc:Bounds x="173" y="102" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1xi315o_di" bpmnElement="Activity_1xi315o">
<dc:Bounds x="330" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_109kst5_di" bpmnElement="Flow_109kst5" bioc:stroke="#060606" bioc:fill="none">
<di:waypoint x="209" y="120" />
<di:waypoint x="330" y="120" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>
转成直观的图:
BPMN设计器
虽然BPMN是一个标记语言,但是在实际中,我们很少直接去用它语法进行开发,而是直接使用流程设计器来画,而画用前端技术即可实现,在前端开源项目中有一个叫bpmn-js的开源项目,现在几乎成了画流程的标准,市面上的流程设计器基本都是基于它改造的。
工作流操作简要示例
新建流程分类(可选)
新增流程表单(一般强制性必要操作)
即每个流程节点,流转的时候(etc. 审批信息)需要填写的信息
新建流程模型
流程设计
流程设计一
流程设计二
流程部署
部署流程之后,即可使用当前设计的流程
流程发布
流程发布后
基于项目的工作流的简单演示流程
创建表单
流程模型
1 :提交请假关联表单
2: 流程审核节点
-
关联表单
-
关联操作人
发起流程
信息填写
提交流程之后
流程详情
使用manager
账号登陆系统
- 账户: manager
- 密码: 123456
处理工作流
完结后的审批
manager
(流程审批人)
admin
(流程发起人)
流程详情
项目社区成熟度
低