`

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中的话也只要参考这个思路,在当前节点位置显示一个高亮的框框就可以了!

 转自:http://www.blogjava.net/huanzhugege/archive/2007/11/19/161678.html 

分享到:
评论

相关推荐

    jbpm流程监控的实现

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

    jbpm5_持久化及流转流程剖析

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

    jbpm4流程提交及执行完整代码

    jbpm4支持导出流程定义为BPMN(Business Process Modeling Notation)标准格式,然后使用工具如jBPM Designer或者在线工具将其转化为图形化展示,方便开发者和业务人员理解和修改流程。按照该文件的指示,可以更好地...

    JBoss JBPM4请假流程示例

    这通常通过使用Business Process Definition Language (BPMN)来完成,它可以图形化地表示流程的各个节点和流转规则。在JBoss JBPM4中,我们可以使用jbpm-designer工具来设计流程图,然后将其导出为XML格式的.bpel...

    jbpm4.3工作流程管理例子

    2. 图形化建模:通过Business Process Definition (BPD)编辑器,用户可以用图形化方式设计流程,使得非技术人员也能理解流程结构。 3. 任务管理:jbpm4.3内置了任务服务,用于管理任务的分配、启动、完成和监控,...

    jbpm4.4流程图

    在这个“jbpm4.4流程图”中,我们关注的是如何通过图形化的方式来理解和操作这些流程。 流程图在jbpm中扮演着至关重要的角色,它们提供了一个直观的方式来描绘业务流程的各个步骤和决策点。`subjbpm.png`可能是一个...

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

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

    工作流程JBPM工作流管理

    1. **流程建模**:JBPM支持BPMN 2.0标准,使得流程设计者可以通过图形化界面创建复杂的业务流程模型。BPMN(Business Process Modeling Notation)是一种国际公认的过程建模语言,可以清晰地表达各种业务流程,包括...

    jbpm4jbpm5

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

    jbpm业务流程

    5. **监控和管理**:jbpm提供了一个Web管理控制台,用于监控流程实例的状态、查看流程图、跟踪历史记录等。这有助于分析流程执行情况,优化流程设计。 6. **集成能力**:jbpm能够与其他系统如CRM、ERP集成,实现跨...

    JBPM Web流程设计器

    JBPM Web流程设计器基于JavaScript和ExtJS库构建,提供了一个直观的图形化界面,用户无需编写代码就能构建复杂的业务流程。它的设计思路类似于Eclipse中的JBPM插件,但更倾向于Web应用的灵活性和易用性。这个工具...

    jbpm 电子书 下载

    jBPM图形化流程设计器是Eclipse插件,用于可视化创建业务流程。其设计目标是支持业务分析师和技术开发人员,确保业务流程模型可以无缝转换为实际应用。插件支持本地更新或直接解压至Eclipse主目录进行安装。 #### ...

    jbpm开发指南

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

    jBPM-JPDL流程引擎

    jBPM提供了一个图形化的工作流设计器,使得开发者可以通过拖拽的方式来创建流程定义,极大地简化了流程设计过程。此外,jBPM还提供了命令行工具和API,方便开发者进行流程部署、实例管理和监控。 **四、jBPM集成** ...

    JBPM流程管理 用户指南

    JBPM图形化流程设计器是一款基于Eclipse的插件,旨在简化业务流程的设计过程。该工具支持业务分析师和技术开发人员共同协作,确保业务流程模型能够平滑过渡到实际实现阶段。 - **安装方式**:可通过Eclipse的标准...

    JBPM4.4完整可用审批流程

    使用JBPM4.4,开发者可以设计复杂的审批流程,例如请假申请、报销审批等,通过图形化的流程设计器(Business Process Designer)创建流程模型。流程中的每个步骤可以关联到一个任务,任务可以分配给不同的角色或用户...

    JBPM流程引擎设计 工作流资料

    1. **流程建模**:JBPM支持BPMN 2.0(Business Process Model and Notation)标准,这是一种图形化的建模语言,用于描述企业的业务流程。通过BPMN,开发者可以清晰地定义各种流程元素,如任务、事件、网关等,并表达...

    jbpm7示例(jbpm-7.3.0.Final-examples)

    基于Eclipse和基于Web的编辑器,用于支持业务流程的图形化创建(拖放)。 基于JPA / JTA的可插拔持久性和事务。 基于WS-HumanTask的可插拔人工任务服务,用于包含需要由人类执行者执行的任务。 管理控制台支持流程...

    jbpm工作流程

    jbpm提供了一个全面的框架,包括工作流程引擎、规则集成、事件处理、任务管理和监控工具,帮助开发者和企业实现流程自动化。 1. **jbpm核心概念**: - **流程定义**:使用BPMN(Business Process Modeling ...

Global site tag (gtag.js) - Google Analytics