首先分析自己的业务逻辑,画好状态图
请假流程状态图
根据状态图编写xml文件
|
编写程序、控制状态变化
LeaveEntity.java
|
LeaveFrame.java
程序分析
首先打开程序
然后点击请假,发起一个请假流程,图中的一串字符是当前会话的id。
一旦提交表单,就轮到部门经理审批,部门经理可以选择同意或者拒绝。
这里先演示部门同意,接下来就该到人事经理了。
这里演示人事经理拒绝,那么按照我们之前话的状态图,这时候应该到“被拒绝“状态,发起人可以更改信息,重新提交或者放弃请假。
这里假设我们继续填写,点击提交,又回到了部门经理审批,然后人事经理审批环节,假设两者都同意,然后整个流程就结束了。
总结
用状态图只要控制好event 和condition 表达复杂的行为很方便。SCXML框架只有控制状态变化的能力,如果我们能够添加上任务分派功能,那就是一个很强大的状态机工作流了。