flowable 工作流使用

项目初始化

创建Springboot2.1.x项目,引入flowable依赖

org.flowable
flowable-spring-boot-starter
6.3.0

流程定义

定义工作流所用的xml文件,我这是使用的docker+flowable_ui

  1. docker run -p 8086:8080 flowable/flowable-ui -d 本地快速部署flowable_ui

  2. http://localhost:8086/flowable-ui/ 访问页面,默认账号密码是 admin/test
    [图片]

  3. 创建流程,或根据已有的bpmn xml导入为流程图,流程创建/修改完后再下载,我这里创建的是一个相对简单的流程,流程节点包含 开始、需求上报、指定人审批、领导审批、需求表单、结束,
    [图片]

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:flowable="http://flowable.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.flowable.org/processdef" exporter="Flowable Open Source Modeler" exporterVersion="6.8.0">
    <process id="request_flow" name="需求生命周期" isExecutable="true">
        <documentation>需求生命周期简化版</documentation>
        <startEvent id="startEvent1" name="开始" flowable:formFieldValidation="true"></startEvent>
        <userTask id="req_propose" name="需求上报" flowable:assignee="${applyUser}" flowable:formFieldValidation="true">
            <extensionElements>
                <modeler:initiator-can-complete xmlns:modeler="http://flowable.org/modeler"><![CDATA[false]]></modeler:initiator-can-complete>
            </extensionElements>
        </userTask>
        <sequenceFlow id="sid-769918D6-7E1F-4529-9DC8-077564D0B9C2" sourceRef="startEvent1" targetRef="req_propose"></sequenceFlow>
        <userTask id="approved_by_approver" name="指定人审批" flowable:assignee="11" flowable:formFieldValidation="true">
            <extensionElements>
                <modeler:initiator-can-complete xmlns:modeler="http://flowable.org/modeler"><![CDATA[false]]></modeler:initiator-can-complete>
            </extensionElements>
        </userTask>
        <userTask id="approved_by_manager" name="领导审批" flowable:assignee="12" flowable:formFieldValidation="true">
            <extensionElements>
                <flowable:taskListener event="assignment" class="com.zhaok.demo.handler.AutoTaskApproveListener"></flowable:taskListener>
                <modeler:initiator-can-complete xmlns:modeler="http://flowable.org/modeler"><![CDATA[false]]></modeler:initiator-can-complete>
            </extensionElements>
        </userTask>
        <userTask id="communicate" name="需求表单" flowable:assignee="20" flowable:formFieldValidation="true">
            <extensionElements>
                <modeler:initiator-can-complete xmlns:modeler="http://flowable.org/modeler"><![CDATA[false]]></modeler:initiator-can-complete>
            </extensionElements>
        </userTask>
        <sequenceFlow id="sid-80619D9F-DC58-44C0-BAA0-E251051A0990" sourceRef="approved_by_manager" targetRef="communicate"></sequenceFlow>
        <endEvent id="sid-7AC4C2DE-5739-4A7D-A880-AAA80EE00ED5" name="结束"></endEvent>
        <sequenceFlow id="sid-6CE4129E-9499-4B4C-B17D-AA5C154A4329" sourceRef="communicate" targetRef="sid-7AC4C2DE-5739-4A7D-A880-AAA80EE00ED5"></sequenceFlow>
        <sequenceFlow id="sid-470B2F01-6CCD-430C-8DBB-CA888B8E47F4" sourceRef="req_propose" targetRef="approved_by_approver"></sequenceFlow>
        <exclusiveGateway id="sid-51B59582-22C2-474F-99D4-ED55A6B12245"></exclusiveGateway>
        <sequenceFlow id="sid-A09C523A-6C2F-4747-9967-407F9015ED38" sourceRef="approved_by_approver" targetRef
flowable工作流可以应用于各种场景,包括但不限于以下几个方面: 1. 自动化流程:flowable工作流可以帮助实现各种自动化流程,例如审批流程、订单流程、报销流程等。通过定义流程模型、任务节点和流转规则,可以使得流程的执行自动化、标准化,并且可以方便地进行监控和管理。 2. 业务流程优化:对于复杂的业务流程,可以使用flowable工作流来进行流程的优化和重构。通过将业务逻辑与流程逻辑分离,可以更好地管理和维护业务流程,并且可以灵活地进行流程的调整和修改。 3. 异步任务处理:flowable工作流支持异步任务处理,可以将一些需要耗时的操作放在异步任务中进行处理,提高系统的性能和响应速度。 4. 并发控制:flowable工作流可以帮助实现并发控制,例如资源的争抢、并发访问控制等。通过使用流程实例、任务和锁机制,可以有效地控制并发操作的顺序和执行结果。 5. 监控和统计:flowable工作流可以提供流程的监控和统计功能,包括流程的执行情况、执行时间、耗时统计等。通过这些统计数据,可以对流程进行性能分析和优化,提高系统的效率和可靠性。 总结来说,flowable工作流可以在各种场景下使用,帮助实现流程的自动化、优化和管理,并且可以提供监控和统计功能。它可以帮助简化业务逻辑,提高系统的性能和可维护性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [工作流入门教程(flowable框架)](https://blog.csdn.net/qq_25542879/article/details/107048660)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [flowable工作流.zip](https://download.csdn.net/download/weixin_43726137/73501882)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值