`
zybing
  • 浏览: 457304 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

jBPM4.4:如何图示化显示当前的流程执行到了哪一步骤

阅读更多

流程执行时,有时候需要看一下当前的工作卡在哪一步了,对于熟悉流程的人员来说,看到节点的名字即可。对于不熟悉的人员来讲,就需要把整个流程图显示出来,把当前的工作点标注出来。

 

在生成工作流程xml文件的时候,已经生成了一个工作流程的png流程图,只需要在这个png上把当前活跃的节点表示出来即可。

网上的一种做法很简单,就是在这个png上再加一个div层,把执行的活跃节点框起来就可以了。

 

首先:

1. 获取当前的流程图显示

2. 获取当前的活跃节点

3. 生成相关的Div层

 

 

详细代码:

1. 获取当前的流程图:

  由于流程图是放在load字段中的(发布的时候,需要把流程图和xml文件打包成zip文件一起发布,否则后面是找不到这个png文件的),通过RepositoryService获取到流程图:

 

InputStream is = repositoryService.getResourceAsStream(deployId, pngFileName);

//这个inputstream中的内容就是图片,直接输出到页面中
byte[] pic = new byte[1024];
int len = -1;
while( (len=is.read(pic,1024) )!=-1 ){
  response.getOutputStream().write(pic, 0, len );
}
 

 

以上的工作可以放在一个单独的页面中完成,作用就是输出图片。

 

2. 获取当前活跃的节点:

 

// 通过processId,获取到processInstance
ProcessInstance pi = executionService.findProcessInstanceById(id);

// 获取所有活跃的节点:
Set<String> activitySet = pi.findActiveActivityName();
 

 

3. 在页面上输出:

首先输出完成的png图片,随后在每个活跃的节点上画一个框:

输出png图片:

 

<img src="第一步完成的页面地址?参数" style="position:absolute;left:0px;top:0px;">

// 注意这里面style,要和后面画框的div匹配,否则对不起来了
 

 

画框:

 

//刚才已经获取了所有的活跃节点
<%
for( String activityName : activitySet ) {
  ActivityCoordinates ac = repositoryService.getActivityCoordinates( 
       pi.getProcessDefinitionId();  activityName );
%>

// 每个活跃节点上,画一个框
<div style="position:absolute; border; 1px solid red; left:<%=ac.getX()%>; top:<%=ac.getY()%>;width:<%=ac.getWidth()%>;height:<%=ac.getHeight()%>;"   />

<% } %>

 

 

分享到:
评论
5 楼 zybing 2012-11-06  
ganjiang 写道
有点疑惑,请lz指点,1.那个“deployId”不知是那个id,我这边测试不通过。
2.while( (len=is.read(b,1024) )!=-1 ){这一行中的“b”好像没有声明。
3.ActivityCoordinates ac = repositoryService.getActivitycoordinates(  
       pi.getProcessDefinitionId();  activityName );  这一行中的“getActivitycoordinates”应该是“getActivityCoordinates”,两个参数中间的;应该是,吧。
4.<%=ac.getHeight%>应该是<%=ac.getHeight()%>吧


把b ,  改成了pic ,  这样就清晰了
4 楼 zybing 2012-11-06  
ganjiang 写道
有点疑惑,请lz指点,

1.那个“deployId”不知是那个id,我这边测试不通过。
   每次流程发布, 都会返回一个Id,  deployId就是流程发布时候系统的id, 
   见: http://zybing.iteye.com/blog/740944, 就是这里面的deployId

2.while( (len=is.read(b,1024) )!=-1 ){这一行中的“b”好像没有声明。
   这里的代码,是节选的部分主要代码,能够说明意思就可以了.
   是会遇到某些变量,或者某些函数没有定义的情况,  不过不影响意思的表达

3.ActivityCoordinates ac = repositoryService.getActivitycoordinates(  
       pi.getProcessDefinitionId();  activityName );  这一行中的“getActivitycoordinates”应该是“getActivityCoordinates”,两个参数中间的;应该是,吧。
   应该是吧

4.<%=ac.getHeight%>应该是<%=ac.getHeight()%>吧
   嗯,是漏了一个括号

说明一下:
   由于工作环境在内网, 不能直接上网, 因此这里贴出的代码, 都是对照着内网的屏幕再一次手工输入的,错误在所难免. 这些代码没有经过编译器的验证, 更别提测试了.  但是这些代码已经能够说明工作的主要思路,以及技术的运用了.

谢谢这位网友耐心的一一指出错误



3 楼 ganjiang 2012-11-05  
有点疑惑,请lz指点,1.那个“deployId”不知是那个id,我这边测试不通过。
2.while( (len=is.read(b,1024) )!=-1 ){这一行中的“b”好像没有声明。
3.ActivityCoordinates ac = repositoryService.getActivitycoordinates(  
       pi.getProcessDefinitionId();  activityName );  这一行中的“getActivitycoordinates”应该是“getActivityCoordinates”,两个参数中间的;应该是,吧。
4.<%=ac.getHeight%>应该是<%=ac.getHeight()%>吧
2 楼 zybing 2012-11-05  
ganjiang 写道
好多错误!!!


请指点一二, 我来改

ganjiang 写道
好多错误!!!

1 楼 ganjiang 2012-11-05  
好多错误!!!

相关推荐

    jBPM4.4.rar_jbpm4.4_jbpm4.4 PDF

    3. **流程执行**:jBPM4.4提供了一个流程引擎,用于解析流程定义并执行流程实例。引擎支持流程的启动、挂起、恢复、终止等操作,并能处理并发和分支逻辑。 4. **任务管理**:jBPM中的任务服务允许用户交互地处理...

    jBPM4.4开发实例

    通过这个入门实例,开发者可以学习到如何使用jBPM4.4进行流程设计、部署和执行的基本操作,并逐步掌握其在实际项目中的应用。在实践中不断探索和深入,才能更好地利用jBPM4.4实现业务流程自动化,提高工作效率。

    jbpm4.4下载地址

    1. **流程定义语言**:jBPM 4.4支持多种流程定义语言,包括BPMN2.0(Business Process Model and Notation),这是一种标准化的图形表示法,用于描述业务流程。此外,它还支持JPDL(jBPM Process Definition ...

    jbpm4.4文档+学习资料

    jbpm4.4是JBoss企业级业务流程管理(Business Process Management)平台的一个重要版本,它为开发者提供了全面的工作流和业务流程管理解决方案。本文将深入解析jbpm4.4的相关知识点,帮助那些寻找优质学习资源的朋友...

    jbpm4.4+s2sh请假流程例子

    【jbpm4.4+s2sh请假流程例子】是一个典型的结合了jbpm4.4工作流引擎和Struts2、Spring、Hibernate(S2SH)框架的实战项目,旨在演示如何在企业级应用中实现一个完整的请假流程。在这个例子中,jbpm4.4作为流程管理的...

    JBPM4.4完整可用审批流程

    JBPM4.4是JBoss Business Process Management (BPM)平台的一个版本,它是一个开源的企业级BPM解决方案,用于设计、执行和管理业务流程。在这个完整的审批流程工程中,我们看到它采用Maven进行项目构建和依赖管理,...

    jbpm4.4 流程运转+驳回+分配组任务+ssh2

    - **流程定义与建模**:jbpm4.4使用BPMN(Business Process Modeling Notation)进行流程建模,这是一种标准化的语言,允许用户以图形化方式设计和理解复杂的业务流程。 - **流程实例**:一旦流程定义完成,可以...

    jBPM 4.4用户手册 中文PDF

    **jBPM 4.4** 是一个开源的工作流程管理系统,由Red Hat公司开发并维护,主要用于业务流程管理(BPM)和工作流自动化。该系统提供了强大的流程建模、执行和监控功能,支持Java平台,并与Java EE和Spring框架高度集成...

    jbpm4.4中文开发指南

    1. **流程建模**: jbpm4.4使用BPMN(Business Process Model and Notation)2.0标准进行流程建模,这是一种图形化的方式,使得业务人员和开发者可以直观地理解并创建流程。BPMN符号包括活动、事件、网关、数据对象等...

    jbpm4.4 在线设计流程图 ext + raphael

    jbpm4.4是一款强大的业务流程管理(BPM)框架,它允许开发者设计、执行和管理复杂的业务流程。在线设计流程图功能使得流程设计更为直观和便捷,无需离开Web环境即可完成。本教程将深入探讨jbpm4.4的在线设计流程图...

    JBPM4.4流程管理Demo(附学习资料)

    在JBPM4.4Demo中,这些步骤被转化为可执行的工作流任务,通过定义流程图和配置业务规则,实现自动化流转。 4. **UserController.java** - 提到的`UserController.java`是项目中的关键组件,它包含初始化流程所需的...

    JBPM4.4资料的其他补充

    1. **流程建模**:JBPM4.4支持BPMN(Business Process Modeling Notation)2.0标准,这是一种图形化语言,使得业务流程的建模更为直观和易于理解。用户可以通过Eclipse插件或直接编写XML文件来创建流程定义。 2. **...

    jBPM4.4开发指南

    ### jBPM4.4开发指南关键知识点解析 #### 一、工作流基础与概念 **1. 工作流定义** 工作流是指业务过程的部分或整体在计算机应用环境下的自动化,其目的是为了使在多个参与者之间按照某种预定义的规则传递文档、...

    jbpm4.4表字段说明

    JBPM4.4是JBoss Business Process Management (BPM)平台的一个特定版本,它提供了用于设计、执行和管理业务流程的工具和框架。在JBPM4.4中,数据库是存储流程实例、流程定义以及相关元数据的关键部分。以下是关于...

    jbpm4.4开发用户指南

    jBPM 4.4是Java Business Process Management(业务流程管理)的一个版本,它是一个开源的工作流管理系统,用于实现业务流程自动化。这个压缩包包含了两个关键文档:《jBPM 4.4 开发指南》和《jBPM 4.4 用户指南》,...

    jbpm4.4 简单请假流程

    jbpm4.4是JBoss企业级业务流程管理(Business Process Management)套件的一个版本,它提供了一整套工具和服务,用于设计、部署和执行业务流程。在这个“简单请假流程”中,我们可以深入理解jbpm4.4如何帮助开发者...

    jbpm4.4入门编程小例子

    - **流程定义语言 (BPMN 2.0)**:jbpm4.4支持Business Process Modeling Notation 2.0,这是一种标准的流程建模语言,提供了图形化的方式来描述业务流程。 - **流程引擎**:执行流程实例的中心组件,负责解析流程...

    jBPM4.4 详解 API 中文

    ### jBPM4.4 API 详解:工作流自动化的核心技术 ...以上步骤不仅为jBPM4.4的开发环境搭建提供了详实的指南,同时也深入解析了工作流自动化的基本原理与jBPM4.4的工作机制,为IT从业者及开发者提供了宝贵的参考资料。

Global site tag (gtag.js) - Google Analytics