- 浏览: 458905 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (233)
- 技术日志 (87)
- portal (7)
- jBPM/Activiti (34)
- Roller学习 (18)
- Java基础、网站开发 (19)
- 收藏URL (4)
- UML (3)
- linux操作 (7)
- 工作环境准备 (8)
- Mina (15)
- tomcat (8)
- Mylyn (3)
- sina网站 (2)
- 规则引擎 (3)
- 工作记录 (11)
- html(5) (9)
- 手机开发 (3)
- oracle (26)
- 常用的 (2)
- maven (8)
- hadoop (0)
- xml (7)
- 错误解决 (5)
- linux (1)
- c# (2)
- c++ (1)
- node.js (1)
- 银行业务知识 (1)
- Java调试 (0)
最新评论
-
tomcatmeng:
请问候选用户是怎样task自己的任务,看网上说先根据任务id先 ...
jBPM4.4:ForEach的使用--动态设置参与人数 -
maoweiwer:
友情提醒:如果是在MYSQL下创建数据库,则还需要更改\jbp ...
jBPM4.4: 创建数据库表 -
zybing:
<div class="quote_title ...
jBPM4.4:如何图示化显示当前的流程执行到了哪一步骤 -
zybing:
<div class="quote_title ...
jBPM4.4:如何图示化显示当前的流程执行到了哪一步骤 -
ganjiang:
有点疑惑,请lz指点,1.那个“deployId”不知是那个i ...
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()%>吧
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()%>吧
嗯,是漏了一个括号
说明一下:
由于工作环境在内网, 不能直接上网, 因此这里贴出的代码, 都是对照着内网的屏幕再一次手工输入的,错误在所难免. 这些代码没有经过编译器的验证, 更别提测试了. 但是这些代码已经能够说明工作的主要思路,以及技术的运用了.
谢谢这位网友耐心的一一指出错误
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.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+SpringSecurity用户合并到自己体系中来
2011-12-30 10:53 3524jbPM4.4中的用户: 见:http://zybin ... -
从JBPM4以后的走向
2011-12-23 09:47 2111从JBPM4以后, 原来jBPM的设计师Tom Baeye ... -
jBPM4.4:查找任务完成过程
2011-08-29 11:50 2689在jBPM中,历史的任务,通过historyService可以 ... -
【jBPM】jbpm怎么获取下一个节点的任务定义,注意不是任务实例。
2011-08-27 06:19 3449http://jbpm.group.iteye.com/gro ... -
jBPM4:在Listen中使用Spring的Bean
2010-12-07 10:23 1908jBPM和Spring结合,在spring中配置了大量的Bea ... -
jBPM4:sub-process
2010-11-16 10:03 1850看了一下sub-process, ... -
jBPM4.4:配置(包括和Spring的整合,和Hibernate配置)
2010-11-08 14:50 5277jBPM4.4,获取ProcessEngine是通过Confi ... -
jBPM4:接在现有的系统上,需要更换用户体系
2010-10-08 17:59 2382在现有的应用上,接入jBPM,要修改的就是jBPM的用户体系。 ... -
jBPM4.4:ForEach的使用--动态设置参与人数
2010-09-13 14:34 7721流程确定的情况下,有时候完成一个步骤人数不确定,在任务发布的时 ... -
jBPM4.4:动态创建连接
2010-09-02 18:23 2384参考了这篇文档的思路: http://man1900.ite ... -
jBPM4.4:完成任务的几种方法
2010-09-02 13:46 1787开始了一个Process,需要完成任务,完成任务有以下几种方法 ... -
jBPM4.4:ProcessFactory和ProcessDefinitionBuilder
2010-08-31 15:44 1597在文档中,有例子可以 ... -
jBPM4.4:在看开发指南之前总结一下
2010-08-31 10:08 2153jBPM4.4: 源头是Config ... -
jBPM4.4 -- 深入了解数据库结构、关系
2010-08-27 17:13 2915重新深入了解jBPM4.4的数据库表、以及之间的关系: ... -
jBPM4.4: 动态创建执行路径 -- 类似与会签等
2010-08-25 16:23 6494工作场景: 有一项任务需要完成,不同的部门领导根据实际情况,有 ... -
jBPM4.4:ProcessDefinition/ProcessInstance/Execution/Task关系和区别
2010-08-24 16:06 9959ProcessDefinition : 这 ... -
jBPM4.4:分配任务的几种方式
2010-08-24 11:19 3369在jBPM中,分配任务可以有几种方式: 按照分配对象,可以分 ... -
jBPM4.4:获取现有的流程
2010-08-19 16:50 1537通过repositoryService, 获取一个Proces ... -
jBPM4.4:创建一个流程的实例
2010-08-19 13:42 3043发布了流程后,创建一个实例,进行执行。 ProcessEng ... -
jBPM4.4:发布自己第一个流程
2010-08-19 11:41 2852开始自己着手尝试:先发布自己第一个流程: 用Eclip ...
相关推荐
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开发指南关键知识点解析 #### 一、工作流基础与概念 **1. 工作流定义** 工作流是指业务过程的部分或整体在计算机应用环境下的自动化,其目的是为了使在多个参与者之间按照某种预定义的规则传递文档、...
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从业者及开发者提供了宝贵的参考资料。