学习了一段时间的JBPM工作流,根据网上一个很常见的请假的例子,基于ExtJS3.3.1,Nutz1.a.36,JBPM4.4实现了一遍。
实现了发布删除流程,流程监控,流程图查看,一个完整的请假流程等功能。
流程图:
对应的JPDL.xml:
<?xml version="1.0" encoding="UTF-8"?> <process name="qingjia" xmlns="http://jbpm.org/4.4/jpdl"> <description><![CDATA[ 一个请假流程,三天以上假期需要老板批准 ]]></description> <start g="96,10,48,48" name="请假申请"> <transition to="申请" /> </start> <task g="74,93,92,52" name="申请" assignee="${employee}" form="leave.jsp"> <transition to="经理审批" /> </task> <task g="74,187,92,52" name="经理审批" candidate-groups="g_manager" form="manager.jsp"> <transition g="-29,-8" name="批准" to="决策1" /> <transition g="234,211;234,118:-45,-22" name="驳回" to="申请" /> </task> <decision g="96,279,48,48" name="决策1" expr="#{day > 3 ? '老板审批' : '结束'}"> <transition name="老板审批" to="老板审批" g="-53,-22" /> <transition name="结束" to="申请通过" g="-29,-22" /> </decision> <task g="235,273,92,52" name="老板审批" candidate-groups="g_boss" form="boss.jsp"> <transition g="-29,-22" name="批准" to="申请通过" /> <transition g="-44,-11" name="不批准" to="申请未通过" /> </task> <end g="97,373,48,48" name="申请通过" /> <end g="261,372,48,48" name="申请未通过" /> </process>
登陆界面:
分为三种角色,员工,经理,老板。
员工可以任意输入,经理目前只有m1,m2两位,老板只有b1,b2两位,其他名字登陆后没有权限。
工作流控制台:
分为上下两层,上面是工作流发布信息,下面是当前登陆用户的任务列表。
对于每个工作流,可以查看其流程图,例如单击qingjia.png:
发布工作流,这里仅支持zip包的发布:
ZIP包中至少包含JDPL.xml与对应PNG文件。
流程监控,对已经发起的工作流的整个流程进行监控,查看当前运行节点,完成节点等信息:
对其中一个进行详细的查看:
请假页面:
经理审批:
老板审批:
PS:附上一个操作视频。