分享
 
 
 

一个JBPM工作流管理示例(一)

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

示例:

在某一公司中,部门员工要休假的话需要部门主管的批准。如果休假天数大于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>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有