jbpm API的helloword实例

1.新建一个jbpm工程

2.在src目录下

新建一个helloworld包导入以下五个文件:helloworld.jpdl.xml

<?xml version="1.0" encoding="UTF-8"?>

<?xml version="1.0" encoding="UTF-8"?>

<process name="helloworld" xmlns="http://jbpm.org/4.4/jpdl">
   <start name="start1" g="66,16,48,48">
      <transition name="to 提交申请" to="提交申请" g="-71,-17"/>
   </start>
   <end name="end1" g="66,348,48,48"/>
   <task name="提交申请" g="44,96,92,52" assignee="员工">
      <transition name="to 部门经理审批" to="部门经理审批" g="-95,-17"/>
   </task>
   <task name="部门经理审批" g="44,180,92,52" assignee="部门经理">
      <transition name="to 总经理审批" to="总经理审批" g="-83,-17"/>
   </task>
   <task name="总经理审批" g="44,264,92,52" assignee="总经理">
      <transition name="to end1" to="end1" g="-47,-17"/>
   </task>
</process>

helloworld.png

jbpm.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>

<jbpm-configuration>

  <import resource="jbpm.default.cfg.xml" />
  <import resource="jbpm.businesscalendar.cfg.xml" />
  <import resource="jbpm.tx.hibernate.cfg.xml" />
  <import resource="jbpm.jpdl.cfg.xml" />
  <import resource="jbpm.bpmn.cfg.xml" />
  <import resource="jbpm.identity.cfg.xml" />

  <!-- Job executor is excluded for running the example test cases. -->
  <!-- To enable timers and messages in production use, this should be included. -->
  <!--
  <import resource="jbpm.jobexecutor.cfg.xml" />
  -->

</jbpm-configuration>

jbpm.hibernate.cfg.xml

<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
  <session-factory>

     <property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
     <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
     <property name="hibernate.connection.url">jdbc:mysql:///jbpm</property>
     <property name="hibernate.connection.username">root</property>
     <property name="hibernate.connection.password">2012081006</property>
     <property name="hibernate.hbm2ddl.auto">update</property>
     <property name="hibernate.format_sql">true</property>

     <mapping resource="jbpm.repository.hbm.xml" />
     <mapping resource="jbpm.execution.hbm.xml" />
     <mapping resource="jbpm.history.hbm.xml" />
     <mapping resource="jbpm.task.hbm.xml" />
     <mapping resource="jbpm.identity.hbm.xml" />

  </session-factory>
</hibernate-configuration>

这里的相关配置信息请自己更改

log4j.properties

### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### direct messages to file hibernate.log ###
#log4j.appender.file=org.apache.log4j.FileAppender
#log4j.appender.file.File=hibernate.log
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### set log levels - for more verbose logging change 'info' to 'debug' ###

log4j.rootLogger=error, stdout

#log4j.logger.org.hibernate=info
#log4j.logger.org.hibernate=debug

### log HQL query parser activity
#log4j.logger.org.hibernate.hql.ast.AST=debug

### log just the SQL
#log4j.logger.org.hibernate.SQL=debug

### log JDBC bind parameters ###
#log4j.logger.org.hibernate.type=info
#log4j.logger.org.hibernate.type=debug

### log schema export/update ###
#log4j.logger.org.hibernate.tool.hbm2ddl=debug

### log HQL parse trees
#log4j.logger.org.hibernate.hql=debug

### log cache activity ###
#log4j.logger.org.hibernate.cache=debug

### log transaction activity
#log4j.logger.org.hibernate.transaction=debug

### log JDBC resource acquisition
#log4j.logger.org.hibernate.jdbc=debug

### enable the following line if you want to track down connection ###
### leakages when using DriverManagerConnectionProvider ###
#log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace

2.搭建jbpm环境,即导入相应的jar包,在这里就不一一列举出来,如果你想要的话,请评论,并私聊我

3.新建一个包,如hellowordAPI

并在此包下新建一个类,如下

package cn.itcast.oa_hellowordAPI;

import java.util.List;

import org.jbpm.api.Configuration;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.task.Task;
import org.junit.Test;

public class HelloWord_API {

	private static ProcessEngine processEngine=new Configuration().setResource("jbpm.cfg.xml").buildProcessEngine();
	//建表
	 @Test        //ddl.auto=update
	 public void createSchema() throws Exception{
		 new org.hibernate.cfg.Configuration()//
		 .configure("jbpm.hibernate.cfg.xml").buildSessionFactory();
	 }
	//部署流程定义
	@Test
	public void deployProcessDefinition() throws Exception {
	processEngine.getRepositoryService().createDeployment()//
	.addResourceFromClasspath("helloword/helloworld.jpdl.xml").addResourceFromClasspath("helloword/helloworld.png").deploy();
	}

	//启动流程实例
    @Test
   public void startProcessInstance() throws Exception {
			processEngine.getExecutionService().startProcessInstanceByKey("helloworld");
   }

   //查询我的个人任务列表
	@Test
	public void findMyPersonalTaskList() throws Exception {
			String userId1="员工";
		//String userId2="部门经理";
		//	String userId3="总经理";

			System.out.println("---------"+userId1+"--------");

		List<Task> tasks=processEngine.getTaskService().findPersonalTasks(userId1);
		for(Task task:tasks){
		System.out.println(task.getId()+"---"+task.getName()+"-----"+task.getAssignee());
		}

	}

	//办理任务
	@Test
	public void compeleteTask() throws Exception {
			String userId="10009";
			processEngine.getTaskService().completeTask(userId);
	}
}

运行测试即可

时间: 2024-10-10 13:41:05

jbpm API的helloword实例的相关文章

Caused by: org.jbpm.api.JbpmException: resource jbpm.cfg.xml does not exist

1.错误描述 2015-09-20 22:49:59 [main] WARN org.springframework.context.support.GenericApplicationContext - Exception encountered during context initialization - cancelling refresh attempt org.springframework.beans.factory.BeanCreationException: Error cre

JBPM API初识

JBPM为我们提供了一系列管理流程的服务.从定义流程,到实例化流程定义,流程实例执行过程中,对流程的管理,流程结束后,纳入历史流程,进行管理.JBPM的流程管理,提供了完整的API,提高了流程执行的效率. JBPM提供的服务API为我们实现了: (1)流程部署 (2)流程实例 (3)流程任务 (4)流程历史 ProcessEngine提供了6个服务API.ProcessEngine是由Configuration类构建的,即工作流引擎根据配置产生. (1)RepositoryService--流程

【SpringBoot】SpringBoot基础-HelloWord实例

转载请注明出处:http://blog.csdn.net/qq_26525215 本文源自[大学之旅_谙忆的博客] 这是我学习SpringBoot的入门系列哦,欢迎阅读. SpringBoot的简介我就不写一个篇章来介绍了,相信大家搜索一下,网上一大堆. 首先,SpringBoot的推出不是用来替代Spirng的,而是精简Spring的配置的.也就是优化Spirng的. 下面直接上实例吧. 环境配置: win7 Intellij IDEA 使用的是2016 1.2以后的版本 JDK1.8 Mav

xtree,xloadtree API解析 和实例

js下载地址:http://download.csdn.net/detail/w5167839/7894001 XTREE API 本人英语不好,有误请不要见怪, xtree api英文地址:http://webfx.eae.net/dhtml/xtree/api.html --------------------------------------------------------- WebFXTreeAbstractNode 父类对象有共同的函数和方法被WebFXTree和WebFXTre

百度地图Api进阶教程-实例高级操作8.html

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>16.1</title> <script type=text/javascript src=http://fw.qq.com/ipaddress></script&g

初探物联网 - 基于Arduino的气象站和View and Data API的结合实例

如果你参加了上个月在北京的Autodesk 开发者日,你应该看到了我做的关于Arduino的物联网实例演示,如果你没看到,欢迎参加14号在上海的开发者日,到时候我会再演(xian)示(bai)一下. 这是个基于这样一个场景的简单演示.我的一个建筑物上面安装了这样一个温度传感器,随时把当前环境温度上传到云端,在浏览器端可以显示这个建筑物的三维模型和温度变化曲线图.如果温度到达一定的高温,比如大于40度,那可能是起火了,就需要发出高温报警,在三维模型中定位出报警的温度传感器的位置,并发出火警警报.

百度地图API 快速上手实例 !!!

今天又来了一个新需求 , 就是点击某人头出现一张地图, 在地图上标注此人出现的位置, 听起来很难的一个需求 , 之前也没有接触过类似的应用 , 好吧, 最后使用了百度的一个开源的地图API , 下面话不多说, 还是直接上代码吧 , 如上图, 需求就是点击查看地图的时候, 出现一个地图标明当前用户的位置 , 接下来就介绍百度地图API的用法吧, 当然既然借助别人的API 那么引入就少不了了 . <script type="text/javascript" src="htt

mysql C语言API接口及实例

Mysql数据库动态库: libmysql.dll  libmysql.lib mysql.h  WinSock2.h Mysql API数据结构   (mysql.h) MYSQL:连接数据库前,必须先创建MYSQL变量,此变量在很多Mysql API函数会用到.它包含了一些连接信息等数据. MYSQL_RES:MYSQL_RES结构体中包含了查询结果集,也就是从数据库中查询到的数据.可以使用mysql_store_result或mysql_use_result函数获得. MYSQL_ROW:

Api接口开发实例

目的:第三方系统可以调用k3cloud系统中的库存数据与表单数据.报表数据进行数据分析:实验研究:本来打算使用金蝶协同开发平台进行测试开发api接口,测试没有成功,然后就开始使用早期开发使用 的方法进行测试,然后成功了!时间宝贵,潦草写了以下的代码步骤,大家可以作为参考!步骤:1 vs中新建类 ,引用需要的命名空间:2 vs中新建控制台,为了测试第三方平台调用测试成功与否:代码如下:新建类using Kingdee.BOS.Core.Metadata;using Kingdee.BOS.Core