|
已锁定 主题:JBPM工作流管理实例
该帖已经被评为隐藏帖
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2007-09-09 关键字: bpm, java, jbpm ,workflow ,工作流, j2ee
一个JBPM工作流管理示例 在某一公司中,部门员工要休假的话需要部门主管的批准。如果休假天数大于10天的话,在部门主管的同意后,还必须上级主管批准。如果是部门主管要休假只要上级主管批准即可。在休假被批准之前,申请人可以撤销休假申请。 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="Request Leave"> <swim lane name="requester"> <description>申请者</description> </swim lane> <swim lane name="chief"> <description>部门主管</description> <delegation class="kellerdu.jbpm.delegation.ChiefSwimlane"/> </swim lane> <swim lane name="boss"> <description>上级主管</description> <delegation class="kellerdu.jbpm.delegation.BossSwimlane"/> </swim lane> <start-state name="request" swim lane="requester"> <transition to="Begin Request"/> </start-state> <fork name="Begin Request"> <transition to="Requester Cancel"/> <transition to="Is Chief"/> </fork> <decision name="Is Chief"> <delegation class="kellerdu.jbpm.delegation.ChiefDecision"/> <transition name="Boss Approve" to="Boss Approve"/> <transition name="Chief Approve" to="Chief Approve"/> </decision> <assignment swim lane="requester"/> <transition name="cancel" to="Decided"> <action> <!-- 将请假的状态改变为“取消”--> <delegation class="kellerdu.jbpm.action.RequestCancel"/> </action> </transition> </state> <state name="Chief Approve"> <assignment swim lane="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="Boss Approve"> <assignment swim lane="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="Boss Approve"/> <transition name="not Need" to="Decided"/> </decision> <join name="Decided"> <description>有一个先到达即进行父Token</description> <delegation class="kellerdu.jbpm.delegation.DecidedJoin"/> <transition to="Do Something"/> </join> <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> </transition> </decision> <end-state name="Finished"/> <action event-type="process-end"> <!-- 发送E-Mail消息给申请者,记录请假日志 --> <delegation class="kellerdu.jbpm.action.ProcessEndAction"/> </action> </process-definition>
声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
浏览 198 次


