Activiti6:模拟钉钉上面的请假流程(使用web画图并导出xml然后使用java执行流程)

1.声明

当前内容主要为本人学习和测试Activiti6这个工作流的基本操作,模拟钉钉上面的请假流程(简单版)

当前内容主要有:

  1. 使用官方的web-app方式画图
  2. 将当前流程图导出为xml配置
  3. 将xml配置导入项目,并使用java方式加载并实现流程执行

2.画出请假执行流程图

在这里插入图片描述

其中都是使用最简单的元素

重要点:
1.启动当前流程需要三个:员工名称,请假时间,请假类型
在这里插入图片描述
例如下面参数:
在这里插入图片描述
此时发起流程就必须这些参数,注意required设置为true

流程发起后,通过审核人,此时审核人需要一个参数来执行后面是否允许请假通过,同样的设置为approve,设置为boolean类型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
之后流程到了条件判断,这里其实就是判断当前的定义的变量approve==true或者approve==false

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后后面的审核人和判断就和这个一样即可完成条件判断(所以这里省略后面的userTask和条件判断)

之后到达抄送人
在这里插入图片描述
在这里插入图片描述
此时流程执行结束

保存后(上面的请假类型是枚举所以需要在生成的xml中修改)

3.将画出的图导出为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: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" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/processdef">
  <process id="OffWork" name="OffWork" isExecutable="true">
    <documentation>钉钉上的请假流程</documentation>
    <startEvent id="offWorkStart" name="发起请求">
      <extensionElements>
        <activiti:formProperty id="username" name="员工名称" type="string" required="true"></activiti:formProperty>
        <activiti:formProperty id="offwork_type" name="请假类型" type="enum" required="true"></activiti:formProperty>
        <activiti:formProperty id="offwork_day" name="请假天数" type="long" required="true"></activiti:formProperty>
      </extensionElements>
    </startEvent>
    <userTask id="sp_1" name="审批人:人事部" activiti:candidateGroups="management">
      <extensionElements>
        <activiti:formProperty id="approve" name="是否同意" type="boolean" required="true"></activiti:formProperty>
      </extensionElements>
    </userTask>
    <userTask id="sp_2" name="审批人:人事部主管" activiti:candidateGroups="management">
      <extensionElements>
        <activiti:formProperty id="approve" name="是否同意" type="boolean" required="true"></activiti:formProperty>
      </extensionElements>
    </userTask>
    <endEvent id="offWorkEnd" name="结束"></endEvent>
    <exclusiveGateway id="sp_1_check" name="判断"></exclusiveGateway>
    <exclusiveGateway id="sp_2_check" name="判断"></exclusiveGateway>
    <userTask id="send_person" name="抄送人" activiti:candidateGroups="system"></userTask>
    <sequenceFlow id="sd_boss" name="抄送给总经理" sourceRef="send_person" targetRef="mail_to_boss"></sequenceFlow>
    <sequenceFlow id="diapatcher_to_csr" name="转发" sourceRef="sp_2" targetRef="sp_2_check"></sequenceFlow>
    <sequenceFlow id="cs_ms_end" name="抄送结束"<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值