下面给出UML图供大家参考:
其中:
流程类型、流程、活动、流转条件、外部应用为设计时对象,用于描述流程规则
流程实例、活动实例、活动记录为运行时对象,用于记录实际发生的流程运行状况
需要解决的问题是,如何将我们的应用与此工作流引擎进行结合?我的解决方法是:
1、流程类型约定业务对象类型(即此流程可以与哪种业务对象关联)
2、业务对象中的属性或其组合可以定义为流转条件(即实现业务对象信息影响工作流流转)
3、活动执行者可以选择业务系统的组织机构、角色、人员定义(我是通过接口方式进行约定,IOC注入)
4、活动可调用已定义的应用(可多个)
5、业务对象可以通过报批动作启动工作流实例,之后由工作流按照设计信息与业务信息进行自动流转或全程提供表单与审批按钮支持。
由于此工作流系统是出于简化的目的进行设计的,设计时与运行时信息我都使用数据库信息来表示,设计器也未提供拖拉界面来进行设计,而是采用顺序定义的方式来操作。在实际运作过程中,我觉得它可以满足一般规模不大(文职人员100人左右)的企业的OA应用。
本人原创文章,欢迎转载,转载请注明出处!