Activiti 入门示例

设置流程定义图bpmn
     assignee :申请人、审核人

相关操作的表

-- act_re_procdef 流程定义表
-- act_re_deployment 部署表
-- act_ge_property 通用属性表  id 生成策略  
-- act_ru_execution  执行对象,流程实例,流程对象
-- act_ru_task 任务表

入门示例:

1. 创建流程引擎及工作流数据表
     - 数据库及表可以自动创建,
       可以在配置数据库连接时,实现自动创建数据库和表
     - 取得ProcessEngine对象
       先取得ProcessEngineConfiguration 对象 ,再由该对象来构建ProcessEngine
  2. 部署流程
      影响的表:
        act_re_procdef :流程定义表 :
      该表的key属性 是bpmn 的 id决定  
      该表的name属性  是bpmn 的name 属性决定
    act_re_deployment:部署表 :id是由act_ge_property的 next_dbid决定
    act_ge_property :通用属性表
  3. 启动流程
  4. 查看我的个人任务
  5. 完成我的个人任务

示例代码:

package com;
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;
public class ActivitiTest {
    /**
     * 建表并创建流程引擎对象(核心对象)
     */
    @Test
    public void createProcessEngine() {
        // 获取流程引擎
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
        System.out.println(processEngine);
    }
    /**
     * 部署流程定义 影响的表: act_re_procdef : 流程定义表 : 该表的key属性 是bpmn 的 id决定 该表的name属性
     * 是bpmn 的name 属性决定 act_re_deployment:部署表 :id是由act_ge_property的 next_dbid决定
     * act_ge_property :通用属性表
     */
    @Test
    public void deploy() {
        // 获取流程引擎
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
        // 获取仓库服务的实例
        Deployment deployment = processEngine.getRepositoryService()//
                .createDeployment()//
                .addClasspathResource("bpmn/hello.bpmn")//
                .addClasspathResource("bpmn/hello.png")//
                .name("报销单流程").deploy();
        System.out.println(deployment.getId() + "        " + deployment.getName());
    }
    /**
     * 启动流程
     */
    @Test
    public void startProcess() {
        // 获取流程引擎对象
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
        // 启动流程
        // 使用流程定义的key启动流程实例,默认会按照最新版本启动流程实例
        ProcessInstance pi = processEngine.getRuntimeService().startProcessInstanceByKey("helloprocess");
        System.out.println("pid:" + pi.getId() + ",activitiId:" + pi.getActivityId());
    }
    /**
     *  查看任务
     * @throws Exception
     */
    @Test
    public void queryMyTask() throws Exception {
        // 指定任务办理者
        String assignee = "李四";
        // 获取流程引擎对象
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
        // 查询任务的列表
        List<Task> tasks = processEngine.getTaskService().createTaskQuery()// 创建任务查询对象
                .taskAssignee(assignee)// 指定个人任务办理人
                .list();
        // 遍历结合查看内容
        for (Task task : tasks) {
            System.out.println("taskId:" + task.getId() + ",taskName:" + task.getName());
            System.out.println("*************************");
        }
    }
    
    /**
     *  办理任务
     * @throws Exception
     */
    @Test
    public void completeTask() throws Exception {
    String taskId = "404";
    // 获取流程引擎对象
    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    // 完成任务
    processEngine.getTaskService()
        .complete(taskId);
    System.out.println("完成任务!");
    }
}
时间: 2024-09-29 22:38:21

Activiti 入门示例的相关文章

Activiti入门——环境搭建和核心API简介

相关文章: <史上最权威的Activiti框架学习> <Activiti入门--轻松解读数据库> 本章内容,主要讲解Activiti框架环境的搭建,能够使用Activiti的API创建23张数据库表,正式开始Activiti之旅. 在前一章,介绍了Activitie核心的数据库23张表的特征[数据库结构简介],在这里我们就要把Activiti集成到我们工程中了. 集成Activiti步骤如下: 1.从官网下载Activti框架包: 2.框架集成第一步都是导包,这些jar包可以在官方

Activiti入门教程

1. 初识Activiti 1.1. 工作流与工作流引擎 工作流(workflow)就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算.它主要解决的是"使在多个参与者之间按照某种预定义的规则传递文档.信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现".(我的理解就是:将部分或者全部的工作流程.逻辑让计算机帮你来处理,实现自动化) 所谓工作流引擎是指workflow作为应用系统的一部分,并为之提

Spring MVC 入门示例讲解

MVC框架是什么 Dispatcher Servlet(Spring控制器) Spring入门示例 运行时依赖库 web.xml和spring-servlet.xml文件配置 请求控制器EmployeeController.java 视图模型EmployeeVO.java Dao类 业务层类 视图employeeListDisplay.jsp MVC框架是什么 模型-视图-控制器(MVC)是一个众所周知的以设计界面应用程序为基础的设计模式.它主要通过分离模型.视图及控制器在应用程序中的角色将业务

SpringMVC 入门示例讲解

首先要了解什么是MVC,MVC全称是Model View Controller,是模型(Model)-视图(View)和控制器(Controller)的缩写,一种软件设计典范,用一种业务逻辑·.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑.MVC被独特的发展起来用于映射传统的输入.处理和输出功能在一个逻辑的图形化用户界面的结构中. 伯乐在线-ImportNew:       http://www.importnew

ehcache2.8.3入门示例:hello world

一.pom.xml 依赖项 1 <dependency> 2 <groupId>net.sf.ehcache</groupId> 3 <artifactId>ehcache</artifactId> 4 <version>2.8.3</version> 5 </dependency> 6 7 <dependency> 8 <groupId>org.slf4j</groupId>

OpenCV 入门示例之五:一个复杂点的变换

前言 前文介绍了一个简单的变换.需要注意的是,很多时候,输出和输入图像的格式是不同的( 大小,深度,通道 ).在本文将展示的程序中,对图像进行了缩放( 使用cvPyrDown 函数 ),这种情况下需要先定制好输出图像的格式,然后再将其与输入图像一起传递进缩放函数. 代码示例 1 // 此头文件包含图像IO函数的声明 2 #include "highgui.h" 3 // 此头文件包含基本的图像处理函数和高级计算机视觉算法 4 #include "cv.h" 5 6

Android OpenGL入门示例:绘制三角形和正方形 (附完整源码)

Android上对OpenGl的支持是无缝的,所以才有众多3D效果如此逼真的游戏,在Camera的一些流程中也有用到GLSurfaceView的情况.本文记录OpenGL在Android上的入门级示例,绘制一个三角形和正方形.尽管功能简单,可是我捣腾了好几个晚上,大量网上文章上的代码都有点问题,不是绘制不出来就是挂了. 第一个文件:MainActivity.java package com.example.learnopengl1; import android.opengl.GLSurface

OpenCV 入门示例之四:一个简单的变换

前言 图像的平滑处理,是计算机视觉中非常重要的操作,本文将展示一个可以对图像进行平滑处理的简单程序.而关于平滑处理深层次的知识,会在以后的文章中重点探讨. 代码示例 1 // 此头文件包含图像IO函数的声明 2 #include "highgui.h" 3 // 此头文件包含基本的图像处理函数和高级计算机视觉算法 4 #include "cv.h" 5 6 int main (void) { 7 8 // 将D盘目录下名为" 1.jpg "的图像

dubbo入门示例

本文主要介绍阿里dubbo的基本使用,关于dubbo的相关基础概念请自行参考dubbo官网:http://www.dubbo.io dubbo是一个服务治理的框架,在如今大规模的分布式应用和SOA架构中,服务治理的问题显的尤为的重要. 以我个人使用dubbo的场景来总结,dubbo主要解决如下问题: 1.项目服务化后,项目之间的高性能通讯问题.(项目被拆分成多个服务模块后必然会涉及模块之间的通讯) 2.服务的URL管理,当项目拆分为N个服务并且不断增加时,如何有效的管理的服务URL 3.服务发现