JBPM常用方法

最近开始了解JBPM,边学,边总结一下常用的方法

[b]获得JBPM上下文[/b]

//默认使用名为"jbpm.cfg.xml"的配置文件
JbpmConfiguration configuration = JbpmConfiguration.getInstance();
//JbpmConfiguration configuration = JbpmConfiguration.getInstance(cfgName);
//使用默认工厂实例对应的名称为 JbpmContext.DEFAULT_JBPM_CONTEXT_NAME
JbpmContext context = configuration.createJbpmContext() ;
//JbpmContext context = configuration.createJbpmContext(contextName) ;

//保存流程实例
context.deployProcessDefinition(ProcessDefinition processDefinition);


[b]持久相关的操作[/b]

TaskMgmtSession mgmtSession = context.getTaskMgmtSession();
/**
*DbPersistenceServiceFactory dbPersistenceServiceFactory = (DbPersistenceServiceFactory) jbpmConfiguration.getServiceFactory(Services.SERVICENAME_PERSISTENCE);
DbPersistenceService service = (DbPersistenceService)dbPersistenceServiceFactory.openService();

DbPersistenceService service = new DbPersistenceService( dbPersistenceServiceFactory);
service.getTaskMgmtSession();
*/



[b]加载流程创建实例[/b]

InputStream is = MyClass.class.getResourceAsStream("processdefinition_web.xml");
ProcessDefinition processDefinition = ProecessDefinition.parseXmlInputStream(is);
ProcessInstance processInstance = new ProcessInstance(processDefinition);




[b]获得流程定义中的节点[/b]

//通过当前的根令牌所在的节点
Node node = processInstance.getRootToken().getNode();
//通过名称检索节点
Node node = processDefinition.getNode(nodeName);



[b]执行指定名称的transition[/b]

//节点open定义了两个Transition
/*<state name="Open">
* <transition name="close" to="Closed" />
* <transition name="lock" to="Open Locked" />
*</state>
*/

Node node = processDefinition.getNode("Open");
processInstance.getRootToken().setNode(node);
processInstance.signal("lock");

//assertSame(processInstance.getRootToken().getNode(),processDefinition.getNode("Open Locked"));

//processInstance.signal();
//assertSame(processInstance.getRootToken().getNode(),processDefinition.getNode("Closed"));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值