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

原创 2006年11月30日 14:59:00

今天中午,一个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();
            }

    }
    

 

 

activiti 流程定义(二)

import java.io.File; import java.io.IOException; import java.io.InputStream; import java.util.List; ...
  • hichinamobile
  • hichinamobile
  • 2016年04月28日 17:56
  • 522

如何完成知识问答环节中的前期设置,题目准备及现场操作等主要流程?

1.前期设置题目 2.准备现场操作 3.特殊问题 4.重要提示
  • boomcode
  • boomcode
  • 2016年12月13日 22:18
  • 870

JBPM图形化流程监控

已经可以比较好的运行JBPM了,但是如果能以图形化的方式显示工作流,并且把当前节点高亮显示,这样可用性就更好了,用户可以很轻松的看到当前流程到哪个节点了。       我发现JBPM的starters...
  • lansky07
  • lansky07
  • 2008年04月16日 19:26
  • 1516

JBPM发布流程、查询流程、删除流程

package com.clj; import java.util.List; import org.jbpm.api.Configuration; import org.jbpm.ap...
  • clj198606061111
  • clj198606061111
  • 2012年12月30日 21:59
  • 3942

scrapy架构初探

scrapy架构初探引言 Python即时网络爬虫启动的目标是一起把互联网变成大数据库。单纯的开放源代码并不是开源的全部,开源的核心是“开放的思想”,聚合最好的想法、技术、人员,所以将会...
  • qq_34162294
  • qq_34162294
  • 2017年05月16日 21:20
  • 1485

什么是编写教学设计流程图

一、教学过程结构流程图的概念   教学过程结构流程图是教学设计方案的组成部分和图示。   教学过程结构流程图是近几年教科研活动中经常应用的一种课堂教学过程图示,具有设计科学、应用方便、美观明了等特...
  • xiaolinxi
  • xiaolinxi
  • 2013年06月28日 13:59
  • 1676

绝了,我想起来了不启动流程取得第一任务的下一环节

由第一个task获取下一个task是什么(为了页面动态显示,客户选择),然后启动流程,指定task 思路,发布流程获取flowKey--》根据flowKey获取所有的环节--》根据activityI...
  • luman1991
  • luman1991
  • 2016年12月06日 10:28
  • 200

【spider】scrapy 架构

如图我们可以看到这是scrapy的大致结构,scrapy的运行流程: 1.scrapy engine打开一个domain,并根据domain找到对应的处理这个domain的spider(spid...
  • captain811
  • captain811
  • 2018年01月30日 13:14
  • 21

JPBM(四)管理流程定义

概念: ProcessDefinition,流程定义:一个流程的步骤说明,如一个请假流程、报销流程、是一个规则。 ProcessDefinition,流程定义对象,是解析.jpdl.xml...
  • hlbt0112
  • hlbt0112
  • 2016年08月31日 09:15
  • 103

知识竞赛时,竞赛活动主题及环节主题如何修改?

第一步: 点击 菜单 设置/基本选项  修改 环节数目 为本次比赛的实际环节数目.   第二步:点击 菜单 设置中的第二个命令,打开如下界面: 填写修改左下方的1至8环节名称的描述信息.文字中的*...
  • boomcode
  • boomcode
  • 2016年10月09日 09:21
  • 882
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:jpbm如何获得流程所处的环节。
举报原因:
原因补充:

(最多只允许输入30个字)