jbpm使用

1.创建表

JbpmConfiguration.getInstance().createSchema();

jbpm3.3会生成32张表

2创建流程

process.xml

3部署流程

// 读取流程定义文件创建processDefinition 对象
ProcessDefinition processDefinition = ProcessDefinition
.parseXmlResource("processdefinition.xml");
// 创建jbpmcontext对象
JbpmContext context = configuration.createJbpmContext();
// 部署流程到数据库
try {
context.deployProcessDefinition(processDefinition);


} finally {
// context对象需要关闭
context.close();
}

4创建公文

Configuration configuration = new Configuration();
SessionFactory sessionFactory = configuration.configure()
.buildSessionFactory();
Session session = sessionFactory.openSession();


public void test() {
session.beginTransaction();
Document document = new Document();
document.setContent("测试内容");
document.setCreater("mrlee");
document.setTitle("测试标题");
session.save(document);
session.getTransaction().commit();
}

5/创建流程实例与公文互相绑定

public class Jbpm_04_CreateProcessInstance extends TestCase {
static JbpmConfiguration jbpmConfiguration = JbpmConfiguration
.getInstance();
Configuration configuration = new Configuration();
SessionFactory sessionFactory = configuration.configure()
.buildSessionFactory();


public void test() {
// 创建context对象
JbpmContext context = jbpmConfiguration.createJbpmContext();
// 将jbpm与程序中的session绑定
context.setSessionFactory(sessionFactory);
// 从数据库中加载processdefinition对象
ProcessDefinition processDefinition = context.getGraphSession()
.findLatestProcessDefinition("文档测试流程");
// 从流程中创建流程实例
ProcessInstance instance = new ProcessInstance(processDefinition);
// 存储流程实例
context.save(instance);
// 加载公文
Document document = (Document) context.getSession().load(
Document.class, 1);
// 绑定流程实例到公文
document.setProcessInstanceId(instance.getId());
// 绑定公文到流程实例(ProcessInstance 相对于变量容器)
instance.getContextInstance().createVariable("document",
document.getId());
context.close();
}
}

你可能感兴趣的:(jbpm使用)