本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
fantaxy025025 - johnsmith9th
- xiangjie88
- zysnba
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- jickcai
- gengyun12
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sam123456gz
- sichunli_030
- arpenker
- tanling8334
- gaojingsong
- kaizi1992
- xpenxpen
- 龙儿筝
- jh108020
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- luxurioust
- lemonhandsome
- mengjichen
- jbosscn
- zxq_2017
- lzyfn123
- nychen2000
- forestqqqq
- wjianwei666
- ajinn
- zhanjia
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- mwhgJava
- kingwell.leng
最新文章列表
jbpm的调度应用3-end
timer如果在task中,有一个属性cancel-event,可以指定那些事件可以终止timer的执行,默认是task-end,也可以指定多个事件如:<timer duedate="2 business minutes" cancel-event="task-start, task-assign, task-end"></timer> ...
jbpm的调度应用2
上篇介绍了通过跳过节点可以终止timer,其实也可以直接在流程定义里设置timer的终止,就是使用cancel-timer元素。
xml 代码
<?xml version="1.0" encoding="UTF-8"?>
<process-definition xmlns="" name=&quo ...
jpbm如何获得流程所处的环节。
今天中午,一个msn的朋友问起这个问题, 就在这里说明一下吧。我们都玩过击鼓传花的游戏,花在众人的手里不停的传递,鼓停了,花在谁手里就代表了这个击鼓传花的流程进行到哪个环节了。对于jbpm,roottoken就是这个花,我们可以通过Token token = processInstance.getRootToken();token.getNode()得到某一个流程实例所处的环节。但是有一个问题,对于 ...
被jbpm忽悠了一把!
今天看jbpm的源码,发现了一个很有用的节点类型merge,按代码看好像是对于分支节点如果有一条分支到达了merge,则流程舍弃其他分支继续向下走,开始以为发现了宝贝,挖到jbpm的一个秘密武器,马上进行测试,结果一部署,error没有这种节点类型。呵呵。记得以前搞pd,发现了一个复活节彩蛋,打开help后输入powersoft后会显现一段动画,当时觉得好有意思,看来开源的没有这种东东了。 < ...
用经典方式部署jbpm流程-2
在ie地址栏中输入:http://10.1.4.88:8080/jbpm/ 然后用cookie进入,可以看到我部署的jeffentask流程,这里要说明一点,我的这个流程是参照websale改的,有同样的swimlane。那如果我们要看数据库中的数据怎么办,jbpm默认采用的是内存数据库。首先从http://10.1.4.88:8080/进入jmx控制台,找到database=localDB,ser ...
jbpm连接不同机器上的mysql
一直在做的jbpm测试都是在我本机localhost,同时也一直没有研究过jbpm的流程部署。因为jboss和mysql在不同的机器上,于是需要修改spring的数据库连接和hibernate的连接。即将现在的<value>jdbc:mysql://localhost:3306/test</value> 改成<value>jdbc:mysql://10.16.77 ...
jbpm中的starttask,鸡肋?
jbpm的tasknode可谓功能强大,在实际中应该是用得最多的节点了,当程序运行到tasknode,会自动生成我们配置的taskinstance,不同的actionid找到自己的taskinstance就可以按单操作了,很是方便。还有一种task很高调的出现在jbpm的websale例子中,就是startstate下配置task,起初我也是认为它和在tasknode下的task一样,会自动生成ta ...
spring+hibernate+jbpm整合成功
接<<spring+hibernate+jbpm整合失败>>终于搞定了,在此感谢chenjin的指点。从10.31日整合失败后,这块就一直是我的心病,我甚至都跑去了http://www.springframework.org/去发了一个帖,这还是我第一次用英文问问题呢。最后的配置结果是:hibernate.cfg.xml、jbpm.cfg.xml在关联spring后保持不变, ...
思考:开源工作流在应用程序中的位置--80%
我工作以来所经历的项目是依次如下一、基本没有工作流概念,建一个流程表,一张大横表,每一个环节是一个字段,用一些标识代表状态,如0未完成、1已完成、x异常、c撤单...,程序员自己编码维护,而且绝大多数的情况都是业务逻辑、流程控制、数据库读写混在一起 。这主要适合流程单一、改动不大、用户数较少的系统,但是也带来了很多开发、测试、维护的问题。而且随着程序的逐渐庞大,这些问题也会愈演愈烈,最终的解决就是推 ...
spring+hibernate+jbpm整合失败
今天打算将jbpm和spring整合到一起,折腾了半天还是失败了。下面将我的整合步骤简单描述一下:首先我用 eclipse3.2+spring2+hibernate3.2 结合做了一个小例子,运行成功,使用的是声明式的事务。接着我在上面的例子上加载了 spring-modules-0.6,因为这个模块里加载的是jbpm-3.1.1.jar而且还缺少了jbpm-identity-3.x.jar,于是我 ...
jbpm知识点——timer、Scheduler
定时器timer可以被用于decision fork join node process-state state super-state task-node,可以设置开始时间duedate和频率repeat,定时器动作可以是所支持的任何动作元素,如action或script,会运行我们设置的商务动作。定时器通过动作创建和取消,有两个动作元素create-timer和cancel-timer。事实上, ...
jbpm知识点——identity
这部分和task紧密关联。身份组件,其实就是描述企业组织架构的组件,有四张表用来存储这部分信息:jbpm_id_group、jbpm_id_membership、jbpm_id_permissions、jbpm_id_user.User表示用户或服务。Group是任何类型的用户组,Group可以被嵌套,用来建模一个团队、一个业务单元、以及整个公司的关系,组有类型,用来在不同等级的组之间进行区分,例如 ...
jbpm知识点——tasknode
同fork等一样是一种节点类型。任务节点是jbpm中一个非常重要的概念,一个任务节点可以包含若干个任务(开始状态start-state只能有一个任务),不同的任务可以由不同的人来完成,任务实例被分配给actorId来完成。任务实例有几个状态:创建、开始、结束,这些信息存在JBPM_TASKINSTANCE中。常用的方法:分派任务(指定处理人)-TaskInstance.assign(String)根 ...
jbpm知识点——swimlane
swimlane一般是为了task准备的,任务总是要分配到某个人头上的。如果在流程定义文件中任务没有指定对应的泳道如:<task name="bank"/>,那么就需要在程序代码中分配相关的处理人taskInstance.setActorId("jeffen")。如果程序都是这样来搞那其实是很麻烦的,而且分配代码分散到各个地方,很容易出错。于是引进 ...
对箫杉《强制结束令牌(token)引发的问题》的思考
箫同学的原文见http://blog.csdn.net/mrshan/archive/2006/09/05/1181001.aspx文中所说的情况我举一个我们这开发中的例子看看恰当不恰当:业务都有收费的环节,收费有2种方式——银行托收和前台缴现金,按照文中的描述原来的流程定义是:<start-state name="start"> <transition ...
jbpm知识点——ContextInstance
上下文主要是用来操作变量的,其实在decision和ProcessState2的例子中已经使用过了。一般得到ContextInstance可以通过以下2种方式:ContextInstance contextInstance = processInstance.getContextInstance();ContextInstance contextInstance = (ContextInstance ...