Activiti 简易教程一 version5.10

转载 2016年08月29日 21:51:23

安装Activiti -eclipse designer

打开 Help -->Install New Software。在如下面板中,点击Add按钮,然后填入下列字段:lNameActiviti BPMN 2.0 designer

Locationhttp://activiti.org/designer/update/

 

安装成功后,新建activiti项目,视图如下:

 

安装m2eclipse插件后,重启Eclipse,如提示

Eclipse is running in a JRE, but a JDK is required

  Some Maven plugins may not work when importing projects or updating source folders.

需要修改eclipse.ini文件,新增一项配置

-vm配置项必须在–vmargs配置项前,是因为执行到-vmargs配置项已经选择了一个默认的JVM了。

所以在–vmargs前面加上这一句:

-vm  

C:/Program Files/Java/jdk1.6.0_20/bin/javaw.exe 

二开始activiti 5.10的第一个demo

2.1   建立activiti-demo工程,选择Activiti Project

 

创建成功后的项目:

 

activiti-demo项目添加activiti依赖包,项目右键Build Path->Configure Build Path->libraries -> Add External Jars选中…\activiti-5.10\setup\files\dependencies\libs下所有包添加即可。

2.2 activiti-demo工程的数据库整合为MySQL

         …\activiti-5.10\setup\build\activiti-cfg目录下的activiti.cfg.xml配置文件复制到项目src\main\resources目录下,修改数据库配置如下:

<!-- Database configurations -->

    <propertyname="jdbcUrl"

value="jdbc:mysql://localhost:3306/test?autoReconnect=true"/>

    <propertyname="jdbcDriver"

       value="com.mysql.jdbc.Driver"/>

    <propertyname="jdbcUsername"value="root"/>

    <propertyname="jdbcPassword"value="root"/>

    <!-- Database configurations -->

    <propertyname="databaseSchemaUpdate"value="true"/>

    <!-- job executor configurations -->

    <propertyname="jobExecutorActivate"value="false"/>

2.3 设计activiti-demo工程的流程

在该项目的src/main/resource/diagrams下右键创建Activiti diagram,文件名为:DemoProcess.bpmn

 -->

 

此时进入Activiti Diagram Editor,在空白处点一下,下边属性栏中设置idnameid就是这个流程的key,后边启动流程的时候使用到。

 

注意:Activiti 5.8升级到5.9以后,xxx.bpmn20.xmlxxx.png已不默认生成,仅仅是生成xxx.bpmn文件,xxx.bpmn中的定义内容就如xxx.bpmn20.xml一样。

        另外,快捷菜单:“Create deployment artifacts”和“Import BPMN20 file”,在5.9以后去掉了。

如需设计完成流程后自动生成一个png图片按如下处理

l  保存无法生存png图片按以下处理

Window –> Preferences -> Activiti ->Save勾选即可

或者手动操作Activiti Designer打开xxx.bpmn文件,然后右键选择Export Diagram...,在弹出的对话框中设置图片的参数即可,一般使用默认就可以了。

在设计编辑器中保存DemoProcess.bpmn后的项目视图如下:

 

测试类代码  DemoProcessTest.java

[java] view plain copy
  1. package main.java;  
  2.   
  3. import java.io.FileInputStream;  
  4. import java.util.List;  
  5. import org.activiti.engine.HistoryService;  
  6. import org.activiti.engine.ProcessEngine;  
  7. import org.activiti.engine.ProcessEngineConfiguration;  
  8. import org.activiti.engine.RepositoryService;  
  9. import org.activiti.engine.RuntimeService;  
  10. import org.activiti.engine.TaskService;  
  11. import org.activiti.engine.history.HistoricProcessInstance;  
  12. import org.activiti.engine.runtime.ProcessInstance;  
  13. import org.activiti.engine.task.Task;  
  14.   
  15. /** 
  16.  * Activiti 5.10 demo 
  17.  * @author BruceQin 
  18.  *  
  19.  */  
  20. public class DemoProcessTest {  
  21.     // diagrams实际路径  
  22.     private static String realPath =   
  23.             "D:\\Java~coding~site\\J2EE-IDE\\Workspace\\workspace[indigo-jee]" +  
  24.             "\\activiti-demo\\src\\main\\resources\\diagrams";  
  25.     public static void main(String[] args) throws Exception {  
  26.         // 创建 Activiti流程引擎  
  27.         ProcessEngine processEngine = ProcessEngineConfiguration  
  28.                 .createProcessEngineConfigurationFromResource("activiti.cfg.xml")  
  29.                 .buildProcessEngine();  
  30.           
  31.         // 取得 Activiti 服务  
  32.         RepositoryService repositoryService = processEngine.getRepositoryService();  
  33.         RuntimeService runtimeService = processEngine.getRuntimeService();  
  34.   
  35.         // 部署流程定义  
  36.         repositoryService  
  37.                 .createDeployment()  
  38.                 .addInputStream("DemoProcess.bpmn",new FileInputStream(realPath + "\\DemoProcess.bpmn"))  
  39.                 .addInputStream("DemoProcess.png"new FileInputStream(realPath + <a href="file://\\DemoProcess.png">\\DemoProcess.png</a>))  
  40.                 .deploy();  
  41.           
  42.         // 启动流程实例  
  43.         ProcessInstance instance = processEngine  
  44.                  .getRuntimeService().startProcessInstanceByKey("DemoProcess");  
  45.         String procId = instance.getId();  
  46.         System.out.println("procId:"+ procId);  
  47.           
  48.         // 获得第一个任务  
  49.         TaskService taskService = processEngine.getTaskService();  
  50.         List<Task> tasks = taskService.createTaskQuery().taskDefinitionKey("firstTask").list();  
  51.         for (Task task : tasks) {  
  52.             System.out.println("Following task is: taskID -" +task.getId()+" taskName -"+ task.getName());  
  53.             // 认领任务  
  54.             taskService.claim(task.getId(), "testUser");  
  55.         }  
  56.            
  57.         // 查看testUser 现在是否能够获取到该任务  
  58.         tasks = taskService.createTaskQuery().taskAssignee("testUser").list();  
  59.         for (Task task : tasks) {  
  60.             System.out.println("Task for testUser: " + task.getName());  
  61.             // 完成任务  
  62.             taskService.complete(task.getId());  
  63.         }  
  64.         System.out.println("Number of tasks for testUser: "  
  65.                 + taskService.createTaskQuery().taskAssignee("testUser").count());  
  66.           
  67.   
  68.         // 获取并认领第二个任务  
  69.         tasks = taskService.createTaskQuery().taskDefinitionKey("secondTask").list();  
  70.         for (Task task : tasks) {  
  71.             System.out.println("Following task is : taskID -" +task.getId()+" taskName -"+ task.getName());  
  72.             taskService.claim(task.getId(), "testUser");  
  73.         }  
  74.           
  75.         //完成第二个任务结束结束流程  
  76.         for (Task task : tasks) {  
  77.             taskService.complete(task.getId());  
  78.         }  
  79.           
  80.         // 核实流程是否结束  
  81.         HistoryService historyService = processEngine.getHistoryService();  
  82.         HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(procId).singleResult();  
  83.         System.out.println("Process instance end time: " + historicProcessInstance.getEndTime());  
  84.     }  
  85. }  


教程一完毕。

相关文章推荐

Activiti 简易教程一 version5.10

一搭建环境 1.1   JDK 6+ activiti 运行在版本 6 以上的 JDK 上。转到 Oracle Java SE下载页面,点击按钮“下载 JDK”。网页中也有安装说明。要核实安装是否成功...
  • yangyi22
  • yangyi22
  • 2013年07月02日 16:07
  • 38916

Activiti 简易教程二 version5.10升级version5.12.1

一搭建环境 1.1 JDK 6+ 1.2 Ant 1.8.1+ 1.3 Eclipse 3.7+ 1.4 Activiti -eclipse designer插件安装 1.4.1 先安装GEF插件 1...

Activiti 简易教程

一搭建环境 1.1   JDK 6+ activiti 运行在版本 6以上的 JDK上。转到 Oracle Java SE下载页面,点击按钮“下载 JDK”。网页中也有安装说明。要核实安装是否...

activiti5.10安装

1、从www.activiti.org下载最新的activiti版本,我使用的是activiti-5.10,然后减压,减压后的activiti目录结构如下: ------docs ------setu...

Spring整合Activiti5.10完成一个简单的请假流程

本例子基于maven构建,源自咖啡兔的activiti工作流demo。在他的基础上修改而来,尽量使该例子通俗易懂。本例子,可使不熟悉工作流的朋友迅速上手。关于activiti的的介绍,大家还是看官方的...

activiti5.10解决分布式集群部署的主键问题

一、概要综述 1、activiti5是jbpm4升级上来的一款最新版工作流引擎,已经将自己的表划分为4类:运行时、通用数据、历史数据、流程相关数据,但是有一个核心问题就是是否支持集群部署,经过我对源码...
  • kongqz
  • kongqz
  • 2012年09月28日 09:47
  • 9760

activiti 5.10请假流程

  • 2014年08月07日 10:41
  • 4KB
  • 下载

KEIL MDK5.10开发环境安装教程(本文提供资源适用于STM32F03x/STM32F10x/STM32F4x系列控制器)

KEIL MDK5.10开发环境安装教程                             -----有些初级问题写在这里,适用于新手而已     近几年8位、16为单片机的份...

Vs2008编译vtk5.10详细教程

1)  官网下载vtk源文件和数据文件解压到同一文件夹 2)  下载cmake编译软件 3)  用cmake编译安装VTK a.      选择vtk源代码路径和编译文...

Version of activiti database (5.15.1) is more recent than the engine (5.14)

org.activiti.engine.ActivitiException: Version of activiti database (5.15.1) is more recent than the...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Activiti 简易教程一 version5.10
举报原因:
原因补充:

(最多只允许输入30个字)