JBPM4.4学习之二:第一个流程实例
来源:互联网 发布:蚌埠学院网络教务系统 编辑:程序博客网 时间:2024/05/24 23:12
1)建立项目和相关配置
在eclipse中创建一个Java Project,将jbpm4.jar和lib文件夹下的第三方jar包Add到项目中。
按照个人习惯,创建config和jbpm两个源文件夹,用于放配置文件和jbpm流程定义文件。
将jbpm-4.4/examples/src中的拷贝到config源文件夹中,以达到最快配置一个JBPM4应用。
修改jbpm.hibernate.cfg.xml中的相关配置,使得程序能够连接到我们刚才定义的数据库。不要忘记将url的字符集设置好,例如:
jdbc:mysql://localhost:3306/jbpm4?useUnicode=true&characterEncoding=UTF-8 如果你使用了其他数据库,不要忘记将相关的jdbc驱动包放入项目中。
2)创建流程定义文件
在jbpm源文件夹中右键新建一个jPDL文件,取名processTest.jpdl.xml,使用流程设计插件,创建如下流程:
<?xml version="1.0" encoding="UTF-8"?><process name="test" key="test" xmlns="http://jbpm.org/4.4/jpdl"> <start name="start1" g="255,35,48,48"> <transition name="提交到科长" to="科长审批" g="-63,-25"/> </start> <task assignee="张三" name="科长审批" g="230,148,92,52"> <transition name="提交到主任" to="主任审批" g="-63,-25"/> </task> <task assignee="李四" name="主任审批" g="233,263,92,52"> <transition name="通过" to="end1" g="-62,-25"/> </task> <end name="end1" g="259,379,48,48"/></process>
3)编写测试代码
创建一个类继承junit.framework.TestCase;
package com.tgb.video;import java.util.List;import org.jbpm.api.Configuration;import org.jbpm.api.ExecutionService;import org.jbpm.api.ProcessEngine;import org.jbpm.api.ProcessInstance;import org.jbpm.api.RepositoryService;import org.jbpm.api.TaskService;import org.jbpm.api.task.Task;import junit.framework.TestCase;public class testJbpm extends TestCase {//部署流程public void deploy(){ProcessEngine processEngine = Configuration.getProcessEngine();RepositoryService repositoryService = processEngine.getRepositoryService();repositoryService.createDeployment().addResourceFromClasspath("test.jpdl.xml").deploy();}//创建流程实例public void createInstance(){ProcessEngine processEngine = Configuration.getProcessEngine();ExecutionService executionService = processEngine.getExecutionService();ProcessInstance processInstance = executionService.startProcessInstanceByKey("test");System.out.println("流程实例ID=======" + processInstance.getId() );}//获取对应人员的任务public void getTask(){ProcessEngine processEngine = Configuration.getProcessEngine();TaskService taskService = processEngine.getTaskService();List<Task> tasks = taskService.findPersonalTasks("李四");System.out.println("任务数量==" +tasks.size());Task task = tasks.get(0);System.out.println("任务名词==" +task.getActivityName());System.out.println("任务人员==" +task.getAssignee() + "任务ID===" + task.getId());}//查询流程实例当前所在节点public void getCurrectActivity(){ProcessEngine processEngine = Configuration.getProcessEngine();ExecutionService executionService = processEngine.getExecutionService();String activityName = executionService.createProcessInstanceQuery().processInstanceId("test.20001").uniqueResult().findActiveActivityNames().toString();System.out.println("当前任务所在节点===" + activityName);}//完成任务public void completeTask(){ProcessEngine processEngine = Configuration.getProcessEngine();TaskService taskService = processEngine.getTaskService();taskService.completeTask("40001");}}
至此,我们就完成了一个最简单的流程应用测试。
我要注意的地方
1) 数据库jar驱动包
请确定已经为项目添加了对应的数据库驱动包
2) 数据库字符集
创建数据库时的字符集要与项目的字符集相同
3) Hibernate配置文件的细节
方言与地址
- JBPM4.4学习之二:第一个流程实例
- jbpm4.4之流程启动
- JBPM4.4学习之三:流程变量概念及使用
- JBPM4.4工作流学习实例
- JBPM4删除流程实例
- jBPM4.4之流程引擎对象ProcessEngine
- jBPM4.4之流程定义管理
- JBPM4.4学习二------JBPM4.4+SSH+Tomcat+Sqlserver整合
- jbpm4.4请假流程
- jbpm4.4流程
- JBPM4.4流程数据结构
- jBPM4.4流程变量
- [Spring]初识之第一个Spring小实例【学习笔记】
- Android JNI学习之第一个入门实例
- Android JNI学习之第一个入门实例
- Spring学习之路 第一个Spring演示实例
- Struts2 第一个实例学习
- struts2之第一个实例
- Ubuntu Server如何配置SFTP
- Lucene 索引去重
- Huffman树实现与应用(编码解码压缩解压缩)
- where 1=1 和 count(1) 与 count(*)
- Linux 系统启动故障修复
- JBPM4.4学习之二:第一个流程实例
- PYTHON抓取网页中的邮箱
- 反射使用的总结
- NS2运行出现malloc.c:3096: sYSMALLOc:...错误
- Adnroid上的简单图像合成类——PorterDuffXfermode
- gluLookAt
- 问题
- Java 反射(Reflection)
- 关于位图文件的理解