jboss-jbpm
文章平均质量分 64
jeffen2006
这个作者很懒,什么都没留下…
展开
-
jbpm的调度应用3-end
timer如果在task中,有一个属性cancel-event,可以指定那些事件可以终止timer的执行,默认是task-end,也可以指定多个事件如:<timer duedate="2 business minutes" cancel-event="task-start, task-assign, task-end"></timer>。下面举一个默认为task-end的...2006-12-08 11:38:25 · 143 阅读 · 0 评论 -
用经典方式部署jbpm流程-1
原创 2006-11-29 13:18:00 · 2400 阅读 · 0 评论 -
jbpm连接不同机器上的mysql
一直在做的jbpm测试都是在我本机localhost,同时也一直没有研究过jbpm的流程部署。因为jboss和mysql在不同的机器上,于是需要修改spring的数据库连接和hibernate的连接。即将现在的jdbc:mysql://localhost:3306/test 改成jdbc:mysql://10.16.77.223:3306/test首先作测试,error:is not allo原创 2006-11-21 17:44:00 · 1165 阅读 · 0 评论 -
jbpm中的starttask,鸡肋?
jbpm的tasknode可谓功能强大,在实际中应该是用得最多的节点了,当程序运行到tasknode,会自动生成我们配置的taskinstance,不同的actionid找到自己的taskinstance就可以按单操作了,很是方便。还有一种task很高调的出现在jbpm的websale例子中,就是startstate下配置task,起初我也是认为它和在tasknode下的task一样,会自动生原创 2006-11-17 11:29:00 · 1827 阅读 · 0 评论 -
spring+hibernate+jbpm整合成功
接>终于搞定了,在此感谢chenjin的指点。从10.31日整合失败后,这块就一直是我的心病,我甚至都跑去了http://www.springframework.org/去发了一个帖,这还是我第一次用英文问问题呢。最后的配置结果是:hibernate.cfg.xml、jbpm.cfg.xml在关联spring后保持不变,只需要更改spirng的配置文件就好了。 xml原创 2006-11-13 15:29:00 · 1904 阅读 · 0 评论 -
思考:开源工作流在应用程序中的位置--80%
我工作以来所经历的项目是依次如下一、基本没有工作流概念,建一个流程表,一张大横表,每一个环节是一个字段,用一些标识代表状态,如0未完成、1已完成、x异常、c撤单...,程序员自己编码维护,而且绝大多数的情况都是业务逻辑、流程控制、数据库读写混在一起 。这主要适合流程单一、改动不大、用户数较少的系统,但是也带来了很多开发、测试、维护的问题。而且随着程序的逐渐庞大,这些问题也会愈演愈烈,最终的解决原创 2006-11-03 13:35:00 · 1213 阅读 · 0 评论 -
spring+hibernate+jbpm整合失败
今天打算将jbpm和spring整合到一起,折腾了半天还是失败了。下面将我的整合步骤简单描述一下:首先我用 eclipse3.2+spring2+hibernate3.2 结合做了一个小例子,运行成功,使用的是声明式的事务。接着我在上面的例子上加载了 spring-modules-0.6,因为这个模块里加载的是jbpm-3.1.1.jar而且还缺少了jbpm-identity-3.x.原创 2006-10-31 16:17:00 · 1916 阅读 · 3 评论 -
jbpm知识点——ProcessState
用来定义子流程,当主流程遇到ProcessState就会停滞并生成子流程运行,子流程运行完毕重新回到主流程运行。主子流程的部署有点特殊(耗费了我3个小时才搞定,我开始认为只要在processdefinition.xml中定义好2个流程的关系,然后分别发布就好了,但是不行,一定要程序设置好两者的关系再发布)主流程xml: -------------原创 2006-10-17 13:50:00 · 1304 阅读 · 0 评论 -
jbpm知识点——Superstates、event
超状态是一组节点,超状态可以被递归嵌套。超状态可以被用来在流程定义中产生一些层次,例如,一个应用可能要把流程中的所有节点按阶段进行分组。动作可以与超状态事件关联,结果就是一个令牌在某个给定时间可以存在于多个嵌套的节点,这便于检查流程是否执行,比如,是否在启动阶段。在Jbpm模型中,你可以任意分组任何节点到一个超状态。在指定节点时用(/)隔开节点名称,用“..”指向上一层次。原创 2006-10-16 17:11:00 · 1899 阅读 · 4 评论 -
被jbpm忽悠了一把!
今天看jbpm的源码,发现了一个很有用的节点类型merge,按代码看好像是对于分支节点如果有一条分支到达了merge,则流程舍弃其他分支继续向下走,开始以为发现了宝贝,挖到jbpm的一个秘密武器,马上进行测试,结果一部署,error没有这种节点类型。呵呵。记得以前搞pd,发现了一个复活节彩蛋,打开help后输入powersoft后会显现一段动画,当时觉得好有意思,看来开源的没有这种东东了。原创 2006-11-30 11:39:00 · 1536 阅读 · 0 评论 -
jpbm如何获得流程所处的环节。
今天中午,一个msn的朋友问起这个问题, 就在这里说明一下吧。我们都玩过击鼓传花的游戏,花在众人的手里不停的传递,鼓停了,花在谁手里就代表了这个击鼓传花的流程进行到哪个环节了。对于jbpm,roottoken就是这个花,我们可以通过Token token = processInstance.getRootToken();token.getNode()得到某一个流程实例所处的环节。但是有一个原创 2006-11-30 14:59:00 · 2553 阅读 · 0 评论 -
jbpm的调度应用2
上篇介绍了通过跳过节点可以终止timer,其实也可以直接在流程定义里设置timer的终止,就是使用cancel-timer元素。xml 代码 <?xml version="1.0" encoding="UTF-8"?> <process-definition xmlns="" name="yytest"> <sta2006-12-08 10:42:41 · 96 阅读 · 0 评论 -
jbpm的调度应用1
以前开始接触jbpm的时候,也曾经发表了一篇关于调度的文章http://blog.csdn.net/jeffen2006/archive/2006/10/20/1342167.aspx,其中有很多不甚了解的东东,这几天又研究了一下,共享给各位学友。本系列仅从应用的角度出发进行介绍:jbpm的调度部分只要分为2块,timer主要是流程设计人员的工作,将timer放置到流程中;scheduler是...2006-12-07 13:14:58 · 126 阅读 · 0 评论 -
使用fork/join的常见错误
在实际的流程设计中常常会出现如下的流程:看上去没什么问题,那么开始编程xml 代码 xml version="1.0" encoding="UTF-8"?> <process-definition xmlns="" name="yytest"> <start-state name="start"&am2006-12-05 15:30:14 · 776 阅读 · 0 评论 -
jbpm经典问题-增加中
这里列出我从各个网站搜集的jbpm工作流经典问题,大家见仁见智、发表个人的意见和方法(回复请注明问题号),同时希望给出补充。条条大路通罗马。1、我有一个node节点是用来处理自动流程的,比如从网上接受订单然后进行校验,如果校验通过则流程继续,反之,生成任务转给相应的人员处理。当然我知道可以通过decision节点进行处理,但是如果在一个流程中有十几、几十个这样的节点,采用decision分叉是不...2006-12-04 17:29:23 · 105 阅读 · 0 评论 -
重新看待jbpm的流程定义
jbpm的流程定义从发布上看有2种方式,一种是发布持久化到关系型数据库中,另一种则是由java代码实时生成。之前一直关注持久化的方式,每次都是生成好固定的xml文件,然后发布到数据中,然后再从数据库中检索出来使用。不过通过2天的学习,第二种代码生成的方式有着第一种持久化方式所不能替代的优点。下面通过一个简单但是非常实用的例子来说明。网上有很多人在问,fork分出去的多条路线,为什么一定要全部...2006-12-01 16:19:13 · 97 阅读 · 0 评论 -
请教:spring+hibernate+jbpm整合失败
这两天打算将jbpm和spring整合到一起,折腾了半天还是失败了。下面将我的整合步骤简单描述一下:首先我用 eclipse3.2+spring2+hibernate3.2 结合做了一个小例子,运行成功,使用的是声明式的事务。接着我在上面的例子上加载了 spring-modules-0.6,因为这个模块里加载的是jbpm-3.1.1.jar而且还缺少了jbpm-identi...2006-11-01 17:02:18 · 66 阅读 · 0 评论 -
jbpm用户手册-Chapter 9. Process Modelling---90%
过程模型9.1. Overview 流程定义主要基于定向图表示了一个商业流程的规范。定向图包括了节点node和变迁transition。有很多类型的节点,节点的类型定义了运行时的行为,流程定义有且只有一个开始状态。 令牌token是一个执行的路线,token是一个运行时的概念,用来维护图中指想节点的指针。 过程实例process instance是一个过程原创 2006-08-21 15:24:00 · 1702 阅读 · 0 评论 -
jbossjbpm3.1.2+eclipse安装手记
首先登陆jboss网站,下载了jbpm-starters-kit-3.1.2.zip和jbpm-gpd-feature-3.0.11.zip。jbpm-starters-kit-3.1.2.zip中包含了eclipse的开发插件,在jbpm-designer目录下,其中的readme.html指导了如何安装该插件。jbpm-gpd-feature-3.0.11.zip只是eclipse的开原创 2006-08-17 13:06:00 · 3014 阅读 · 0 评论 -
jbpm知识点——exception-handler
Jbpm的异常处理机制仅仅集中于java异常,图本身的执行不会导致问题,只有在执行委托类时才会导致异常。在流程定义(process-definitions)、节点(nodes)和转换(transitions)上,可以指定一个异常处理(exception-handlers)清单,每个异常处理(exception-handler)有一个动作列表,当在委托类中发生异常时,会在流程元素的父层次搜索一个适当原创 2006-10-16 15:28:00 · 1151 阅读 · 0 评论 -
jbpm知识点——Transitions
转换有一个源节点和一个目标节点,源节点用from属性表示,目标节点用to属性表示。节点可以有一个任意的名称,注意:很多Jbpm特性依赖于唯一的转换名称,如果有多个转换有相同的名字,则拥有给定名称的第一个转换被使用。如果在一个节点中存在重复的转换名称,则Map getLeavingTransitionsMap()方法返回的元素将少于List getLeavingTransitions()方法。原创 2006-10-16 10:27:00 · 950 阅读 · 0 评论 -
jbpm知识点——decision
decision也是一种node类型,表示判断,其判断条件可以在流程定义中进行设置,也可以由外界提供。 下面是流程定义中的2种方式: 表达式方式 1 ? no : no) }" > ----------------------------------原创 2006-10-16 08:24:00 · 1349 阅读 · 0 评论 -
如何才能将企业现有的组织关系集成到jbpm中?
查看jboss的例子websale,知道可以将组织模式定义成xml(包括member、group、user),但是为了融合遗留系统同时方便现有的操作模式,如何将数据库中的组织模式和jbpm集成呢?原创 2006-10-18 09:31:00 · 1626 阅读 · 1 评论 -
对箫杉《强制结束令牌(token)引发的问题》的思考
箫同学的原文见http://blog.csdn.net/mrshan/archive/2006/09/05/1181001.aspx文中所说的情况我举一个我们这开发中的例子看看恰当不恰当:业务都有收费的环节,收费有2种方式——银行托收和前台缴现金,按照文中的描述原来的流程定义是:start-state name="start"> transition name="" to="c原创 2006-10-17 17:06:00 · 2313 阅读 · 1 评论 -
jbpm知识点——异步继续
异步节点async="true" ,对这块不是很理解,不知道在实际应用中的价值?还是先看下微软的文章吧http://www.microsoft.com/china/MSDN/library/enterprisedevelopment/builddistapp/ArchitecturalOptionsforAsynchronousWorkflow.mspx?mfr=true原创 2006-10-17 13:55:00 · 943 阅读 · 0 评论 -
jbpm知识点——Actions
动作是在流程执行的事件上被执行的java代码片断。注意动作被放置在事件与被放置在节点之间的差异。放置在事件中的动作当事件激活时被执行,事件上的动作不能影响流程的控制流,放置在node上的动作则有传播流程执行的职责 。我们将前一个专题(node)的例子作一点改动: HELLO ---------------原创 2006-10-16 11:09:00 · 1296 阅读 · 0 评论 -
jbpm知识点——fork、join
分支节点会产生子令牌,到达聚合节点的所有子令牌完成,聚合节点才继续进行。 --------------------------------------------------------------private static void run(){ Jb原创 2006-10-16 09:20:00 · 2374 阅读 · 2 评论 -
jbpm的一些概念-翻译自jbpm用户手册16章jpdl--20%
16.1process archive:是一个压缩文件,主要包含processdefinition.xml,还可能包括hibernate需要的配置文件、数据库脚本、甚至是java类。如果需要发布为process archive可以使用ant。问题:发布这个的用处?发布的时候会自动操作数据库么?Process versioning:为了应对上线后Process的改动,同一个名字的Proces原创 2006-09-15 13:06:00 · 1269 阅读 · 0 评论 -
060914随笔
这两天一直在网上找jbpm的文章,还真是少呢,而且大多都是2004年的贴,当时很多很热门的写手现在都消失得无影无踪了,要么就很久没有写过jbpm的文章了。 顶盖呢?原创 2006-09-14 16:08:00 · 907 阅读 · 0 评论 -
jbpm和数据库1
从网上下来jbpm-starters-kit-3.1.2.zip,然后解压,进行相应的安装配置就可以在eclipse中直接进行简单的运行了(安装配置信息见我前面的文章),初学者一定会很疑惑,明明用户手册说是所有流程定义、流程实例是保存在数据库中的,但是我明明什么都没有设置呀?是的,确实是保存到数据库中的,可以通过下面的步骤查看:1、首先使用eclipse新建向导建立一个jbpm原创 2006-09-12 14:55:00 · 1307 阅读 · 0 评论 -
jbpm知识点——identity
这部分和task紧密关联。身份组件,其实就是描述企业组织架构的组件,有四张表用来存储这部分信息:jbpm_id_group、jbpm_id_membership、jbpm_id_permissions、jbpm_id_user.User表示用户或服务。Group是任何类型的用户组,Group可以被嵌套,用来建模一个团队、一个业务单元、以及整个公司的关系,组有类型,用来在不同等级的组之间进行区分,例原创 2006-10-19 14:40:00 · 1395 阅读 · 0 评论 -
jbpm知识点——node
node节点类型适用于当你想要在节点中编写自己的代码的情形。通过设置action来帮定我们自己的商业逻辑。 HELLO ------------------------------------ package com.jeffentest;import org.jbpm.graph.def.ActionHandler原创 2006-10-16 10:15:00 · 1162 阅读 · 0 评论 -
jbpm知识点——timer、Scheduler
定时器timer可以被用于decision fork join node process-state state super-state task-node,可以设置开始时间duedate和频率repeat,定时器动作可以是所支持的任何动作元素,如action或script,会运行我们设置的商务动作。定时器通过动作创建和取消,有两个动作元素create-timer和cancel-timer。事实上原创 2006-10-20 10:01:00 · 6003 阅读 · 2 评论 -
jbpm3.1实际项目中如何做事务管理?
这方面的资料很少,jboss提供的示例websale中的此部分估计是版本比较老,已经是deprecated。有没有同学有这方面的经验可以共享下。原创 2006-10-18 14:59:00 · 1187 阅读 · 1 评论 -
jbpm知识点——ProcessState2
通常,当一个子流程被启动,在离开开始状态的信号被发出之前,所有拥有“read”存取属性的变量都被从超流程载入新创建的子流程;当子流程结束时,所有拥有“write”存取属性的变量都被从子流程拷贝到超流程。variabled元素的mapped-name属性允许你指定在子流程中将使用的变量名称。相对于上例改动如下 -------------------原创 2006-10-17 13:52:00 · 978 阅读 · 0 评论 -
jbpm知识点——state
state是一种节点类型,当流程运行到该节点后会等待,需要外界进行触发,流程才能继续进行。一般用在同系统外部进行交互,如当流程进入该节点后向外系统发业务处理请求,然后进入等待状态,当外系统完成后发回响应信息后,通过token.signal()触发流程继续。如: System.out.println("this script is entering原创 2006-10-13 17:26:00 · 1266 阅读 · 0 评论 -
jbpm知识点——tasknode
同fork等一样是一种节点类型。任务节点是jbpm中一个非常重要的概念,一个任务节点可以包含若干个任务(开始状态start-state只能有一个任务),不同的任务可以由不同的人来完成,任务实例被分配给actorId来完成。任务实例有几个状态:创建、开始、结束,这些信息存在JBPM_TASKINSTANCE中。常用的方法:分派任务(指定处理人)-TaskInstance.assign(String)原创 2006-10-19 14:17:00 · 2062 阅读 · 0 评论 -
jbpm知识点——swimlane
swimlane一般是为了task准备的,任务总是要分配到某个人头上的。如果在流程定义文件中任务没有指定对应的泳道如:,那么就需要在程序代码中分配相关的处理人taskInstance.setActorId("jeffen")。如果程序都是这样来搞那其实是很麻烦的,而且分配代码分散到各个地方,很容易出错。于是引进了泳道,我们可以在流程定义文件中统一指定swimlane和处理人的关系、task和swi原创 2006-10-18 10:18:00 · 2657 阅读 · 0 评论 -
jbpm知识点——ContextInstance
上下文主要是用来操作变量的,其实在decision和ProcessState2的例子中已经使用过了。一般得到ContextInstance可以通过以下2种方式:ContextInstance contextInstance = processInstance.getContextInstance();ContextInstance contextInstance = (ContextInsta原创 2006-10-17 14:39:00 · 1575 阅读 · 0 评论 -
jbpm知识点——node2
自动节点实现:在上面的node的介绍中,我们可以看到action和node的合作,这里做一点扩展,看下面的代码就很容易明白。public class AmountUpdate implements ActionHandler { public void execute(ExecutionContext ctx) throws Exception { //从数据库中得到相应的信息,进行原创 2006-10-17 14:03:00 · 948 阅读 · 0 评论