将工作流的定义流程业务化,能够通过可视的、易理解的、规范化的操作方式来让业务人员定义工作流。
动态流程表单、人员分配自由跳转、会签多实例 、难用的 API等等这些坑,您或者已经踩过、或者正在奔坑而去
开源工作流的交互设计较差,在使用过程中需要配置大量编程领域的元素,大部分情况下业务人员不能直接上手或改动相关流程
通用的工作流几乎不存在,重型的工作流有人吐槽太重了,轻的有人吐槽功能不够,最后的结果基本就是做二次开发
# CHAPTER 1
# CHAPTER 2
基于流程引擎平台开发的流程系统已在生产上平稳运行良久,生产已验证
# PRESENTING CODE
可视化编排具有自适应布局的特性,使其远超过市面上同类竞品并成为秒杀级别产品。
vs
# PRESENTING CODE
# PRESENTING CODE
# PRESENTING CODE
# PRESENTING CODE
# PRESENTING CODE
# PRESENTING CODE
# PRESENTING CODE
# PRESENTING CODE
# PRESENTING CODE
/**
* 启动节点时拦截方法
* @param runJobVO 运行任务
*/
void start(RunJobVO runJobVO);
/**
* 审批节点前拦截方法
* @param runJobVO 运行任务
*/
void before(RunJobVO runJobVO);
/**
* 节点结束拦截方法
* @param runJobVO 运行任务
*/
void complete(RunJobVO runJobVO);
/**
* 审批节点后拦截方法
* @param runJobVO 运行任务
*/
void after(RunJobVO runJobVO);
/**
* 驳回后拦截方法
* @param runJobVO 运行任务
*/
void reject(RunJobVO runJobVO);
/**
* 被驳回后拦截方法
* @param runJobVO 运行任务
*/
void rejected(RunJobVO runJobVO);
# PRESENTING CODE
{
"nodeList": [
{
"type": "start",
"nodeName": "开始",
"icon": null,
"attrs": {
"pcTodoUrl": null,
"pcFinishUrl": null
},
"clazz": {
"clazz": null,
"methods": null
},
"defJob": {
"jobName": "任务名称",
"userId": null,
"roleId": null
},
"jobSize": 1,
"id": "1661145449179000002",
"height": 50,
"x": 210,
"width": 50,
"y": 205
}
],
"linkList": [
{
"type": "link",
"label": "",
"sourceId": "1661145449179000002",
"targetId": "1661145452800000003",
"attrs": {
"varKey": null,
"varVal": null
},
"id": "1661145456855000004",
"icon": null
}
],
"attrs": {
"id": "1661145437059000001"
},
"status": "0"
}
# PRESENTING CODE
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:activiti="http://activiti.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" xmlns:tns="http://www.activiti.org/test" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" expressionLanguage="http://www.w3.org/1999/XPath" id="m1561702890882" name="" targetNamespace="http://www.activiti.org/test" typeLanguage="http://www.w3.org/2001/XMLSchema">
<process id="leave" isClosed="false" isExecutable="true" name="请假流程图" processType="None">
<documentation id="leave_D_1"><![CDATA[请假流程图]]></documentation>
<startEvent id="startevent1" name="Start"/>
<endEvent id="endevent1" name="End"/>
<userTask activiti:assignee="employee" activiti:exclusive="true" id="usertask1" name="员工请假"/>
<userTask activiti:candidateGroups="manager" activiti:exclusive="true" id="usertask2" name="经理审批"/>
<userTask activiti:candidateGroups="boss" activiti:exclusive="true" id="usertask3" name="总经理审批"/>
<sequenceFlow id="flow1" sourceRef="startevent1" targetRef="usertask1"/>
<sequenceFlow id="flow2" name="${flag == true}" sourceRef="usertask2" targetRef="endevent1">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${flag == true}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow3" name="${flag == true}" sourceRef="usertask3" targetRef="endevent1">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${flag == true}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow4" name="${flag == false}" sourceRef="usertask2" targetRef="usertask1">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${flag == false}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow5" name="${flag == false}" sourceRef="usertask3" targetRef="usertask1">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${flag == false}]]></conditionExpression>
</sequenceFlow>
<exclusiveGateway gatewayDirection="Unspecified" id="exclusivegateway1" name="Exclusive Gateway"/>
<sequenceFlow id="flow6" sourceRef="usertask1" targetRef="exclusivegateway1"/>
<sequenceFlow id="flow7" name="${day <= 2}" sourceRef="exclusivegateway1" targetRef="usertask2">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${day <= 2}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow8" name="${day > 2}" sourceRef="exclusivegateway1" targetRef="usertask3">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${day > 2}]]></conditionExpression>
</sequenceFlow>
</process>
<bpmndi:BPMNDiagram documentation="background=#3C3F41;count=1;horizontalcount=1;orientation=0;width=842.4;height=1195.2;imageableWidth=832.4;imageableHeight=1185.2;imageableX=5.0;imageableY=5.0" id="Diagram-_1" name="New Diagram">
<bpmndi:BPMNPlane bpmnElement="leave">
<bpmndi:BPMNShape bpmnElement="startevent1" id="Shape-startevent1">
<omgdc:Bounds height="32.0" width="32.0" x="355.0" y="48.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="endevent1" id="Shape-endevent1">
<omgdc:Bounds height="32.0" width="32.0" x="355.0" y="362.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="usertask1" id="Shape-usertask1">
<omgdc:Bounds height="55.0" width="105.0" x="320.0" y="112.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="55.0" width="105.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="usertask2" id="Shape-usertask2">
<omgdc:Bounds height="55.0" width="105.0" x="170.0" y="240.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="55.0" width="105.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="usertask3" id="Shape-usertask3">
<omgdc:Bounds height="55.0" width="105.0" x="480.0" y="242.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="55.0" width="105.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="exclusivegateway1" id="Shape-exclusivegateway1" isMarkerVisible="false">
<omgdc:Bounds height="32.0" width="32.0" x="352.0" y="247.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1" sourceElement="startevent1" targetElement="usertask1">
<omgdi:waypoint x="371.0" y="80.0"/>
<omgdi:waypoint x="371.0" y="112.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="-1.0" width="-1.0" x="-1.0" y="-1.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2" sourceElement="usertask2" targetElement="endevent1">
<omgdi:waypoint x="222.0" y="295.0"/>
<omgdi:waypoint x="222.0" y="379.0"/>
<omgdi:waypoint x="355.0312805773287" y="379.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="14.0" width="100.0" x="183.0" y="309.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3" sourceElement="usertask3" targetElement="endevent1">
<omgdi:waypoint x="532.0" y="297.0"/>
<omgdi:waypoint x="532.0" y="379.0"/>
<omgdi:waypoint x="386.9687194226713" y="379.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="14.0" width="100.0" x="483.0" y="309.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow4" id="BPMNEdge_flow4" sourceElement="usertask2" targetElement="usertask1">
<omgdi:waypoint x="222.0" y="240.0"/>
<omgdi:waypoint x="222.0" y="139.0"/>
<omgdi:waypoint x="320.0" y="139.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="14.0" width="100.0" x="170.0" y="191.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow5" id="BPMNEdge_flow5" sourceElement="usertask3" targetElement="usertask1">
<omgdi:waypoint x="532.0" y="242.0"/>
<omgdi:waypoint x="532.0" y="139.0"/>
<omgdi:waypoint x="425.0" y="139.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="14.0" width="100.0" x="485.0" y="191.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow6" id="BPMNEdge_flow6" sourceElement="usertask1" targetElement="exclusivegateway1">
<omgdi:waypoint x="368.0" y="167.0"/>
<omgdi:waypoint x="368.0" y="247.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="-1.0" width="-1.0" x="-1.0" y="-1.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow7" id="BPMNEdge_flow7" sourceElement="exclusivegateway1" targetElement="usertask2">
<omgdi:waypoint x="352.0" y="263.0"/>
<omgdi:waypoint x="275.0" y="267.5"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="14.0" width="100.0" x="283.0" y="247.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow8" id="BPMNEdge_flow8" sourceElement="exclusivegateway1" targetElement="usertask3">
<omgdi:waypoint x="384.0" y="263.0"/>
<omgdi:waypoint x="480.0" y="269.5"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="14.0" width="100.0" x="400.0" y="247.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>
试用请扫码联系我们