日期:2014-05-16  浏览次数:20583 次

ExtJS+Nutz+JBPM实现一个简单的请假流程

学习了一段时间的JBPM工作流,根据网上一个很常见的请假的例子,基于ExtJS3.3.1Nutz1.a.36JBPM4.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包的发布:

<