yyg1107
这家伙很懒,什么都没有留下
posts(15)
comments(20)
trackbacks(0)
BlogJava
联系
聚合
管理
公告
联系方式:
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
给我留言
查看公开留言
查看私人留言
随笔分类
(11)
axis(1)
hibernate(1)
java(2)
js(2)
other(5)
随笔档案
(8)
2008年6月 (1)
2007年8月 (2)
2007年4月 (3)
2006年11月 (2)
文章分类
(37)
C++Builder(3)
eclipse(2)
html(4)
java(8)
jbpm(6)
JS(4)
other(4)
question handly!(4)
web容器(1)
workflow(1)
文章档案
(36)
2007年4月 (2)
2007年3月 (1)
2007年1月 (2)
2006年12月 (2)
2006年11月 (3)
2006年10月 (11)
2006年9月 (2)
2006年7月 (2)
2006年6月 (1)
2006年5月 (1)
2006年4月 (6)
2006年3月 (3)
新闻档案
(1)
2007年1月 (1)
收藏夹
(16)
好的BLOG(9)
收藏----blog(7)
JavaBlog
amigoxie
matrix
搜索
积分与排名
积分 - 32113
排名 - 1319
最新评论
1. re: JS实现文本框输入提供选择框的提示功能-1
werewrewrwer
--wrewrwe
2. re: struts启动的一个错误!
更名struts-config.xml, remove && add struts capability,重新生成一个config.xml。
--barryken
3. p
42
--2
4. re: hql语句----随机查询取头10条记录[未登录]
没意思,这不就是分页的那一部分代码嘛!
--啊啊
5. re: 第一次做成功的AXIS例子[未登录]
楼主:能不能留下你的联系方式!探讨一下相关问题...
--hehe
阅读排行榜
1. JS实现文本框输入提供选择框的提示功能-1(7265)
2. 第一次做成功的AXIS例子(2405)
3. 命令行创建ODBC数据源(1526)
4. struts启动的一个错误!(1247)
5. hibernate调用存储过程例子(987)
评论排行榜
1. JS实现文本框输入提供选择框的提示功能-1(7)
2. 第一次做成功的AXIS例子(5)
3. struts启动的一个错误!(4)
4. 转:如何在JAVA中使用日期 (0)
5. 命令行创建ODBC数据源(0)
View Post
[转]一个JBPM工作流管理示例(一)
示例:
在某一公司中,部门员工要休假的话需要部门主管的批准。如果休假天数大于10天的话,在部门主管的同意后,还必须上级主管批准。如果是部门主管要休假只要上级主管批准即可。在休假被批准之前,申请人可以撤销休假申请。
每个员工还有多少天休假必须管理起来,在员工提交休假申请时要检查申请天数是否超过可用天数。申请批准后,要在可用天数里减去申请天数。每次休假申请结束之后,不管通过未通过或是否取消,都必须记录下来。主管在批复申请之后,系统要将批复结果Email给申请人。对于大于10天的申请,如果部门主管已批准同意而上级主管还未批准,这时申请人撤销申请后,系统应发Email通知部门主管申请已撤销。
processdefinition.xml如下:
<?
xml version
=
"
1.0
"
encoding
=
"
UTF-8
"
?>
<!--
edited with XMLSPY v2004 rel.
3
U (http:
//
www.xmlspy.com) by keller (zju) -->
<!
DOCTYPE process
-
definition PUBLIC
"
-//jBpm/jBpm Mapping DTD 2.0//EN
"
"
http://jbpm.org/dtd/processdefinition-2.0.dtd
"
>
<
process
-
definition name
=
"
RequestLeave
"
>
<
swimlane name
=
"
requester
"
>
<
description
>
申请者
</
description
>
</
swimlane
>
<
swimlane name
=
"
chief
"
>
<
description
>
部门主管
</
description
>
<
delegation
class
=
"
kellerdu.jbpm.delegation.ChiefSwimlane
"
/>
</
swimlane
>
<
swimlane name
=
"
boss
"
>
<
description
>
上级主管
</
description
>
<
delegation
class
=
"
kellerdu.jbpm.delegation.BossSwimlane
"
/>
</
swimlane
>
<
start
-
state name
=
"
request
"
swimlane
=
"
requester
"
>
<
transition to
=
"
BeginRequest
"
/>
</
start
-
state
>
<
fork name
=
"
BeginRequest
"
>
<
transition to
=
"
RequesterCancel
"
/>
<
transition to
=
"
IsChief
"
/>
</
fork
>
<
decision name
=
"
IsChief
"
>
<
delegation
class
=
"
kellerdu.jbpm.delegation.ChiefDecision
"
/>
<
transition name
=
"
BossApprove
"
to
=
"
BossApprove
"
/>
<
transition name
=
"
ChiefApprove
"
to
=
"
ChiefApprove
"
/>
</
decision
>
<
state name
=
"
RequesterCancel
"
>
<
assignment swimlane
=
"
requester
"
/>
<
transition name
=
"
cancel
"
to
=
"
Decided
"
>
<
action
>
<!--
将请假的状态改变为“取消”
-->
<
delegation
class
=
"
kellerdu.jbpm.action.RequestCancel
"
/>
</
action
>
</
transition
>
</
state
>
<
state name
=
"
ChiefApprove
"
>
<
assignment swimlane
=
"
chief
"
/>
<
transition name
=
"
approve
"
to
=
"
NeedBossApprove
"
>
<
action
>
<!--
将请假的状态改变为“主管批准”
-->
<
delegation
class
=
"
kellerdu.jbpm.action.ChiefApprove
"
/>
</
action
>
</
transition
>
<
transition name
=
"
disapprove
"
to
=
"
Decided
"
>
<
action
>
<!--
将请假的状态改变为“主管否决”
-->
<
delegation
class
=
"
kellerdu.jbpm.action.ChiefDisapprove
"
/>
</
action
>
</
transition
>
</
state
>
<
state name
=
"
BossApprove
"
>
<
assignment swimlane
=
"
boss
"
/>
<
transition name
=
"
approve
"
to
=
"
Decided
"
>
<
action
>
<!--
将请假的状态改变为“老板批准”
-->
<
delegation
class
=
"
kellerdu.jbpm.action.BossApprove
"
/>
</
action
>
</
transition
>
<
transition name
=
"
disapprove
"
to
=
"
Decided
"
>
<
action
>
<!--
将请假的状态改变为“老板否决”
-->
<
delegation
class
=
"
kellerdu.jbpm.action.BossDisapprove
"
/>
</
action
>
</
transition
>
</
state
>
<
decision name
=
"
NeedBossApprove
"
>
<!--
请假天数大于10天的要老板批准
-->
<
delegation
class
=
"
kellerdu.jbpm.delegation.NeedBossApproveDecision
"
/>
<
transition name
=
"
need
"
to
=
"
BossApprove
"
/>
<
transition name
=
"
notNeed
"
to
=
"
Decided
"
/>
</
decision
>
<
join name
=
"
Decided
"
>
<
description
>
有一个先到达即进行父Token
</
description
>
<
delegation
class
=
"
kellerdu.jbpm.delegation.DecidedJoin
"
/>
<
transition to
=
"
DoSomething
"
/>
</
join
>
<
decision name
=
"
DoSomething
"
>
<
description
>
根据请求的状态决定。
(
1
)“主管或者老板批准”-‘approve’:修改员工休假的总天数,设定发给用户E
-
Mail的信息。
(
2
)“主管或者老板否决”
-
“disapprove”:设定发给用户E-Mail的信息。
(
3
)“撤销”
-
"
cancel
"
-设定发给用户E-Mail的信息。如果主管批准,要发给主管消息说明已经撤销。
</
description
>
<
delegation
class
=
"
kellerdu.jbpm.delegation.DoSomethingDecision
"
/>
<
transition name
=
"
disapprove
"
to
=
"
Finished
"
>
<
action
>
<
delegation
class
=
"
kellerdu.jbpm.action.Disapprove
"
/>
</
action
>
</
transition
>
<
transition name
=
"
approve
"
to
=
"
Finished
"
>
<
action
>
<
delegation
class
=
"
kellerdu.jbpm.action.Approve
"
/>
</
action
>
</
transition
>
<
transition name
=
"
cancel
"
to
=
"
Finished
"
>
<
action
>
<
delegation
class
=
"
kellerdu.jbpm.action.Cancel
"
/>
</
action
>
</
transition
>
</
decision
>
<
end
-
state name
=
"
Finished
"
/>
<
action event
-
type
=
"
process-end
"
>
<!--
发送E-Mail消息给申请者,记录请假日志
-->
<
delegation
class
=
"
kellerdu.jbpm.action.ProcessEndAction
"
/>
</
action
>
</
process
-
definition
>
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=242438
posted on 2006-04-11 16:07
young
阅读(211)
评论(0)
编辑
收藏
所属分类:
jbpm
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
[转]一个JBPM工作流管理示例(三)
[转]一个JBPM工作流管理示例(二)
[转]一个JBPM工作流管理示例(一)
第一个工作流的例子
Seam 1.0 beta 2 发布-Java EE 5开发框架
[转]JBoss jBPM 3.1 发布- 开源工作流引擎