这个是现阶段的流程描述文件,也就是前面
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>
欢迎拍砖,状态机的代码很快也会发出来