`

将JBPM5流程文件Flow File BPMN 2.0/BPMN (*.bpmn) 转换为 PNG(*.png) 图片文件的解决方案

 
阅读更多
原文http://cutelion.blog.hexun.com/70817647_d.html

[转]使用Joinwork Process Studio创建jBpm和Activiti流程定义文件 http://arronzhen.iteye.com/blog/1545862

将JBPM5流程文件Flow File BPMN 2.0/BPMN (*.bpmn) 转换为 PNG (*.png) 图片文件的解决方案

    最近在利用JBPM5开发流程应用,在eclipse安装的插件工具drools jbpm tools 5.2.0里面没有将流程文件导出为PNG格式的图片功能。这样没有图片就不能较直观地查看到当前流程走到了哪些节点。几经周折,找了很久,终于发现一个可以变通的方法,借助其它的流程工具来做到这一点。
    joinwork-process-studio正好是这样的工具。下载地址:
http://www.bpmn123.net/bpmn/20110823/joinwork-process-studio-v31%E5%8F%91%E5%B8%83.html
或者 http://www.bpmn123.net/bpmn/20110823/joinwork-process-studio-%E4%B8%8B%E8%BD%BD.html

    将joinwork-process-studio安装后,可以打开eclipse的workspace中已经建好的Flow File(BPMN 2.0/BPMN 文件),接下来可以选择"生成图片文件",可以生成PNG格式的图片。另外,选定节点后可以在“外观”中对节点填充颜色。


@RequestMapping(value = "/viewWorkFlow")
  public void getCurrentNode(@RequestParam("processId") long processInstanceId, HttpServletRequest request,
                             HttpServletResponse response) throws IOException {

    JBPM5Engine engine = new JBPM5Engine(entityManagerFactory,taskEntityManagerFactory,LEAVE_WORKFLOW_LEAVE);
    ProcessInstance process = engine.getProcessInstance(processInstanceId);

    WorkflowProcessInstance wfInstance = (WorkflowProcessInstance) process;
    Iterator<NodeInstance> iterator = wfInstance.getNodeInstances().iterator();
    NodeInstance nodeInstance = iterator.next();

    //-------------------- send the work flow image ----------------------------------
    PrintWriter out = response.getWriter();

    //********** get the attributes eg : x,y,width,height .. *****************
    String xpathFile = "leave.bpmn";
    String nodeStr = "//bpmndi:BPMNDiagram/bpmndi:BPMNPlane/bpmndi:BPMNShape[@bpmnElement='_"+nodeInstance.getNodeId()+"']/dc:Bounds";
    XPathUtils xPathUtils = new XPathUtils(xpathFile,nodeStr);
    Map<String, String> attributes = xPathUtils.getAttributes();
    Element rootEl = xPathUtils.getRootElement();

    //************************************************************************


    //////////////////////// show the work flow image in page ////////////////////
    int imageWidth = Integer.parseInt(rootEl.attributeValue("width") == null? "910" : rootEl.attributeValue("width"));
    int imageHeight = Integer.parseInt(rootEl.attributeValue("height")== null ? "710" : rootEl.attributeValue("height"));

    
    int nodeWidth = Integer.parseInt(attributes.get("width"));
    int nodeHeight = Integer.parseInt(attributes.get("height"));
    int nodeX = Integer.parseInt(attributes.get("x"));
    int nodeY = Integer.parseInt(attributes.get("y"));
    String imageUrl = request.getContextPath()+"/processImageServlet"; //流程URL
    //流程图作为背景
    out.println("<div style=\"position:relative;background-image:url("+imageUrl+");width:"+imageWidth+"px;height:"+imageHeight+"px;\">");
    //输出当前节点位置
    out.println("<div style=\"position:absolute;left:"+nodeX+"px;top:"+nodeY+"px;width:"+(nodeWidth-1)+"px;height:"+(nodeHeight-2)+"px;border:3px solid red\">");
    out.println("</div>");
    out.println("</div>");
    out.flush();
    out.close();


    //!-------------------------------------------------------------------------------
  }
分享到:
评论

相关推荐

    BPMN2.0中文介绍

    BPMN 2.0由OMG(对象管理组织)提出并负责维护,它是一个开放标准,支持业务流程的图形化建模和XML语言之间的转换,如转换为WS-BPEL(Web服务业务流程执行语言),增强了流程执行的可视化和可管理性。由于其易用性和...

    yaoqiang-bpmn-editor-2.0.91.jar.zip_bpmn_yaoqiang

    yaoqiang BPMN2.0设计器是一款专为流程图设计打造的工具,主要用于支持Activiti和JBPM等流行的业务流程管理系统。BPMN(Business Process Modeling Notation)是一种国际标准,它为业务流程建模提供了图形化表示,...

    jbpm-designer:用于jBPM的基于Web的BPMN2.0 Designer

    jbpm-designer是一款专为jBPM(Java Business Process Management)设计的基于Web的BPMN2.0(Business Process Model and Notation)建模工具。这个工具的主要目的是简化业务流程的设计和管理,使得非技术人员也能...

    JBPM5流程图设计规则

    JBPM5是一款强大的工作流管理系统,它基于BPMN2.0标准,用于设计和实现复杂的业务流程。BPMN2.0是一种业务流程建模符号语言,它为业务分析师和开发人员提供了一种标准化的方式来描述和交流业务流程。在JBPM5中,设计...

    jbpm-bpmn2-5.1.0.Final.jar

    jbpm-bpmn2-5.1.0.Final.jar jbpm5

    jbpm4.4项目测试源码下载,

    - **流程定义(Process Definition)**:用BPMN2.0标准的XML文件(.bpmn或.bpmn2)定义,描述业务流程的结构和行为。 - **任务(Task)**:流程中的一个可执行单元,可以分配给特定用户或角色执行。 - **实体...

    jbpm例子代码(入门)

    3. **部署流程**:将流程定义文件(.bpmn2)和对应的类文件打包成jar,然后通过kie-server或kie-workbench部署到jbpm环境中。 4. **启动流程实例**:通过API或kie-server接口启动流程实例,指定初始的流程变量,如...

    JBPM指南 工作流 workflow

    总的来说,JBPM是一个功能强大且灵活的工作流管理系统,结合了BPMN 2.0标准,为企业提供了完善的流程管理解决方案。无论是初学者还是经验丰富的开发者,都可以借助JBPM实现高效、规范的业务流程管理。

    jBPM4.4.rar_jbpm4_jbpm4.4

    jbPM(Java Business Process Management)是一款开源的工作流管理系统,它提供了一套完整的解决方案来管理和执行业务流程。jbPM 4.4 版本是该系统的一个重要里程碑,包含了丰富的特性和改进,使得企业能够更加灵活...

    jbpm5 PDF 帮助文档

    - **Drools Flow Eclipse Plugin**:用于创建基于BPMN 2.0标准的业务流程模型。 - **New BPMN 2.0 Eclipse Plugin**:另一个用于创建BPMN 2.0业务流程的插件。 - **Oryx Designer**:一种Web端的业务流程建模工具,...

    jBPM用户手册指引 精品.docx

    建模阶段,用户可以通过Drools Flow for Eclipse插件、jBPM5 for Eclipse插件(尚在开发中)或Web上的Oryx编辑器(集成在Guvnor中)来创建和编辑BPMN2.0流程。 - **Drools Flow for eclipse 插件**:专为创建和...

    jBPM-4.0DeveloperGuide.rar_jbpm

    建模完成后,模型会被转换为XML格式的流程定义文件(.bpmn)。 **5. 数据持久化** jbPM 4.0集成了JPA,这意味着流程实例、任务等信息可以轻松地存储在关系数据库中,如MySQL、Oracle等。开发者可以使用JPA实体来...

    jBPM工作流详解

    部署阶段将流程模型转换为可执行的流程定义;执行阶段由jBPM Engine负责流程实例的创建和控制;监控阶段则可以通过报表和日志了解流程执行情况。 **3. 集成与扩展** jBPM可以与各种Java应用服务器无缝集成,如...

    jBPM5 用户手册-中文版.docx

    jBPM5提供了一整套全面的解决方案来支持业务流程的各个方面,从设计到执行再到监控,都能得到很好的支持。其核心优势在于支持BPMN2.0标准,提供了多种工具和服务,能够满足不同场景下的需求。无论是对于企业还是...

    jbpm4.3中文用户指南,开发手册

    jbpm4.3全面支持Business Process Model and Notation 2.0 (BPMN 2.0)标准,这是一种图形化的流程建模语言,使得业务人员和开发者能以统一的方式交流和定义业务流程。 **2. 流程设计** jbpm4.3提供了图形化的流程...

    JBPM用户指南[中文]+实例

    JBPM(Java Business Process Management)是一个开源的工作流管理系统,它提供了全面的业务流程自动化解决方案。这个“JBPM用户指南[中文]+实例”资源是为初学者和开发者设计的,旨在帮助他们理解和掌握如何在实际...

Global site tag (gtag.js) - Google Analytics