`
ynztpwl
  • 浏览: 59489 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jbpm图形化监控

 
阅读更多

已经可以比较好的运行JBPM了,但是如果能以图形化的方式显示工作流,并且把当前节点高亮显示,这样可用性就更好了,用户可以很轻松的看到当前流程到哪个节点了。

我发现JBPMstarters-kit的例子中就有类似的效果,所以决定分析一下它是怎么实现的。

打开网页,浏览到有显示当前工作流节点的页面,查看到此页面的地址为task.jsp,发现其中的核心代码如下:

<jbpm:processimage task="${taskBean.taskInstanceId}"/>

这里使用了JBPM提供的jbpm:processimage标签,此标签定义在jbpm.tld中,这个Tag的类为org.jbpm.webapp.tag.ProcessImageTag。所以只要使用这个标签我们就可以很轻松的在Web页面中显示图形化的工作流了。

那么如果是在SwingSWT等非Web界面中也想显示这种效果怎么办呢?那么让我们来分析一下ProcessImageTag类。

private void retrieveByteArrays() {

try {

FileDefinition fileDefinition = processDefinition.getFileDefinition();

gpdBytes = fileDefinition.getBytes("gpd.xml");

imageBytes = fileDefinition.getBytes("processimage.jpg");

} catch (Exception e) {

e.printStackTrace();

}

}

gpd.xml中记录的是节点的位置关系,processimage.jpg是图形化的图片(只是基图,没有高亮显示当前节点),这两个文件是JBPMEclipse插件自动生成的。

得到流程实例当前节点的方法:

private void initialize() {

JbpmContext jbpmContext = JbpmContext.getCurrentJbpmContext();

if (this.taskInstanceId > 0) {

TaskInstance taskInstance = jbpmContext.getTaskMgmtSession().loadTaskInstance(taskInstanceId);

currentToken = taskInstance.getToken();

}

else

{

if (this.tokenInstanceId > 0)

currentToken = jbpmContext.getGraphSession().loadToken(this.tokenInstanceId);

}

processDefinition = currentToken.getProcessInstance().getProcessDefinition();

}

currentToken中可以得到当前节点在显示的时候的长度、宽度、横纵坐标等值。得到的方式如下:

private int[] extractBoxConstraint(Element root) {

int[] result = new int[4];

String nodeName = currentToken.getNode().getName();

XPath xPath = new DefaultXPath("//node[@name='" + nodeName + "']");

Element node = (Element) xPath.selectSingleNode(root);

result[0] = Integer.valueOf(node.attribute("x").getValue()).intValue();

result[1] = Integer.valueOf(node.attribute("y").getValue()).intValue();

result[2] = Integer.valueOf(node.attribute("width").getValue()).intValue();

result[3] = Integer.valueOf(node.attribute("height").getValue()).intValue();

return result;

}

这样用<div/>标签就可以将当前节点框上一个红色的框框了:

jspOut.println("<div style='position:relative; background-image:url(" + imageLink + "); width: " + imageDimension[0] + "px; height: " + imageDimension[1] + "px;'>");

//详细代码参考:writeTable方法

原来高亮显示是在原有的图片上叠加一个高亮的框框实现的。所以如果要显示在SwingSWT中的话也只要参考这个思路,在当前节点位置显示一个高亮的框框就可以了!

分享到:
评论

相关推荐

    jbpm流程监控的实现

    这通常通过BPMN2(Business Process Model and Notation)标准来完成,jbpm支持通过图形化工具(如Eclipse BPMN2插件)进行建模。流程定义文件(.bpmn2)需要部署到jbpm服务中,以便实例化和执行。 2. **启动流程...

    jbpm4jbpm5

    jbpm5相较于jbpm4有显著提升,例如支持bpmn2.0标准,提供了更强大的图形化建模工具,以及更完善的API和事件处理。手册中可能包含如何使用jbpm5的工具集(如Guvnor和Workbench)、部署流程、管理任务、监控运行时状态...

    jbpm5_持久化及流转流程剖析

    它提供了强大的流程建模、执行和监控能力,支持BPMN 2.0标准,使得业务流程可以被直观地以图形方式设计和理解。jbpm5不仅是一个工作流引擎,还包括了一个全面的工作流服务套件,如任务管理、事件处理、规则集成等。 ...

    JBPM3.2 表初始化,流程发布第一课

    1. 设计流程模型:使用JBPMSuite提供的GPD(Graphical Process Designer)工具,可以图形化设计流程模型,包括任务节点、决策节点、事件节点等,以及它们之间的流转关系。 2. 流程定义文件(.bpmn):完成设计后,...

    jbpm-3.1.2.zip_jbpm_jbpm 3.1.2_jbpm-3.1.2.rar_jbpm3.1.2_工作流

    1. **流程建模**:使用 BPMN(Business Process Model and Notation)标准,允许开发者通过图形化的方式定义流程,使得业务人员和开发人员可以更好地理解和协作。 2. **规则集成**:jBpm 集成了规则引擎,如 Drools...

    jbpm开发指南

    1.3 jBPM图形化流程设计器 jBPM提供了一个Eclipse插件形式的图形化流程设计器,该设计器支持业务分析师和技术开发者,使得业务流程建模和实现能够顺畅衔接。设计器可通过本地更新或Eclipse的标准软件更新机制进行...

    jBPM4.4.rar_jbpm4.4_jbpm4.4 PDF

    2. **流程定义**:jBPM支持使用BPMN 2.0标准进行流程建模,这是一种图形化的业务流程建模语言,使得业务人员和开发者能共同理解和创建流程。 3. **流程执行**:jBPM4.4提供了一个流程引擎,用于解析流程定义并执行...

    jBPM3.2.rar_JBPM3.2_jbpm_jbpm 3.2_jbpm3_jbpm3.2教程

    5. **IDE集成**:jbPM可以与Eclipse、IntelliJ IDEA等IDE集成,安装对应的插件如jBPM Developer插件,便于图形化设计流程。 ### 二、jbPM 3.2 开发流程 1. **流程建模**:jbPM提供了一个名为Business Process ...

    JBPM教学课件PPT

    1. BPMN2.0:JBPM支持BPMN2.0标准,该标准提供了一套图形化的符号和语法,用于描述各种业务流程,包括任务、决策、事件等。 2. Eclipse插件:JBPM提供了Eclipse集成开发环境的插件,方便开发者进行图形化建模,快速...

    jbpm学习资料,jbpm教程

    9. **监控与调试**:jbpm提供了图形化的监控工具,允许管理员查看流程实例的实时状态,跟踪流程执行过程,以便于调试和优化。 10. **规则引擎**:jbpm集成了Drools规则引擎,使得流程可以根据预定义的业务规则动态...

    jbpm

    学习和掌握jbpm,你需要理解BPMN(Business Process Modeling Notation)标准,它是用来绘制和表达业务流程的图形化语言。此外,你还需要熟悉Java编程,尤其是Spring框架,因为jbpm经常与Spring结合使用以提供依赖...

    jbpm教程+中文用户指南

    在jbpm教程中,你将学习到如何使用jbpm的工作流设计器,它提供了一个图形化的界面,使得非技术人员也能轻松设计和修改流程。此外,教程还将涵盖如何创建和配置流程定义(process definition),以及如何与Java代码...

    jbpm3.1中文文档

    2. **流程建模**:jbpm支持使用Business Process Modeling Notation (BPMN)标准进行流程建模,这是一种图形化的表示方式,使非技术人员也能理解流程图。通过jbpm提供的建模工具,用户可以设计出符合业务需求的流程...

    JBPM文档(详解)

    【JBPM文档详解】 JBPM,全称Java ...它通过图形化流程定义、灵活的数据管理和强大的API,帮助企业实现流程自动化,提高工作效率,并降低了出错的可能性。理解并熟练运用jBPM,对于优化企业的业务流程至关重要。

    jbpm-4.4.zip part03

    1. **工作流建模**:jbpm支持BPMN 2.0标准,允许用户通过图形化界面创建复杂的业务流程模型。BPMN(Business Process Modeling Notation)是一种用于描述业务流程的标准化符号语言,使得非技术人员也能理解流程图。 ...

    jBPM 用户指南

    jBPM 的核心引擎通过提供一个图形化的工作流设计器,允许用户通过可视化的方式设计和定义业务流程。 jBPM 还提供了一个基于 Eclipse 的编辑器,允许用户通过 Eclipse 平台来设计和开发业务流程。同时,jBPM 也提供...

    jbpm开发入门指南

    - **使用Eclipse集成开发**:jbpm提供了Eclipse插件,便于流程模型的图形化设计。 - **编写业务逻辑**:在流程中嵌入Java代码或使用MVEL表达式实现任务的逻辑处理。 - **监听器和事件**:可以注册监听器来捕获...

    jbpm显示执行位置demo

    在jBPM4中,通过图形化界面查看执行位置对于理解和调试复杂的流程至关重要。 jBPM4的核心特性包括流程定义、流程实例管理、任务管理、事件处理以及审计日志等功能。在这个demo中,我们将重点探讨如何利用jBPM4提供...

    jbpm教程3.0中文版

    1. **流程建模**:jbpm支持BPMN 2.0标准,这是一种业务流程建模语言,允许用户通过图形化方式设计复杂的业务流程,包括任务、决策、事件和泳道等元素。 2. **工作流引擎**:jbpm内含强大的工作流引擎,能够自动执行...

Global site tag (gtag.js) - Google Analytics