jbpm 有没有自己的jbpm4 在线流程设计器器

JBPM流程设计系列—入门简介_Linux编程_Linux公社-Linux系统门户网站
你好,游客
JBPM流程设计系列—入门简介
来源:Linux社区&
作者:fuleidemo
JBPM是著名的开源流程引擎框架,具有非常高效的流程引擎及可视化流程设计器,使用主流的BPMN流程标准。它包含一系列非常有用的modeler,如DataModeler,FormModeler等,可以快速开发基于流程的程序,可以使非开发的业务人员也可以轻松实现业务流程构建及优化工作,大大提高了企业的流程建模效率。
JBPM主要的API有两个包:
org.kie.internal.io.*
org.kie.api.*
JBPM核心的两个类RuntimeManager和RuntimeEngine的实现
public static RuntimeManager createRuntimeManager(String bpmn_name) {& RuntimeEnvironment environment = RuntimeEnvironmentBuilder.Factory& & .get()& & .newDefaultInMemoryBuilder()& & .addAsset(ResourceFactory.newClassPathResource(bpmn_name),& & & ResourceType.BPMN2).get();& RuntimeManager manager = RuntimeManagerFactory.Factory.get()& & .newSingletonRuntimeManager(environment);&&}
public static RuntimeEngine createRuntimeEngine(RuntimeManager manager) {& RuntimeEngine engine = manager.getRuntimeEngine(EmptyContext.get());&&}
当获取到RuntimeEngine之后,就可以对流程进行相应的操作了,这里主要介绍两个类,KieSession和TaskService。
因为在日常的开发中,流程主要是实现的组织架构的审批流,所以大部分的流程操作都需要有人的参与,所以就需要
大量的使用Human Task,所以就需要TaskService这个类来实时监控KieSession中流程状态的变化,所以通过TaskService
可以获取所有的任务相关信息。
BPMN可视化流程分析器设计注意点:
流程设计主要包含两部分内容,流程实例设计,节点实例设计,其中:
流程实例节点主要的设置内容有,流程实例ID,流程实例名,包,流程变量数字,版本号,其中流程实例ID的规则是:包名+流程名(小写)。
节点实例节点主要的设置内容有,ActorID,Comment,GroupID,Name,Parameter Mapping,Result Mapping,Skippable,TaskName.
如何获取当前节点的任务列表
List&TaskSummary& tasks = taskService.getTasksAssignedAsPotentialOwner("krisv", "en-UK");TaskSummary task = tasks.get(0);
taskService.start(task.getId(), "krisv");
<plete(task.getId(), "krisv", results);在每个节点处,节点任务都包含四个步骤:
查询任务列表
任务节点跳转
JBPM4.4部署在Tomcat6以上的版本jar包冲突
JBPM工作流开发指南 PDF
JBPM流程实例(PV)Process Variables
JBPM流程实例(PI)Process Instance
JBPM流程部署校验
JBPM 的详细介绍:JBPM 的下载地址:
本文永久更新链接地址:
相关资讯 & & &
& (12/29/:03)
& (08/05/:36)
& (09/29/:52)
& (03/07/:21)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款一、 流程图的设计,以及生成xml文件的有关描叙: 1.任务节点上:Task元素必须区分节点是什么类型的任务,用name属性辨别;description对任务进行描叙。 2.规则:hui_0会签,chuan_0串签;其中数字0是根据画的任务节点数递增的,确保任务名称不重复。 会签:assignee:emp1,emp2,emp3-2;前缀为任务的执行人(从组织机构员工表中获取数据过来),—后的数字表示必须达到的会签人数。 串签:assignee:em1,emp2,emp3。 3. 执行人选择 4. 流转线上的条件编写 5. 任务节点的表单绑定 二、 表结构修改 jbpm4_processdef:流程模板表 DROP TABLE IF EXISTS `jbpm4_processdef`; CREATE TABLE `jbpm4_processdef` (
`DBID_` int(11) NOT NULL AUTO_INCREMENT,
`PROC_DEF_NAME_` varchar(254) DEFAULT NULL,
`JBPMXML_` longtext,
`CMTXML_` longtext,
`FORM_` varchar(255) DEFAULT NULL,
`STATE_` varchar(10) DEFAULT NULL,
PRIMARY KEY (`DBID_`) ) ENGINE=InnoDB AUTO_INCREMENT=51 DEFAULT CHARSET= jbpm4_comment:签注意见表 DROP TABLE IF EXISTS `jbpm4_comment`; CREATE TABLE `jbpm4_comment` (
`ID_` int(11) NOT NULL AUTO_INCREMENT,
`PROCINSTID_` varchar(20) DEFAULT NULL,
`TASKID_` bigint(20) DEFAULT NULL,
`TASKNAME_` varchar(254) DEFAULT NULL,
`SIGNERID_` varchar(20) DEFAULT NULL,
`SIGNERNAME_` varchar(50) DEFAULT NULL,
`DES_` text,
`RECVTIME_` datetime DEFAULT NULL,
`SIGNTIME_` datetime DEFAULT NULL,
`STATE_` int(11) DEFAULT NULL,
PRIMARY KEY (`ID_`) ) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET= jbpm4_deployment:添加FORM_字段,用于保存流程绑定表单路径。 jbpm4_execution:添加PROCINSTNAME_字段,流程标题,具体化每个启动的流程; DATAID_业务数据表ID,流程绑定的业务表单数据ID jbpm4_hist_procinst: PROCINSTNAME_字段, DATAID_ jbpm4_hist_task:添加DESCRIPTION_字段,任务描述 三.流程的相关功能实现 1.会签:到达定义的会签人数,流程往下流转; 2.串签:按所定义的执行人a,b,c;a—b—c依次得到待办,然后流程往下流转。 3.得到待办的用户操作为: 提交:将出现此任务节点的出口,如果有多个,选择条件通过的出口; 回退:将出现已走过的任务节点选择; 加签:只有会签节点才会出现此操作按钮。 四.流程的表单绑定
定义流程模板时,将绑定流程所需要表单的链接地址,任务节点如果没有绑定表单将使用流程绑定的表单
五.相关说明
定义会签、串签节点时,如果没有选择执行人,当流程流转到此节点时,将不会产生任务;
会签:当流程流转到此节点时,将为所选的执行人产生任务,当任务完成数量达到会签数量,流程往下流转;
比如:所选择执行人为emp1,emp2,emp3,定义数量为2,当这三个人中的任意2个完成任务,流程将往下流转。如果定义数量
&=3,需所有人员完成任务,流程才能往下流转。
串签:当流程流转到此节点时,将为所选的执行人按顺序产生任务,当任务完成数量达到串签数量,流程往下流转;
比如:所选择执行人为emp1,emp2,emp3,定义数量为2,emp1先得到任务,完成任务后,emp2得到任务,emp2完成后流程往下流转。如果定义数量
&=3,需所有人员完成任务后,流程才能往下流转。
每个任务节点都可以绑定一个表单路劲,如果没绑定,当查看此任务时,将使用流程模板绑定的表单路径。
流转线上的条件定义:格式为:#{days&3},days为流程变量;{}里中为条件表达式
分支汇聚:汇聚数量为需要到达的子流转数;
比如:从分支节点有3个分支,当定义汇聚数量为2,只需3个分支中的任意两个分支到达,流程往下流转。如果不填,则为所有分支走完后,流程才能往下流转。
5.定义流程后必须进行表单路劲的绑定,如果修改了模板的任何数据,必须重新发布流程,才能生效。
web流程编辑器:
dingyouzhi
浏览: 1564 次
来自: 北京
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'拒绝访问 |
| 百度云加速
请打开cookies.
此网站 () 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(3b94-ua98).
重新安装浏览器,或使用别的浏览器3被浏览118分享邀请回答0添加评论分享收藏感谢收起博客分类:
鉴于基于mxgraph的版本不能在中国使用,本人打算用Flex开发,不过Flex的图形处理功能目前还是不太强,主要表现在没有一个较好的图形处理框架,完成一个曲线绘制及编辑功能也需要大费周折,于是本人决定临时给客户开发一个基于Applet版的在线流程设计器。
用java开发,相对得心应手一些,,花了整整一个星期的时间,初步完成了流程的界面编辑设计,并且生成了XML文件。可以比较方便编辑在线的流程,目前尚未解决的是如何进行分支决定。在线完成画图相对比较容易,惟一困难的是如何让它生成的xml文件支持自动跳转分支的功能,因此需要让设计者画分支图的可以输入一些跳转的条件,生成流程图的时候,就可以让Jbpm流程自动来进行。
以下为程序的初步界面,其会随JOffice 1.3一起发布。
整合至EXT的界面如下所示:
流程设计中的分支条件设置,使用的是表达式方式,如下所示:
&decision name="evaluate document" g="96,102,48,48"&
&transition to="submit document" g="120,60:"&
&condition expr="#{content==&good&}" /&
&/transition&
&transition to="try again"&
&condition expr="#{content==&bad&}" /&
&/transition&
&transition to="give up" g="120,189:" /&
&/decision&
我们在设计器中也允许用户设置以上的表达式,如下图所示:
以上流程图最终生成的jpbm流程定义以下所示:
&?xml version="1.0" encoding="UTF-8"?&
&process name="test"&
&start g="63,34,58,58" name="开始"&
&transition g="-36,-16" name="to" to="输入金额"/&
&task g="217,42,103,44" name="输入金额"&
&transition g="-36,-16" name="t2" to="分支"/&
&task g="72,222,118,45" name="任务4"&
&transition g="-36,-16" name="t5" to="结束1"/&
&decision g="243,137,58,58" name="分支"&
&transition g="-36,-16" name="t4" to="任务5"&
&condition expr="#{account &= 30}"/&
&/transition&
&transition g="-36,-16" name="t3" to="任务4"&
&condition expr="#{account & 30}"/&
&/transition&
&/decision&
&task g="364,229,137,42" name="任务5"&
&transition g="-36,-16" name="t6" to="结束1"/&
&end g="239,336,58,58" name="结束1"/&
&/process&
在eclipse中显示出来的图如下所示:
以下为稍为复杂一点的流程:
生成的源代码对应如下:
&?xml version="1.0" encoding="GBK"?&
&process name="test22"&
&task name="任务1" g="48,127,77,41"&
&transition name="t2" to="分支" g="-36,-16" /&
&start name="开始" g="54,12,58,58"&
&transition name="t1" to="任务1" g="-36,-16" /&
&decision name="分支" g="60,231,58,58"&
&transition name="t4" to="任务3" g="-36,-16"&
&condition expr="#{account&20}" /&
&/transition&
&transition name="t3" to="任务2" g="-36,-16"&
&condition expr="#{account&=20}" /&
&/transition&
&/decision&
&task name="任务2" g="171,156,50,50"&
&transition name="t5" to="同步任务" g="-36,-16" /&
&task name="任务3" g="194,313,50,50"&
&transition name="t10" to="结束1" g="-36,-16" /&
&fork name="同步任务" g="238,61,58,58"&
&transition name="t7" to="任务5" g="-36,-16" /&
&transition name="t6" to="任务4" g="-36,-16" /&
&task name="任务4" g="375,65,50,50"&
&transition name="t8" to="汇集任务" g="-36,-16" /&
&task name="任务5" g="290,212,50,50"&
&transition name="t9" to="汇集任务" g="-36,-16" /&
&join name="汇集任务" g="446,248,58,58"&
&transition name="t11" to="结束1" g="-36,-16" /&
&end name="结束1" g="354,404,58,58" /&
&/process&
浏览: 334016 次
来自: 广州
哎。假的。
这是主流程调用子流程报的错大神指导原因吗?
pageoffice也是office在线编辑的吧,J.Offi ...
你好,想问下,串行的多实例任务能做到回退么
参考这个实现思路,可以弄个自定义的表单设计器http://wi ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'}

我要回帖

更多关于 jbpm在线流程设计器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信