使用camunda完成activity工作流开发步骤

  1. 由于IDEA2020及以上版本不再支持ActivitBPMN插件,因此本文将介绍使用 IDEA + camunda 工具完成activit工作流基础代码的创建
  2. camunda 工具下载及安装 点击此处
  3. 使用 camunda 工具完成新建工作流程图 不会百度
  4. 构建maven工程 添加所需activity工作流框架所需要的依赖 见底部pom依赖
  5. 重点 用camunda画的流程图 xml文件开头为这样,
  6. 此时需要替换成 
    <bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                       xmlns:bpmn2="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:activiti="http://activiti.org/bpmn"
                       id="sample-diagram"
                       targetNamespace="http://bpmn.io/schema/bpmn"
                       xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">

    后继续替换xml文件中的

  7. 替换成

  8. 即为 原bpmn标签 -->bpmn2标签

  9. 需要注意 当userTask assign指定人时 xml文件需要替换 

  10. 运行你的activity代码 执行相关分配者的任务流程就可以了  如图 zhangsa就参与流程中来

  11. 所需要pom依赖

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.xxx.activiti</groupId>
        <artifactId>activiti</artifactId>
        <version>1.0-SNAPSHOT</version>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>6</source>
                        <target>6</target>
                    </configuration>
                </plugin>
            </plugins>
        </build>
        <properties>
            <slf4j.version>1.6.6</slf4j.version>
            <log4j.version>1.2.12</log4j.version>
        </properties>
        <dependencies>
    
            <dependency>
                <groupId>org.activiti</groupId>
                <artifactId>activiti-engine</artifactId>
                <version>7.0.0.Beta1</version>
            </dependency>
    
            <dependency>
                <groupId>org.activiti</groupId>
                <artifactId>activiti-spring</artifactId>
                <version>7.0.0.Beta1</version>
            </dependency>
    
            <dependency>
                <groupId>org.activiti</groupId>
                <artifactId>activiti-bpmn-model</artifactId>
                <version>7.0.0.Beta1</version>
            </dependency>
    
            <dependency>
                <groupId>org.activiti</groupId>
                <artifactId>activiti-bpmn-converter</artifactId>
                <version>7.0.0.Beta1</version>
            </dependency>
    
            <dependency>
                <groupId>org.activiti</groupId>
                <artifactId>activiti-json-converter</artifactId>
                <version>7.0.0.Beta1</version>
            </dependency>
    
            <dependency>
                <groupId>org.activiti</groupId>
                <artifactId>activiti-bpmn-layout</artifactId>
                <version>7.0.0.Beta1</version>
            </dependency>
    
            <dependency>
                <groupId>org.activiti.cloud</groupId>
                <artifactId>activiti-cloud-services-api</artifactId>
                <version>7.0.0.Beta1</version>
            </dependency>
    
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.40</version>
            </dependency>
    
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
            </dependency>
    
            <!-- log start -->
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>${log4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <!-- log end -->
    
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>3.4.5</version>
            </dependency>
    
            <dependency>
                <groupId>commons-dbcp</groupId>
                <artifactId>commons-dbcp</artifactId>
                <version>1.4</version>
            </dependency>
            <!--文件读写操作-->
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>2.0</version>
            </dependency>
            <dependency>
                <groupId>org.activiti</groupId>
                <artifactId>activiti-spring-boot-starter-basic</artifactId>
                <version>5.22.0</version>
                <scope>compile</scope>
            </dependency>
           <!-- <dependency>
                <groupId>org.activiti</groupId>
                <artifactId>activiti-engine</artifactId>
                <version>5.22.0</version>
                <scope>compile</scope>
            </dependency>-->
    
    
        </dependencies>
    
        <repositories>
            <repository>
                <id>alfresco</id>
                <name>Activiti Releases</name>
                <url>https://artifacts.alfresco.com/nexus/content/repositories/activiti-releases/</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
            </repository>
        </repositories>
    
    </project>

    完整bpmn文件

    <?xml version="1.0" encoding="UTF-8"?>
    <bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                       xmlns:bpmn2="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:activiti="http://activiti.org/bpmn"
                       id="sample-diagram"
                       targetNamespace="http://bpmn.io/schema/bpmn"
                       xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
      <bpmn2:process id="Process_12205e9" isExecutable="true">
        <bpmn2:userTask id="Task_1o5lv3s" name="请假流程" activiti:assignee="zhangsa">
          <bpmn2:incoming>SequenceFlow_1gnppyn</bpmn2:incoming>
          <bpmn2:outgoing>SequenceFlow_11ti0ld</bpmn2:outgoing>
        </bpmn2:userTask>
        <bpmn2:startEvent id="StartEvent_1">
          <bpmn2:outgoing>SequenceFlow_1gnppyn</bpmn2:outgoing>
        </bpmn2:startEvent>
        <bpmn2:sequenceFlow id="SequenceFlow_1gnppyn" sourceRef="StartEvent_1" targetRef="Task_1o5lv3s" />
        <bpmn2:sequenceFlow id="SequenceFlow_11ti0ld" sourceRef="Task_1o5lv3s" targetRef="Task_0w2w7xk" />
        <bpmn2:sequenceFlow id="SequenceFlow_0tkkr42" sourceRef="Task_0w2w7xk" targetRef="Task_13tm0d0" />
        <bpmn2:userTask id="Task_0w2w7xk" name="部门经理审批" activiti:assignee="lisi">
          <bpmn2:incoming>SequenceFlow_11ti0ld</bpmn2:incoming>
          <bpmn2:outgoing>SequenceFlow_0tkkr42</bpmn2:outgoing>
        </bpmn2:userTask>
        <bpmn2:userTask id="Task_13tm0d0" name="总经理审批" activiti:assignee="wangwu">
          <bpmn2:incoming>SequenceFlow_0tkkr42  </bpmn2:incoming>
          <bpmn2:outgoing>SequenceFlow_1kefyqm  </bpmn2:outgoing>
          </bpmn2:userTask>
        <bpmn2:endEvent id="EndEvent_00wjqya">
          <bpmn2:incoming>SequenceFlow_1kefyqm  </bpmn2:incoming>
          </bpmn2:endEvent>
        <bpmn2:sequenceFlow id="SequenceFlow_1kefyqm" sourceRef="Task_13tm0d0" targetRef="EndEvent_00wjqya" />
      </bpmn2:process>
      <bpmndi:BPMNDiagram id="BPMNDiagram_1">
        <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_12205e9">
          <bpmndi:BPMNShape id="UserTask_1ys2mmn_di" bpmnElement="Task_1o5lv3s">
            <dc:Bounds x="328" y="81" width="100" height="80" />
          </bpmndi:BPMNShape>
          <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
            <dc:Bounds x="156" y="103" width="36" height="36" />
          </bpmndi:BPMNShape>
          <bpmndi:BPMNEdge id="SequenceFlow_1gnppyn_di" bpmnElement="SequenceFlow_1gnppyn">
            <di:waypoint x="192" y="121" />
            <di:waypoint x="328" y="121" />
          </bpmndi:BPMNEdge>
          <bpmndi:BPMNEdge id="SequenceFlow_11ti0ld_di" bpmnElement="SequenceFlow_11ti0ld">
            <di:waypoint x="428" y="121" />
            <di:waypoint x="524" y="121" />
          </bpmndi:BPMNEdge>
          <bpmndi:BPMNEdge id="SequenceFlow_0tkkr42_di" bpmnElement="SequenceFlow_0tkkr42">
            <di:waypoint x="624" y="121" />
            <di:waypoint x="733" y="121" />
          </bpmndi:BPMNEdge>
          <bpmndi:BPMNShape id="UserTask_0tj044q_di" bpmnElement="Task_0w2w7xk">
            <dc:Bounds x="524" y="81" width="100" height="80" />
          </bpmndi:BPMNShape>
          <bpmndi:BPMNShape id="UserTask_04gyfm2_di" bpmnElement="Task_13tm0d0">
            <dc:Bounds x="733" y="81" width="100" height="80" />
          </bpmndi:BPMNShape>
          <bpmndi:BPMNShape id="EndEvent_00wjqya_di" bpmnElement="EndEvent_00wjqya">
            <dc:Bounds x="886" y="103" width="36" height="36" />
          </bpmndi:BPMNShape>
          <bpmndi:BPMNEdge id="SequenceFlow_1kefyqm_di" bpmnElement="SequenceFlow_1kefyqm">
            <di:waypoint x="833" y="121" />
            <di:waypoint x="886" y="121" />
          </bpmndi:BPMNEdge>
        </bpmndi:BPMNPlane>
      </bpmndi:BPMNDiagram>
      </bpmn2:definitions>
    

     

  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值