`
jeffen2006
  • 浏览: 260598 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

jpbm如何获得流程所处的环节。

阅读更多

今天中午,一个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>

 

 

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();
            }

    }
    

 

 



分享到:
评论
3 楼 jeffen2006 2007-01-09  
给个例子吧,看不明白。
2 楼 wli 2007-01-09  
不好意思,上一条没有讲清楚:在action内调用token.signal()没有效果,必须在另外一个单独的事务中调用才行。
有什么办法在跳到一个node后(不通过transition) 让它不需干预就继续执行吗?
1 楼 wli 2007-01-09  
请教一个问题:
在exception handler中 将token转到指定的一个node时,转过去后改node中的action并不会自动执行,而需要调用token.signal()后才能继续? 这是为什么啊?

相关推荐

    流程控制应用JPBM

    标题中的“流程控制应用JPBM”指的是Java Process Business Modeler,它是一种用于设计、执行和管理业务流程的技术。JPBM通常结合Java技术和企业级服务来实现业务流程的自动化。在这个场景中,我们可以推断出讨论的...

    jpbm流程图示例,js版本的流程图

    在本案例中,我们关注的是"jpbm流程图示例,js版本的流程图",这意味着我们将讨论如何使用JavaScript实现流程图的绘制和交互功能。 流程图通常由一系列图形节点(如开始、结束、决策、活动等)和连接这些节点的线条...

    JPBM实战经验以及相关参考文档

    通过这份笔记,你可以理解如何使用JPBM的建模工具创建流程图,以及如何使用JPBM API进行流程的启动、干预和终止。此外,它也可能包含了关于JPBM的工作流引擎、任务服务和规则服务的详细解释。 最后,"jbpm开发指南....

    jpbm公文流转实现

    在"jpbm"系统中,每个公文可能涉及多个审批环节,这些环节可以看作是任务节点,每个节点对应一个或多个需要处理公文的用户。当公文到达某个节点时,系统会自动将任务分配给对应的用户,用户登录系统后,可以在待办...

    深入浅出JPBM 第9章相关源代码

    《深入浅出JPBM》是一本专注于Java流程管理(Business Process Management, BPM)技术的书籍,其中第9章可能详细探讨了JPBM的核心概念、设计原则以及实际应用。源代码通常用于辅助理解书中的理论知识,使读者能够...

    jpbm eclipse插件

    综上所述,`jpbm eclipse插件`3.0.13版为Eclipse带来了强大的业务流程建模能力,通过其丰富的用户界面、配置文件、图标资源、元数据和必要的库文件,确保了开发人员能够高效、直观地进行业务流程的设计和管理。...

    JPBM 开发手册 开发指南

    《JPBM 开发手册 开发指南》是一份专注于企业级业务流程管理(Business Process Management,简称BPM)的综合指导文档,特别针对JBoss、jBPM和jPDL技术进行了深入阐述。这份资料旨在帮助开发者高效地利用这些工具...

    JPBM的学习文档,学习工作流的朋友可以看看

    JPBM(JBoss Business Process Management Suite)是Red Hat公司开发的一款开源工作流引擎,它提供了业务流程管理的全套解决方案,包括流程设计、执行、监控和优化。 在《JBPM工作流开发指南》中,首先会介绍工作流...

    myeclipse中安装jpbm插件

    ### myeclipse中安装jpbm插件 #### 背景介绍 在软件开发过程中,集成各种插件是提高工作效率的重要手段之一。对于使用MyEclipse进行Java开发的工程师而言,安装JBPM(Business Process Management)插件可以极大地...

    深入浅出JPBM 第7章源代码

    【深入浅出JPBM 第7章源代码】是关于企业级业务流程管理(Business Process Management,简称BPM)系统开发的实践教程。本章节聚焦于报销与采购流程的实现,通过提供完整的工程源代码,帮助读者更直观地理解JPBM在...

    JPBM实例报销和采购源代码

    - **工作流管理系统**:JPBM作为一个工作流引擎,负责管理业务流程中的任务分配、流转、审批等环节。 - **核心组件**:包括流程定义(BPMN模型)、流程实例、任务服务、历史服务等,支持业务流程的生命周期管理。 ...

    JPBM.zip_jbpm_jpbm

    "JPBM╢}╡o½ⁿ½n.pdf" 这个文件可能是JBPM 4.0开发手册的PDF版,其中可能涵盖了以上所有知识点的详细讲解,包括流程设计实例、代码示例、配置教程以及常见问题解答等内容。对于想要深入学习和使用JBPM 4.0的...

    jpbm文件流jar包

    jpbm文件流依赖库,jbpm-jpdl-3.2.GA\jbpm-jpdl.jar

    JBPM4.0经典实例

    【JBPM4.0经典实例】是一个以JBPM4.0为核心技术的毕业设计管理系统,该系统涵盖了两个关键的工作流程,即毕业设计选题出题流程和毕业设计提交流程。JBPM(Java Business Process Management)是一款开源的工作流管理...

    jpbm jar包和资料

    标签"jpbm"可能是"Jboss Process Business Manager"的缩写,这是一个用于业务流程管理(Business Process Management,简称BPM)的开源框架。jbpm提供了建模、部署、执行和监控业务流程的能力,它基于Java技术,并且...

    JPBM,SQLServer 2008设置

    综上所述,JPBM与SQL Server 2008的集成是一个涉及多个步骤的综合过程,需要细致的规划和配置。对于企业来说,这样的集成不仅仅提升了业务流程管理的效率和自动化程度,也为数据的安全性、稳定性和可靠性提供了保障...

    工作流jpbm集成在ssh中(非原创)

    工作流(Workflow)系统是企业信息化建设中的重要组成部分,它能够帮助企业规范业务流程,提高工作效率。jBPM(Java Business Process Management)是一个开源的工作流管理系统,用于执行业务流程模型。SSH(Spring...

    jpbm工作流例子,已经搭建好,部署就可以

    1. **流程设计**:使用jbpm提供的流程设计器,可以设计出流程图,包括任务节点、决策节点、事件节点等。 2. **流程部署**:设计完成后,将流程模型导出并部署到jbpm服务器,服务器会解析模型并准备好执行。 3. **...

Global site tag (gtag.js) - Google Analytics