- 浏览: 431962 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
man1900:
想部署及学习了解,可参考本人新的博客获得下载源代码。http: ...
JOffice 中的JBPM4在线流程设计器--初览(Applet版) -
atgoingguoat:
哎。假的。
JOffice 中的JBPM4在线流程设计器--初览(Applet版) -
电竞杀神张无忌:
这是主流程调用子流程报的错大神指导原因吗? ...
JBPM4的子流程与父流程的设计及开发 -
贝塔ZQ:
pageoffice也是office在线编辑的吧,J.Offi ...
J.Office另一种在线Office编辑器整合 -
Mybonnie1:
你好,想问下,串行的多实例任务能做到回退么
Activiti 多个并发子流程的应用
在发表文章之前,先写一下博客声明,由于JE限制了本人的发贴功能,所以大家回复的内容本人现在没有办法在线回复各位,望见谅。需要技术交流的请加我Q:1165655130。
最近JBPM比较火,很多同行也跟我探讨如何使用这个东西完成企业应用中的流程问题,本人也谈谈对Jbpm4的理解,JBPM在实现流程上应该没有什么问题,但是由于其客户端的可视化相对薄弱,如设计器不够人性化,流程表单也不方便,所以客户要设计企业内的业务流程就会遇到问题,毕竟大部分的客户都不是开发人员。
尽管JBPM的客户化相对薄弱,但是它比较轻巧,相对其他商业的工作流引擎,部署及开发都是相当方便,这使得连IBM有些系统都采用JBPM来开发。JOffice中也在努力提升的JBPM的易用性,提供一些可视化的在线流程设计器及表单设计器。
大家都知道Jbpm有一个eclipse的plugin可以完成流程的设计开发,但是那个东西却没有提供在线的设计器,而JBPM也提供一个在线的设计器(Signavio),其是基于SVG来进行画图的,可惜ie目前的版本却不支持SVG。Flex应该是个不错的流程设计器的做法,不过目前的版本对图形的支持相对差一些,Flex3也有一个不错的流程框架如degrafa,可惜文档及例子不多,使用起来也相当困难。Flex4还在期待。而JavaFx初看却不错,但是感觉不如直接用JAVA写,用JAVA写要在浏览器中使用,就离不开Applet了。
而画流程图最好还是有一个框架,记得在C++下完成一个简单的画板功能,完全自己写,也是费很多功夫。用现成的框架,却可以省很多功夫。开源的JAVA画图框架可以省去我们的功夫呢,如:JUNG,JHotDraw,他们的画图及编辑图形的功能已经很强,不需要再写大量的代码去实现,并且提供在线的Applet演示,同时文档也比较丰富。
用了类似的图形画图框架后,可以让他们生成对应自己程序的XML文件后,就可以与JBPM的XML文件作一个相互转换则可。最终的目的就是转换成JBPM所认识的流程定义,同时可以比较容易恢复流程的定义图形的显示。
(在线演示地址:http://joffice.jee-soft.cn user:csx,pwd:111)
如在JOffice 1.3中,在线定义一个公文撰稿的流程,如下所示:
以上画图会有不同的画图属性,因而会生成一个画图对应的文件存储内容,如字体大小、颜色等,其最终生成以下文件:
<drawing id="0"> <figures> <start id="1" x="151" y="8" w="48" h="48" name="开始"> <a> <strokeColor> <color rgba="#ff000000" /> </strokeColor> </a> </start> <end id="2" x="492" y="423" w="48" h="48" name="结束1"> <a> <strokeColor> <color rgba="#ff000000" /> </strokeColor> </a> </end> <task id="3" name="公文拟稿" x="123" y="107" w="101" h="39"> <a> <text> <string>公文拟稿</string> </text> <strokeColor> <color rgba="#ff000000" /> </strokeColor> </a> </task> <transition id="4" g="-24,-16" name="准备"> <points> <p colinear="true" x="174.6095238095238" y="56.6" c1x="0" c1y="0" c2x="0" c2y="0" /> <p colinear="true" x="173.81904761904764" y="106.4" c1x="0" c1y="0" c2x="0" c2y="0" /> </points> <startConnector> <rConnector id="5"> <Owner> <start ref="1" /> </Owner> </rConnector> </startConnector> <endConnector> <rConnector id="6"> <Owner> <task ref="3" /> </Owner> </rConnector> </endConnector> <a> <endDecoration> <arrowTip id="7" angle="0.35" innerRadius="11.3" outerRadius="12" isFilled="true" isStroked="false" isSolid="true" /> </endDecoration> <strokeColor> <color rgba="#ff000000" /> </strokeColor> </a> </transition> <fork id="8" x="150" y="204" w="48" h="48" name="同步任务"> <a> <strokeColor> <color rgba="#ff000000" /> </strokeColor> </a> </fork> <transition id="9" g="-24,-16" name="同步"> <points> <p colinear="true" x="173.5990147783251" y="146.60000000000002" c1x="0" c1y="0" c2x="0" c2y="0" /> <p colinear="true" x="173.87881773399016" y="203.4" c1x="0" c1y="0" c2x="0" c2y="0" /> </points> <startConnector> <rConnector id="a"> <Owner> <task ref="3" /> </Owner> </rConnector> </startConnector> <endConnector> <rConnector id="b"> <Owner> <fork ref="8" /> </Owner> </rConnector> </endConnector> <a> <endDecoration> <arrowTip ref="7" /> </endDecoration> <strokeColor> <color rgba="#ff000000" /> </strokeColor> </a> </transition> <task id="c" name="审核" x="301" y="166" w="108" h="41"> <a> <text> <string>审核</string> </text> <strokeColor> <color rgba="#ff000000" /> </strokeColor> </a> </task> <task id="d" name="印章准备" x="305" y="282" w="111" h="42"> <a> <text> <string>印章准备</string> </text> <strokeColor> <color rgba="#ff000000" /> </strokeColor> </a> </task> <transition id="e" g="-24,-16" name="任务"> <points> <p colinear="true" x="198.60000000000002" y="222.3596685082873" c1x="0" c1y="0" c2x="0" c2y="0" /> <p colinear="true" x="300.4" y="199.01878453038674" c1x="0" c1y="0" c2x="0" c2y="0" /> </points> <startConnector> <rConnector id="f"> <Owner> <fork ref="8" /> </Owner> </rConnector> </startConnector> <endConnector> <rConnector id="10"> <Owner> <task ref="c" /> </Owner> </rConnector> </endConnector> <a> <endDecoration> <arrowTip ref="7" /> </endDecoration> <strokeColor> <color rgba="#ff000000" /> </strokeColor> </a> </transition> <transition id="11" g="-24,-16" name="准备"> <points> <p colinear="true" x="198.60000000000002" y="237.89276139410188" c1x="0" c1y="0" c2x="0" c2y="0" /> <p colinear="true" x="306.78799999999995" y="281.4" c1x="0" c1y="0" c2x="0" c2y="0" /> </points> <startConnector> <rConnector id="12"> <Owner> <fork ref="8" /> </Owner> </rConnector> </startConnector> <endConnector> <rConnector id="13"> <Owner> <task ref="d" /> </Owner> </rConnector> </endConnector> <a> <endDecoration> <arrowTip ref="7" /> </endDecoration> <strokeColor> <color rgba="#ff000000" /> </strokeColor> </a> </transition> <join id="14" x="488" y="209" w="48" h="48" name="汇集任务"> <a> <strokeColor> <color rgba="#ff000000" /> </strokeColor> </a> </join> <transition id="15" g="-24,-16" name="提交"> <points> <p colinear="true" x="409.59999999999997" y="202.67133757961784" c1x="0" c1y="0" c2x="0" c2y="0" /> <p colinear="true" x="487.4" y="225.7140127388535" c1x="0" c1y="0" c2x="0" c2y="0" /> </points> <startConnector> <rConnector id="16"> <Owner> <task ref="c" /> </Owner> </rConnector> </startConnector> <endConnector> <rConnector id="17"> <Owner> <join ref="14" /> </Owner> </rConnector> </endConnector> <a> <endDecoration> <arrowTip ref="7" /> </endDecoration> <strokeColor> <color rgba="#ff000000" /> </strokeColor> </a> </transition> <transition id="18" g="-24,-16" name="提交"> <points> <p colinear="true" x="407.2485714285714" y="281.4" c1x="0" c1y="0" c2x="0" c2y="0" /> <p colinear="true" x="487.4" y="244.36633663366337" c1x="0" c1y="0" c2x="0" c2y="0" /> </points> <startConnector> <rConnector id="19"> <Owner> <task ref="d" /> </Owner> </rConnector> </startConnector> <endConnector> <rConnector id="1a"> <Owner> <join ref="14" /> </Owner> </rConnector> </endConnector> <a> <endDecoration> <arrowTip ref="7" /> </endDecoration> <strokeColor> <color rgba="#ff000000" /> </strokeColor> </a> </transition> <task id="1b" name="定稿" x="456" y="327" w="119" h="45"> <a> <text> <string>定稿</string> </text> <strokeColor> <color rgba="#ff000000" /> </strokeColor> </a> </task> <transition id="1c" g="-24,-16" name="提交"> <points> <p colinear="true" x="512.7390557939914" y="257.6" c1x="0" c1y="0" c2x="0" c2y="0" /> <p colinear="true" x="514.806008583691" y="326.4" c1x="0" c1y="0" c2x="0" c2y="0" /> </points> <startConnector> <rConnector id="1d"> <Owner> <join ref="14" /> </Owner> </rConnector> </startConnector> <endConnector> <rConnector id="1e"> <Owner> <task ref="1b" /> </Owner> </rConnector> </endConnector> <a> <endDecoration> <arrowTip ref="7" /> </endDecoration> <strokeColor> <color rgba="#ff000000" /> </strokeColor> </a> </transition> <transition id="1f" g="-24,-16" name="1"> <points> <p colinear="true" x="515.6184615384616" y="372.59999999999997" c1x="0" c1y="0" c2x="0" c2y="0" /> <p colinear="true" x="515.8738461538461" y="422.4" c1x="0" c1y="0" c2x="0" c2y="0" /> </points> <startConnector> <rConnector id="20"> <Owner> <task ref="1b" /> </Owner> </rConnector> </startConnector> <endConnector> <rConnector id="21"> <Owner> <end ref="2" /> </Owner> </rConnector> </endConnector> <a> <endDecoration> <arrowTip ref="7" /> </endDecoration> <strokeColor> <color rgba="#ff000000" /> </strokeColor> </a> </transition> </figures> </drawing>
转为jbpm的定义为:
<?xml version="1.0" encoding="GBK"?> <process xmlns="http://jbpm.org/4.0/jpdl" name="pd7250331474571141836"> <start name="开始" g="151,8,58,58"> <transition name="准备" to="公文拟稿" g="-24,-16" /> </start> <end name="结束1" g="492,423,58,58" /> <task name="公文拟稿" g="123,107,111,49"> <transition name="同步" to="同步任务" g="-24,-16" /> </task> <fork name="同步任务" g="150,204,58,58"> <transition name="准备" to="印章准备" g="-24,-16" /> <transition name="任务" to="审核" g="-24,-16" /> </fork> <task name="审核" g="301,166,118,51"> <transition name="提交" to="汇集任务" g="-24,-16" /> </task> <task name="印章准备" g="305,282,121,52"> <transition name="提交" to="汇集任务" g="-24,-16" /> </task> <join name="汇集任务" g="488,209,58,58"> <transition name="提交" to="定稿" g="-24,-16" /> </join> <task name="定稿" g="456,327,129,55"> <transition name="1" to="结束1" g="-24,-16" /> </task> </process>
相对来说,画图需要存储的内容比较多, jbpm却只是关心流程,在界面恢复图形,仅需要使用流程画图的xml,而流程发布则仅需要使用生成的Jbpm流程定义。
而流程在线表单功能目前已经提供了模板及可视化的设计,不过可视化的设计还是相对弱一些,强大的流程表单设计功能将会在后续的版本提供。如将提供表单的自定义功能,并且可以动态生成表单对应的表,提供方便的查询及权限控制显示等功能。
发表评论
-
Activiti 工作流会签开发设计思路
2012-07-26 12:12 28467Activiti 工作流会签开 ... -
基于开源流程引擎Activiti5的工作流开发平台
2012-05-17 11:28 7224http://www.redxun.cn:8 ... -
Jbpm4或Activiti5的流程任务分发与汇总
2012-03-20 18:28 6275应用场景:在企业或事业单位,经常需要把一个任务分派给多条线去 ... -
关于Activiti或JBPM流程的回退的讨论之一
2011-12-30 12:08 8885需求: ... -
Activiti 5 在线流程设计器开发
2011-11-30 08:56 23766jbpm4的开发成员to ... -
基于标签方式的工作流启动及任务执行开发说明
2011-09-25 21:21 2301基于现在的系统的整 ... -
JOffice2 发布了开源的开发者体验版本啦!
2011-08-09 23:42 7295JOffice的爱好者有福音了,经公司决定,现在发布 ... -
关于JOffice的业务表单与流程的整合问题
2011-07-26 23:55 3313关于 JOffice 的业务表 ... -
JBPM4的子流程与父流程的设计及开发
2011-07-14 11:23 5662【JBPM4的子流程 ... -
Jbpm4中的会签设计及实现
2011-05-05 15:20 7667会签任务是工作流里一个比较觉见的任务方式,意思是一 ... -
jbpm4.4在线设计分支跳转
2011-05-02 14:30 4390我们知道jbpm4.4提供了三种比较方便的分支跳转方式 ... -
J.Office 2 JBPM4.4 工作流增强版特性
2011-04-27 16:00 37042.0主要在工作流方面提供了很强的改进,jbpm升级至jbpm ... -
JOffice2的在线表单设计示例(JBPM4.4)
2011-03-16 13:52 5993JOffice2目前升级至jbpm ... -
JOffice2中的JBPM4的任务回退实现
2010-12-07 15:27 3576任务回退的工作可以有两种实现方式: 1. 完成当前 ... -
利用JBPM4.4的AssignmentHandler实现用户角色整合另一种构思
2010-11-26 17:05 6210Jbpm4提供的IdentitySession ... -
分享宏天免费的JBPM4流程设计器(Applet)
2010-07-07 11:56 312JBPM4一直没有一个很好的在线流程设计器,基于这种方式,跟大 ... -
JOffice中的自定义发文流程与运行模板设计
2010-07-05 22:59 3191开发与设计公文流程在所有的政府oa项目上都少不了此需求,而能灵 ... -
JBPM4中的任务回退、补签、自由流程实现
2010-04-22 16:12 10443最近在实施政府办公项 ... -
OA JBPM中的公文(发文、收文)流程
2010-03-25 00:10 11448公文管理主要包括两大模块,其一是发文管理,其二是收文管理,非常 ... -
取得任务节点的对外所有跳转Transition对象
2010-03-09 11:32 2401在流程的任务里,我们需要把当前的任务节点的下一步的跳转选择显示 ...
相关推荐
jbpm流程设计器作为jbpm框架的重要组成部分,提供了一个直观的图形化界面,使得非程序员也能理解和修改流程。 jbpm流程设计器主要包含以下核心功能: 1. **图形化界面**:它使用BPMN 2.0(Business Process Model ...
本篇文章将深入探讨这两个技术如何结合以实现"extjs jbpm4流程设计器"的功能。 首先,ExtJS是一个强大的前端框架,它提供了丰富的组件库,如表格、表单、图表等,可以构建出高度交互和动态的Web应用。其MVC(Model-...
【JBPM Web流程设计器】是一种基于Web的工具,它允许用户设计、管理和执行业务流程,类似于Eclipse中的jbpm插件。这个设计器采用JavaScript(js)和ExtJS库来构建,提供了一个直观的图形化界面,使得非技术人员也能...
完全模仿 ECLIPSE 的JBPM 流程设计器来 设计的~基于EXTJS 的 ,在线流程设计器 ,最后生成XML,懂的自己来取. 10分我都嫌少了....
【MyEclipse6.0下Jbpm流程设计器】是一个专为MyEclipse6.0集成的业务流程管理(Business Process Management,BPM)工具,主要用于设计和管理Jbpm流程。Jbpm是一个开源的工作流和业务流程管理平台,它提供了一套完整...
3. **在线流程设计器**:在线流程设计器是Web应用程序中的一个模块,允许用户通过图形界面拖放方式创建和编辑流程图。jbpm通常包含这样的设计器,而在此案例中,它被整合到基于ExtJs的前端框架中,提供了更友好的...
jpdl的web流程编辑器的前后端实现 前端:使用myflow.js实现,点击保存将把流程图转换成一个json格式的数据; 后台:使用java实现了,json转成jpdl要求的xml,根据xml生成png流程图片,将xml文件和png图片打包成zip...
jbpm流程设计器 + 生成对应xml文档: 内部含有: jbpm控件 1: myflow2:插件原本内容 访问地址:http://localhost:8080/jbpmFlow1/myflow2/demo4.jsp 实现生成对应xml文档 并写有对xml文档读取存储到对象中,...
这个压缩包包含了关于jBPM-side流程设计器的所有相关资料,涵盖了文档、代码和手册等多个方面,对于学习和掌握这款工具非常有帮助。 首先,我们要理解流程设计器的基本概念。流程设计器是用于创建和编辑业务流程的...
6. **监控与调试**:JBPM提供了强大的监控工具,如Kie Workbench,可以实时查看流程实例的状态、跟踪流程执行路径、分析性能指标。这对于优化流程和解决问题非常有帮助。 7. **服务整合**:JBPM支持服务组件的集成...
纯JavaScript实现的JBPM设计器意味着它可以完全在浏览器环境中运行,无需依赖服务器端的插件或特定的运行环境。这样的设计使得流程设计变得更加灵活和便捷,用户可以在任何支持JavaScript的设备上进行流程设计工作,...
在线设计流程图功能使得流程设计更为直观和便捷,无需离开Web环境即可完成。本教程将深入探讨jbpm4.4的在线设计流程图特性,以及如何利用ext(一个JavaScript UI库)和raphael(一个矢量图形库)进行流程图的绘制与...
4. **集成第三方监控工具**:可以将JBPM与像Prometheus、ELK Stack(Elasticsearch、Logstash、Kibana)等监控工具集成,通过这些工具的强大分析能力来实现对JBPM流程的性能监控和故障排查。 5. **扩展jbpm-console...
【JBPM视频教程 - JPDL与流程设计器】 JBPM(Java Business Process Management)是一个开源的工作流和业务流程管理系统,它提供了全面的BPM解决方案,包括流程建模、执行、监控和集成。本视频教程主要围绕JPDL...
注意:该文件是免费版,具备的功能是:图形化流程设计器,生成流程代码。 该软件是我从网上找设计器时候找到的,如果你有兴趣购买付费版,可以上网搜索该软件,有官网的,该软件不是我的,我也不是推广,这个软件...
jbpm流程引擎内核的设计思想和结构是jbpm流程引擎的核心部分,掌握了jbpm流程引擎内核的设计思想和结构,才能真正理解jbpm流程引擎的工作原理,并且能够更好地应用jbpm流程引擎来解决实际问题。 流程引擎内核的设计...
jbpm4.4版本的设计器文档主要介绍了基于GEF(Graphical Editor Framework)实现的一个WEB版流程设计器,文档内容覆盖了设计器的设计理念、组成结构、工作流程以及定制化开发和扩展功能等多个方面。 GEF是一个图形...
**jbpm4整合流程例子与Web流程设计器** jbpm4是一款功能强大的开源工作流管理系统,它为业务流程管理(BPM)提供了全面的解决方案。jbpm4的核心特性包括流程定义、执行、监控以及集成能力。在这个例子中,我们将会...