eclipse-java-activiti工作流-极简例子

那么多博客,我总觉都得没说好如何快速在eclipse搭建跑起来。
一、安装插件:
1:Help-》Install New Sofeware-》add
Name:Activiti Designer
Location:http://activiti.org/designer/update/
如图:

image.png

image.png
image.png

然后安装


image.png

重启eclipse。。。

二、搭建工作流:
1、提供一个mysql
2、新建MAVEN工程:


image.png

image.png

3、添加resource文件夹:


image.png

image.png

4、pom.xml引入依赖

  4.0.0
  com.open
  activiti-demo01
  1.0-SNAPSHOT
  jar
  activiti-demo01
  
    5.18.0
  
  
    
      org.activiti
      activiti-engine
      ${activiti-version}
    
    
      org.activiti
      activiti-spring
      ${activiti-version}
    
    
      org.codehaus.groovy
      groovy-all
      2.4.3
    
    

    mysql
    mysql-connector-java
    8.0.13

    
    
      com.h2database
      h2
      1.3.168
    
    
      org.slf4j
      slf4j-api
      1.7.6
    
    
      org.slf4j
      slf4j-jdk14
      1.7.6
    
    
      junit
      junit
      4.10
    
  
     
    
      
        org.apache.maven.plugins
        maven-compiler-plugin
           2.3.2
        
             1.6
             1.6
           
         
         
        org.apache.maven.plugins
        maven-eclipse-plugin
        true
        
             
               org.eclipse.jdt.USER_LIBRARY/Activiti Designer Extensions
             
           
         
    
     


4、在resource下面,添加active-digrams


image.png

image.png

5、画图


直接导出.gif

然后

6、在resource下面编写配置文件activiti.cfg.xml



    
        
        
        
        
        
        
    


7、java代码测试

package com.open.activeti_demo01;

import java.util.List;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.junit.Test;

/**
 * Hello world!
 *
 */
public class App 
{
    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    /**
     * 部署流程定义
     */
    @Test
    public void deployment() {
        Deployment deployment = processEngine.getRepositoryService()//与流程定义和部署相关的Service
                .createDeployment()//创建一个部署对象
                .name("demoProcess")//添加部署的名称
                .addClasspathResource("MyProcess.bpmn")//从classpath下加载资源,一次一个
                .deploy();//完成部署
        System.out.println("部署ID"+deployment.getId());//1
        System.out.println("部署名称"+deployment.getName());
    }

    /**
     *启动流程实例
     */
    @Test
    public void startProcessInstance() {
        String processDefinitionKey = "myProcess";
        ProcessInstance processInstance = processEngine.getRuntimeService()//与正在执行的流程实例和执行对象相关的Service
                .startProcessInstanceByKey(processDefinitionKey);//根据Key值来查询流程,也可以根据ID
        System.out.println("流程实例ID:"+processInstance.getId());  //2501
        //对应数据库act_ru_execution
        System.out.println("流程定义ID:"+processInstance.getProcessDefinitionId()); //helloword:1:4
        //对应数据库act_re_deployment
    }

    /**
     * 查询当前个人的任务
     */
    @Test
    public void fingByPerson() {
        String assignee = "user1";
        List list = processEngine.getTaskService()//与正在执行的任务管理相关的Service
                .createTaskQuery()//创建任务查询对象
                .taskAssignee(assignee)//指定个人任务查询,指定代理人
                .list();//以list形式记录对象
        if(list != null && list.size()>0) {
            for(Task task:list) {
                System.out.println("任务ID:"+task.getId());//22504
                System.out.println("任务名称:"+task.getName());//提交申请
                System.out.println("任务的创建时间:"+task.getCreateTime());//:Wed Nov 14 17:02:43 CST 2018
                System.out.println("任务的代理人:"+task.getAssignee());//staff1
                System.out.println("流程实例ID:"+task.getProcessInstanceId());//22501
                System.out.println("执行对象ID:"+task.getExecutionId());//22501
                System.out.println("流程定义ID:"+task.getProcessDefinitionId());//demoProcess:1:20004
            }
        }
    }

    /**
     * 完成个人任务
     */
    @Test
    public void complete() {
        String taskId = "32508";
        processEngine.getTaskService()
        .complete(taskId );
        System.out.println("完成任务ID:"+taskId);
    }

}

8、右键执行测试结果


image.png

9、完成工程结构


image.png

你可能感兴趣的:(eclipse-java-activiti工作流-极简例子)