1、 创建jbpm所需要的数据库表,首先会创建jbpm必须使用的表格,另外还会根据尸体映射表创建用户自定义的表格。
JbpmConfiguration.getInstance().createSchema();
2、 定义流程,一个process.xml文件
3、 部署流程,
1)创建一个JbmpConfiguration对象:JbpmConfiguration.getInstance();
2)读取流程定义文件,并创建一个流程定义对象,ProcessDefination.parseXmlConfiguration();
3) 创建JbpmContext对象,相当于session对象,jbpmConfiguration().createJbpmContext();
4) 部署流程到数据库,context.deployContextDefination(processDefination);
5) context.close();
4、 创建公文,定义一个前面定义的实体类的对象
5、 将公文与流程绑定
1) 创建一个JbpmConfiguration对象
2) 创建一个JbpmContext对象
3) 从数据库中加载流程定义文件,context.getGraphSession().findLatestProcessDefination();
4) 通过获取到的流程定义文件获取一个流程实例。New ProcessInstance(defination);
5) 保存新创建的流程实例context.save(processInstance);
6) 在公文创建一个字段long processInstanceId,以便于将流程实例绑定到公文
7) 将公文绑定到流程实例,processInstance.getContextInstance().createVariable(“”,doc.getID);
8) Context.close();
6、 公文创建者提交公文
1)获取context,jbpmConfiguration.createJbpmContext();
Context.setSessionFactory(HibernateUtils.getSessionFactory());
2)获取文档
3)通过文档获取流程实例,context.getProcessInstance(doc.getProcessInstanceId());
4) 提交公文也即触发流程实例使其从第一步开始。
processInstance.getRootToken().signal();
7、 测试创建是否成功,
1) 获取某个流程实例当前所处的节点。getRootToken().getNode().getName();
2) 获取某个对象的所有的任务,context.getMgmtInstance().findTaskInstance();,然后即可通过遍历获取到的tasks来获取到其所有的任务信息。
3) 对流程实例进行审批,processInstance.end();
4) 判断流程是否结束,processInstance.hasEnded();