先发一个流程描述文件上来,看看大家对这个有没有什么好的意见(这是自己的项目中需要用到的,它包含两部分:流程编辑器和工作流系统)

这个是现阶段的流程描述文件,也就是前面 

jquery 简易的流程图编辑控件 新版(20100907)

所使用的流程描述文件

 

<?xml version="1.0" encoding="utf-8" ?>

<workflow name="李四的升职申请" state="draft" type="leave">
	<!-- 针对整个流程的transitions -->
	<transitions>
		<!-- 元素名称为action,也就是用户的具体操作,比如 send(发送),intermit(中断),sendback(回退) -->
		<default from=".*" to="waiting"><!-- 这里写expression,返回的结果必须为boolean类型,如果为空,则视为true 
				,目前支持的表达式为IK Expression,关于IK Expression 表达式的相关信息还是自己去网上搜吧,挺好找的;以后会逐步的增加其他的表达 
				式语言支持,比如EL,比如js ; 关于超时的问题,状态机的默认实现为 6s,超过6s状态机会抛出TimeoutException; default 
				是状态机的规约,也就是说如果状态机再匹配不到action的情况下会使用default 的实现,以后可能会加入更加灵活的规约方式; 比如 “draft*”就可以规约到任何以draft开头的任意action上面 
				;from 目前也只是支持 “.*” 的规约方式,也会考虑更加的灵活 -->
		</default>
		<draft from="draft" to="draft" />
		<startup from="draft" to="waiting" />
	</transitions>

	<steps>

		<!-- 针对所有step定义的默认transitions -->
		<transitions>
			<send from=".*" to="actived" />
			<intermit from="actived" to="intermit" />
			<sendback from="waitting" to="waitting" />
		</transitions>

		<!-- 步骤现在模式为 main1 - main2 - main3 - .... ,这是主流程,在一些事业机构中,一般认为承办步骤,每个主流程的节点下面, 
			可以跟随若干个read步骤,也就是呈阅步骤 ,至于更加强大的步骤关系,目前还没有考虑加入,原因是还没有找到更好的描述结构的方式, WEB UI编辑器 
			没有开发也是一个主要的原因 -->
		<step id="1" name="办公室审批" type="main" actorType="user"
			state="waitting,actived,passed" actorName="李主任" cond="$result">

			<!-- 针对单个step定义的transitions,会根据 action ,from ,to 三个条件为标准覆盖默认定义 -->
			<transitions>
				<send from="waitting" to="2" />
			</transitions>

			<step id="2" name="部长审批" type="main" actorType="user" state="waitting"
				actorName="王部长" cond="$result">

				<step id="4" name="人事执行" type="main" actorType="dept" state="waitting"
					actorName="人事部门" cond="$result">
					<step id="6" name="存档" type="main" actorType="system" state="waitting"
						actorName="系统" cond="$result" />
				</step>

				<step id="5" name="为人事准备材料" type="read" actorType="user" state="waitting"
					actorName="李四" cond="$result" />
			</step>

			<step id="3" name="部长审阅" type="read" actorType="role" state="waitting"
				actorName="部长角色" cond="$result" />
		</step>
	</steps>
</workflow>

 

 

欢迎拍砖,状态机的代码很快也会发出来

你可能感兴趣的:(jquery,工作,xml,workflow,Gmail)