jbpm1

package com.jzsoft.jbpm;

import org.jbpm.JbpmConfiguration;
import org.jbpm.JbpmContext;
import org.jbpm.graph.def.ProcessDefinition;

import junit.framework.TestCase;

public class Jbpm_02_DeployProcessDefinition extends TestCase {
 
 static JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
 
 //将流程定义对象持久化到数据库
 public void testDeployProcessDefinition(){
  //读取流程定义文件,得到流程定义对象
  ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource("test01/processdefinition.xml");
  
  //这个时候,我们可以从流程定义对象中得到它的名称(流程名称)
  Persistence.setVariable("processName", processDefinition.getName());
  
  //JbpmContext对象封装了hibernate session对象的功能,可以执行
  //与数据库相关的操作
  JbpmContext context = jbpmConfiguration.createJbpmContext();
  
  try{
   //持久化到数据库
   context.deployProcessDefinition(processDefinition);
   
  }catch(Exception e){
   e.printStackTrace();
   context.setRollbackOnly();
  }finally{
   context.close();
  }
 }
}

 

package com.jzsoft.jbpm;

import java.util.Random;

import junit.framework.TestCase;

import org.hibernate.Session;
import org.jbpm.JbpmConfiguration;
import org.jbpm.JbpmContext;

public class Jbpm_03_CreateDocument extends TestCase {
 
 static JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
 
 //创建公文对象
 public void testCreateDocument(){
  
  //JbpmContext对象封装了hibernate session对象的功能,可以执行
  //与数据库相关的操作
  JbpmContext context = jbpmConfiguration.createJbpmContext();
  
  try{
   
   Session session = context.getSession();
   Document document = new Document();
   document.setTitle("测试公文"+new Random().nextInt(9999));
   session.save(document);
   
   Persistence.setVariable("docId", document.getId());
   Persistence.setVariable("docTitle", document.getTitle());
   
  }catch(Exception e){
   e.printStackTrace();
   context.setRollbackOnly();
  }finally{
   context.close();
  }
 }
}

package com.jzsoft.jbpm;

import java.util.Random;

import org.hibernate.Session;
import org.jbpm.JbpmConfiguration;
import org.jbpm.JbpmContext;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;

import junit.framework.TestCase;

public class Jbpm_04_CreateProcessInstance extends TestCase {
 static JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
 
 //创建流程实例对象,同时把流程实例与公文互相绑定
 public void testCreateProcessInstance(){
  
  //JbpmContext对象封装了hibernate session对象的功能,可以执行
  //与数据库相关的操作
  JbpmContext context = jbpmConfiguration.createJbpmContext();
  
  try{
   
   //1、从数据库中加载流程定义对象
   ProcessDefinition processDefinition = context.getGraphSession()
    .findLatestProcessDefinition(
     (String)Persistence.getVariable("processName")
    );
   
   //2、根据流程定义对象创建流程实例对象
   ProcessInstance instance = new ProcessInstance(processDefinition);
   
   //3、保存流程实例对象
   context.save(instance);
   
   //流程实例的ID
   long processInstanceId = instance.getId();
   
   //把公文ID放入流程实例变量,使得公文可以随着流程实例的流转而流转
   instance.getContextInstance().setVariable("docId", Persistence.getVariable("docId"));
   instance.getContextInstance().setVariable("documentTitle", Persistence.getVariable("docTitle"));
   
   //绑定流程实例ID到公文中
   Document document = (Document)context.getSession().load(Document.class, Persistence.getVariable("docId"));
   document.setProcessInstanceId(processInstanceId);
   
   
  }catch(Exception e){
   e.printStackTrace();
   context.setRollbackOnly();
  }finally{
   context.close();
  }
 }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值