jpbm如何获得流程所处的环节。
来源:互联网 发布:信贷员客户资源软件 编辑:程序博客网 时间:2024/04/23 19:43
今天中午,一个msn的朋友问起这个问题, 就在这里说明一下吧。
我们都玩过击鼓传花的游戏,花在众人的手里不停的传递,鼓停了,花在谁手里就代表了这个击鼓传花的流程进行到哪个环节了。对于jbpm,roottoken就是这个花,我们可以通过Token token = processInstance.getRootToken();token.getNode()得到某一个流程实例所处的环节。
但是有一个问题,对于某些流程会生成子token,比如fork节点,如果子token没有全部完成,那么roottoken就始终处于fork节点,如果我们需要得到fork下流程的执行情况只看roottoken就不行了,就需要处理这些子token,当然如果有嵌套的fork那就要去遍历了。下面给出没有嵌套的处理代码:
<?xml version="1.0" encoding="UTF-8"?>
<process-definition xmlns="" name="yytest">
<start-state name="s">
<transition name="s" to="bf"/>
</start-state>
<state name="bf">
<transition to="f"/>
</state>
<fork name="f">
<transition name="ns1" to="s1"/>
<transition name="ns2" to="s2"/>
<transition name="ns3" to="s3"/>
</fork>
<state name="s1">
<transition to="j"/>
</state>
<state name="s2">
<transition to="j"/>
</state>
<state name="s3">
<transition to="j"/>
</state>
<join name="j">
<transition to="af"/>
</join>
<state name="af">
<transition to="e"/>
</state>
<end-state name="e"/>
</process-definition>
<process-definition xmlns="" name="yytest">
<start-state name="s">
<transition name="s" to="bf"/>
</start-state>
<state name="bf">
<transition to="f"/>
</state>
<fork name="f">
<transition name="ns1" to="s1"/>
<transition name="ns2" to="s2"/>
<transition name="ns3" to="s3"/>
</fork>
<state name="s1">
<transition to="j"/>
</state>
<state name="s2">
<transition to="j"/>
</state>
<state name="s3">
<transition to="j"/>
</state>
<join name="j">
<transition to="af"/>
</join>
<state name="af">
<transition to="e"/>
</state>
<end-state name="e"/>
</process-definition>
private static void run()...{
JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
try ...{
long processInstanceId =1;
processInstance = jbpmContext.loadProcessInstance(processInstanceId);
Token token = processInstance.getRootToken();
token.signal();
token.signal();
// token.getChild("ns1").signal();
token.getChild("ns3").signal();
Iterator i=token.getActiveChildren().values().iterator();
while(i.hasNext())...{
Token childToken=(Token)i.next();
if(childToken.isAbleToReactivateParent())...{
System.out.println("还需要处理的子token为"+childToken.getNode());
}
}
}finally ...{
jbpmContext.close();
}
}
JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
try ...{
long processInstanceId =1;
processInstance = jbpmContext.loadProcessInstance(processInstanceId);
Token token = processInstance.getRootToken();
token.signal();
token.signal();
// token.getChild("ns1").signal();
token.getChild("ns3").signal();
Iterator i=token.getActiveChildren().values().iterator();
while(i.hasNext())...{
Token childToken=(Token)i.next();
if(childToken.isAbleToReactivateParent())...{
System.out.println("还需要处理的子token为"+childToken.getNode());
}
}
}finally ...{
jbpmContext.close();
}
}
- jpbm如何获得流程所处的环节。
- jpbm开发流程
- 如何获得所选radio的值
- CListCtrl如何获得所选项的内容
- jpbm
- 传智播客jbpm学习,jpbm中流程执行比较重要的类和方法
- JPBM(四)管理流程定义
- Python中如何获得访问网页所返回的cookie
- ( 一 ) Jpbm环境的搭建
- 软件测试的重要环节:Bug管理流程
- 软件测试的重要环节:Bug管理流程
- PO(采购)流程影响会计的环节分析
- 时序图(敏捷开发流程的所有环节)
- 演示如何在物理内存中如何获得所须的BIOS信息
- 商品流通的中间环节该如何面对互联网+
- 如何完成知识问答环节中的前期设置,题目准备及现场操作等主要流程?
- 在opencv中,如何获得contour所包围的范围内的值
- 微博 如何获得status中的缩略图所对应的大图的地址?
- 如何养肝血
- Linux download and installation for JRE
- BEA: 展望面向服务领域
- linux下mozilla的java插件配置
- 我认识的Windows,Linux,Unix
- jpbm如何获得流程所处的环节。
- 做老板的十种经商才能
- 推荐几个不错的内容联盟网站
- 美国软件测试组织最新的教育课程主题 (转贴)
- 软件测试工程师薪资水平报道分析(转贴)
- MATLAB中的径向基函数
- 好久没来了
- 使用epoll进行高性能网络编程
- Kingofark关于学习C++和编程的50个观点2003修订版