jbpm的使用

来源:互联网 发布:淘宝货到付款骗局 编辑:程序博客网 时间:2024/05/21 17:04

首先是jbpmConfiguration对象的创建:

 static JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();


 public void testJbpm(){
 
  //然后我们把processDefinition里面相关的对象持久化到数据库里面去。
  //流程定义文件里面有很多个概念,他有node,有transition,还有processDefinition,那么我们不需要一个
  //一个保存,jbpm把保存这么多对象的方法封装成一个接口,叫做deployProcessDefinition。我们只要调用这个
  //方法,传一个processDefinition对象,我们就能将他们存入到数据库里面去。
  
  //这个首先第一步我们要得到一个processDefinition对象,然后我们把他部署到流程中去。
  ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource("testJBPM/testJbpm.xml");
  //我们要存就必须获得一个session对象,而jbpm已经把session对象封装到一个JbpmContext对象里面了。
  //那么这个jbpmContext对象是怎么得到的呢,我们要先有一个jbpmConfiguration对象,我们要对数据库进行
  //操作的时候一定要有jbpmConfiguration这个对象,用他来创建一个类似于hibernate当中的session一样的
  //对象——jbpmContext。他是我们对数据库所有的操作的一个接口。
  JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
  try{
  //然后部署的操作已经由jbpmContext给我们创建好了,我们只需要调一下他的一个方法就可以了。
  jbpmContext.deployProcessDefinition(processDefinition);
  }finally{
  //最后我们还要对他close一下,就像我们用hibernate的时候要close session一样。
  jbpmContext.close();
  }
 }
}

第二步我们也做完了,那么现在我们开始做第三步,也就是说,我们流程定义文件写好了,现在我们的系统当中有了这样一个报销流程。
  那么就开始实际的去用她吧,一个人小报销了,那么她就要写一个报销的申请,但是这个 报销的申请写完了存到数据库当中了还不能算完了,应该和我们的这个流程关联起来啊,那么她应该怎么去关联呢,我们在建立这个申请单这个类的时候应该定义一 个processInstanceId属性,她是一个long型的。
  记录这我们的这个流程实例的id,那么什么是流程实例 (processInstance)呢,她是我们工作流当中第二重要的概念,他和流程定义的关系就相当于对象和类之间的关系,类是一个抽象的东西,她定义 完了是什么也干不了的,要想用她内部定义的东西我们就要new出一个实例来,当然这个里面也是这样的。
  那么也就是说,当我们创建这个报销申请的时候我们就要先根据这个流程‘new’出一个流程实例来存到数据库当中,然后在把她的id传给报销申请对象然后再将这个报销申请对象存到数据库当中。
原创粉丝点击