jbpm教程(二)创建公文 并把公文与流程定义文件相互绑定

18 篇文章 0 订阅
7 篇文章 0 订阅

创建公文  并把公文与流程定义文件相互绑定

首先创建公文类文件

package com.sxito.jbpm;
 
 
 public class Document {
 	private int id;
 	private String title;
 	private String context;
 	private long processInstanceId;
 	
 	public int getId() {
 		return id;
 	}
 	public void setId(int id) {
 		this.id = id;
 	}
 	public String getTitle() {
 		return title;
 	}
 	public void setTitle(String title) {
 		this.title = title;
 	}
 	public String getContext() {
 		return context;
 	}
 	public void setContext(String context) {
 		this.context = context;
 	}
 	public long getProcessInstanceId() {
 		return processInstanceId;
 	}
 	public void setProcessInstanceId(long processInstanceId) {
 		this.processInstanceId = processInstanceId;
 	}
 }
 
配置Document.hbm.xml文件


<?xml version="1.0"?>
 <!DOCTYPE hibernate-mapping PUBLIC
         "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
         "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 
 <hibernate-mapping>
 	<class name="com.sxito.jbpm.Document" table="_document">
 		<id name="id" >
 			<generator class="native"></generator>
 		</id>
 		<property name="title" />
 		<property name="context" />
 		<property name="processInstanceId" />
     </class>
 	
 </hibernate-mapping>
在hibernate.cfg.xml文件中最后一个<property>标签后加入以下代码

    <!-- mapping 要放在property后面 不能放在前面 -->
     <mapping resource="com/sxito/jbpm/Document.hbm.xml"/>

然后创建公文

package com.sxito.jbpm;
 
 import java.util.Random;
 
 import junit.framework.TestCase;
 
 import org.jbpm.JbpmConfiguration;
 import org.jbpm.JbpmContext;
 import org.jbpm.graph.def.ProcessDefinition;
 import org.jbpm.graph.exe.ProcessInstance;
 
 public class Jbpm_03_CreateDocument extends TestCase {
 	//获取jbpm配置
 	static JbpmConfiguration jbpmConfiguration =  JbpmConfiguration.getInstance();
 	/**
 	 * 创建公文
 	 * 通过jbpmConfiguration得到JbpmComtext
 	 * 创建新公文 并保存
 	 * 通过流程定义名称取到流程定义对象
 	 * 根据流程定义对象创建新的流程实例  保存流程实例
 	 * 把流程实例编号绑定在公文上
 	 * 把公文Id绑定到流程实例中去
 	 * 把日期放到流程实例里去
 	 */
 	public void testCreateDocument(){
 		
 		//创建jbpm上下文对象
 		JbpmContext context = jbpmConfiguration.createJbpmContext();
 		
 		try{
 			//创建公文对象
 			Document doc = new Document();
 			doc.setTitle("测试公文"+new Random().nextInt(999));
 			//保存公文
 			context.getSession().save(doc);
 	//创建流程实例对象
 			//1.首先从数据库中根据流程定义对象名称 加载ProcessDeinition对象
 			ProcessDefinition def = context.getGraphSession().findLatestProcessDefinition("test05");
 			//2.根据流程定义对象创建新的流程实例
 			ProcessInstance  instance = new ProcessInstance(def);
 			//保存流程实例
 			context.save(instance);
 	//互相绑定
 			//把流程实例编号绑定到公文上
 			doc.setProcessInstanceId(instance.getId());
 		    //把文档编号绑定到流程实例上
 			instance.getContextInstance().setVariable("documentId",doc.getId());
 			//将days变量放到流程实例里面
 			instance.getContextInstance().setVariable("days", 2);
 			System.err.println("新创建的公文Id为【"+doc.getId()+"】公文名称为【"+doc.getTitle()+"】");
 		}catch(Exception e){
 			e.printStackTrace();
 //			如果部署不成功则回滚
 			context.setRollbackOnly();
 //			System.err.println("exception!!!");
 		}finally{
 			context.close();
 		}
 	}
 }
 





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值