流程执行时,有时候需要看一下当前的工作卡在哪一步了,对于熟悉流程的人员来说,看到节点的名字即可。对于不熟悉的人员来讲,就需要把整个流程图显示出来,把当前的工作点标注出来。
在生成工作流程xml文件的时候,已经生成了一个工作流程的png流程图,只需要在这个png上把当前活跃的节点表示出来即可。
网上的一种做法很简单,就是在这个png上再加一个div层,把执行的活跃节点框起来就可以了。
首先:
1. 获取当前的流程图显示
2. 获取当前的活跃节点
3. 生成相关的Div层
详细代码:
1. 获取当前的流程图:
由于流程图是放在load字段中的(发布的时候,需要把流程图和xml文件打包成zip文件一起发布,否则后面是找不到这个png文件的),通过RepositoryService获取到流程图:
Java代码
InputStream is = repositoryService.getResourceAsStream(deployId, pngFileName);
//这个inputstream中的内容就是图片,直接输出到页面中
byte[] pic = new byte[1024];
int len = -1;
while( (len=is.read(b,1024) )!=-1 ){
response.getOutputStream().write(pic, 0, len );
}
InputStream is = repositoryService.getResourceAsStream(deployId, pngFileName); //这个inputstream中的内容就是图片,直接输出到页面中 byte[] pic = new byte[1024]; int len = -1; while( (len=is.read(b,1024) )!=-1 ){ response.getOutputStream().write(pic, 0, len ); }
以上的工作可以放在一个单独的页面中完成,作用就是输出图片。
2. 获取当前活跃的节点:
Java代码
// 通过processId,获取到processInstance
ProcessInstance pi = executionService.findProcessInstanceById(id);
// 获取所有活跃的节点:
Set<String> activitySet = pi.findActiveActivityName();
// 通过processId,获取到processInstance ProcessInstance pi = executionService.findProcessInstanceById(id); // 获取所有活跃的节点: Set<String> activitySet = pi.findActiveActivityName();
3. 在页面上输出:
首先输出完成的png图片,随后在每个活跃的节点上画一个框:
输出png图片:
Html代码
<img src="第一步完成的页面地址?参数" style="position:absolute;left:0px;top:0px;">
// 注意这里面style,要和后面画框的div匹配,否则对不起来了
<img src="第一步完成的页面地址?参数" style="position:absolute;left:0px;top:0px;"> // 注意这里面style,要和后面画框的div匹配,否则对不起来了
画框:
Html代码
//刚才已经获取了所有的活跃节点
<%
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%>;" />
<% } %>
//刚才已经获取了所有的活跃节点 <% 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%>;" /> <% } %>
分享到:
相关推荐
3. **流程执行**:jBPM4.4提供了一个流程引擎,用于解析流程定义并执行流程实例。引擎支持流程的启动、挂起、恢复、终止等操作,并能处理并发和分支逻辑。 4. **任务管理**:jBPM中的任务服务允许用户交互地处理...
通过这个入门实例,开发者可以学习到如何使用jBPM4.4进行流程设计、部署和执行的基本操作,并逐步掌握其在实际项目中的应用。在实践中不断探索和深入,才能更好地利用jBPM4.4实现业务流程自动化,提高工作效率。
1. **流程定义语言**:jBPM 4.4支持多种流程定义语言,包括BPMN2.0(Business Process Model and Notation),这是一种标准化的图形表示法,用于描述业务流程。此外,它还支持JPDL(jBPM Process Definition ...
jbpm4.4是JBoss企业级业务流程管理(Business Process Management)平台的一个重要版本,它为开发者提供了全面的工作流和业务流程管理解决方案。本文将深入解析jbpm4.4的相关知识点,帮助那些寻找优质学习资源的朋友...
【jbpm4.4+s2sh请假流程例子】是一个典型的结合了jbpm4.4工作流引擎和Struts2、Spring、Hibernate(S2SH)框架的实战项目,旨在演示如何在企业级应用中实现一个完整的请假流程。在这个例子中,jbpm4.4作为流程管理的...
JBPM4.4是JBoss Business Process Management (BPM)平台的一个版本,它是一个开源的企业级BPM解决方案,用于设计、执行和管理业务流程。在这个完整的审批流程工程中,我们看到它采用Maven进行项目构建和依赖管理,...
- **流程定义与建模**:jbpm4.4使用BPMN(Business Process Modeling Notation)进行流程建模,这是一种标准化的语言,允许用户以图形化方式设计和理解复杂的业务流程。 - **流程实例**:一旦流程定义完成,可以...
**jBPM 4.4** 是一个开源的工作流程管理系统,由Red Hat公司开发并维护,主要用于业务流程管理(BPM)和工作流自动化。该系统提供了强大的流程建模、执行和监控功能,支持Java平台,并与Java EE和Spring框架高度集成...
1. **流程建模**: jbpm4.4使用BPMN(Business Process Model and Notation)2.0标准进行流程建模,这是一种图形化的方式,使得业务人员和开发者可以直观地理解并创建流程。BPMN符号包括活动、事件、网关、数据对象等...
jbpm4.4是一款强大的业务流程管理(BPM)框架,它允许开发者设计、执行和管理复杂的业务流程。在线设计流程图功能使得流程设计更为直观和便捷,无需离开Web环境即可完成。本教程将深入探讨jbpm4.4的在线设计流程图...
在JBPM4.4Demo中,这些步骤被转化为可执行的工作流任务,通过定义流程图和配置业务规则,实现自动化流转。 4. **UserController.java** - 提到的`UserController.java`是项目中的关键组件,它包含初始化流程所需的...
1. **流程建模**:JBPM4.4支持BPMN(Business Process Modeling Notation)2.0标准,这是一种图形化语言,使得业务流程的建模更为直观和易于理解。用户可以通过Eclipse插件或直接编写XML文件来创建流程定义。 2. **...
JBPM4.4是JBoss Business Process Management (BPM)平台的一个特定版本,它提供了用于设计、执行和管理业务流程的工具和框架。在JBPM4.4中,数据库是存储流程实例、流程定义以及相关元数据的关键部分。以下是关于...
jBPM 4.4是Java Business Process Management(业务流程管理)的一个版本,它是一个开源的工作流管理系统,用于实现业务流程自动化。这个压缩包包含了两个关键文档:《jBPM 4.4 开发指南》和《jBPM 4.4 用户指南》,...
jbpm4.4是JBoss企业级业务流程管理(Business Process Management)套件的一个版本,它提供了一整套工具和服务,用于设计、部署和执行业务流程。在这个“简单请假流程”中,我们可以深入理解jbpm4.4如何帮助开发者...
- **流程定义语言 (BPMN 2.0)**:jbpm4.4支持Business Process Modeling Notation 2.0,这是一种标准的流程建模语言,提供了图形化的方式来描述业务流程。 - **流程引擎**:执行流程实例的中心组件,负责解析流程...
### jBPM4.4 API 详解:工作流自动化的核心技术 ...以上步骤不仅为jBPM4.4的开发环境搭建提供了详实的指南,同时也深入解析了工作流自动化的基本原理与jBPM4.4的工作机制,为IT从业者及开发者提供了宝贵的参考资料。
3. **jbpm架构**:jbpm4.4由多个组件构成,如流程引擎、规则引擎(Drools)、持久化层(JPA或Hibernate)和工作记忆等。理解这些组件的功能和交互方式是掌握jbpm的关键。 4. **部署与执行**:手册将指导用户如何...
2. **工作流引擎**:jbpm4.4包含一个强大的工作流引擎,能够执行流程实例,处理任务分配,以及根据流程定义自动执行流程步骤。引擎支持动态流程更改,使得在运行时调整流程成为可能。 3. **持久化**:jbpm4.4使用...