结合OA业务需要,设计一个简单够用的工作流系统(二)
下面给出UML图供大家参考:
其中:
流程类型、流程、活动、流转条件、外部应用为设计时对象,用于描述流程规则
流程实例、活动实例、活动记录为运行时对象,用于记录实际发生的流程运行状况
需要解决的问题是,如何将我们的应用与此工作流引擎进行结合?我的解决方法是:
1、流程类型约定业务对象类型(即此流程可以与哪种业务对象关联)
2、业务对象中的属性或其组合可以定义为流转条件(即实现业务对象信息影响工作流流转)
3、活动执行者可以选择业务系统的组织机构、角色、人员定义(我是通过接口方式进行约定,IOC注入)
4、活动可调用已定义的应用(可多个)
5、业务对象可以通过报批动作启动工作流实例,之后由工作流按照设计信息与业务信息进行自动流转或全程提供表单与审批按钮支持。
由于此工作流系统是出于简化的目的进行设计的,设计时与运行时信息我都使用数据库信息来表示,设计器也未提供拖拉界面来进行设计,而是采用顺序定义的方式来操作。在实际运作过程中,我觉得它可以满足一般规模不大(文职人员100人左右)的企业的OA应用。
本人原创文章,欢迎转载,转载请注明出处! 1 楼 presses 2008-11-09 只能说,写一个可用的工作流引擎很快,写一个好用的工作流引擎很难(如果这里的难用得不适当的话,用“工作量大”代替也可以)。 2 楼 wokgsi2 2008-11-10 楼主,请问外部应用怎么是和活动做关联,而不是流程? 如果这样流程监控如何实现? 3 楼 gzspark 2008-11-10 我不知道你是怎么理解外部应用?在我举的这个例子里,外部应用是指在流程运装到某个环节时会调用的外部应用,通常是一段script脚本. 而不一定是流程结束时才进行调用.所以与活动关联.
流程监控实际是就是对流程实例,活动实例,活动记录进行管理.应用的调用会记录在活动记录中.