As there has been quite some misunderstanding in the past, what the Struts Workflow Extension is all about, here is, what this package is not: It is not a workflow engine to model business processes! xujiaqiang() 提供的extension不是工作流引擎,只是保证用户可以按照预定的顺序操作,类似窗口系统中的model dialog--wizard,(我的理解)。
如果需要,你可以参考一些工作流的管理体系架构,比如WFMC的文档,到网上搜一下。
xujiaqiang提供的网站很有意思,我也在看,谢谢。
xujiaqiang() 提供的extension不是工作流引擎,只是保证用户可以按照预定的顺序操作,类似窗口系统中的model dialog--wizard,(我的理解)。
理解流程管理和任务管理
最好使用流程模板技术
设计好组织机构及相关权限的架构
通常的关系一个用户可以发起多个工作流,一个工作流可以有多个子任务,自任务自身发起自己的子流程。
处理好包含多个子流程的工作流的状态转换例如一个审批每月统计报告的流程这样描述:流程开始<----->统计科职员统计数据<----->统计科科长批示(若不通过则返回职员,同时流程挂起,等待职员再次上交)<----->财政部部长批示(若不通过则返回职员,同时流程挂起,等待职员再次上交)<----->财政总监批示(若不通过则返回职员,同时流程挂起,等待职员再次上交)<----->流程完毕
期间可能需要执行统计报告备案的子任务,所以科长发起子流程:子流程开始<---->统计科科长<---->财政部总监助理备案<---->子流程结束
关于几个关键:
1、模板技术:将常用的流程建立模版,由模板生成新的工作流程。例如上个流程示例,每个月都需要进行统计,可以建立统计流程模板,由该模板自动生成每月的统计流程。
2、合理的组织机构设计:可以更好的确定流程步骤和执行人(或部门)
3、工作流程的状态转换。通常的状态:开始、执行、挂起、取消、结束等;已经执行的流程只有在一定条件下才可以取消。
4、工作流程及其子流程的关系:只有当前子流程结束后才能进行下一步,直到工作流程结束;