现在的位置: 首页 > 综合 > 正文

OA审批流转的需求与方案

2013年11月01日 ⁄ 综合 ⁄ 共 2027字 ⁄ 字号 评论关闭

审批流转
1,为什么要有审批流转(目的)
2,审批流转模块要实现的功能(要求)
3,解决方案与界面

1,目的
    1,审批流转就是把单位内部的各项审批电子化,如工作请示、出差申请、采购申
       请、报销等日常工作流程。
    2,审批流转所用的流程是表单流转的步骤,其核心是表单(或叫做文档),流程
       是为表单服务的,且一个表单对应一个流程。没有表单的流程没有意义。

2,要求
    1,方便的定义/修改与管理流程
    2,方便的定义/修改与管理表单模板
    3,执行审批流转
    4,方便的查询所有的表单记录

3,方案
    1,方便的定义/修改与管理流程
        1,使用人员是系统的管理员(不是程序员),要提供简单友好的设计界面
        2,最好是Web流程设计器(可以使用vml技术),即在网页中通过简单的操作
           或设置就可以完成一般的审批流程。可以支持一般流程常用的一些逻辑或
           条件设置,但是复杂的逻辑(Decision或Assignment等)还是要通过代码
           配合才可以完成,且实现起来比较复杂。
        3,Web流程设计器比较复杂,可以使用Jbpm提供的流程设计器做为替代方案。
           (但他对用户不友好,需要学习很多东西且有bug,不适合最终用户使用)
    2,方便的定义/修改与管理表单模板
        1,使用人员是系统的管理员(不是程序员),要提供简单友好的设计界面
        2,最好是Web表单模板设计器,可以方便的制作各种表单模板。表单模板中要
           展现出相关的业务数据,如请假单的模板中要有请假时间与请假原因等信
           息(可以通过改造FCKeditor实现)
        3,使用FCKeditor改造较为复杂,且与课程关系不大,所以采用设计最终的表
           单模板代码的方法(用FCKeditor最终也是生成表单模板的代码),所以要
           有一个表单模板管理的功能,用来配置表单模板的信息
    3,执行审批流转
        1,对于表单有三个操作:创建、审批、查询
        2,表单有三种状态:"正在审批中"、"未审批通过"、"已审批通过"
        3,创建,创建一个新的表单,并且开始流转(要启动一个新的流程实例)。
           在整个的审批流转过程中,表单状态都为"正在审批中"
        4,审批,对下级呈报的表单文档等进行审查并予批示。当任一审批环节审批
           不通过时,本次流转结束,表单状态为"未审批通过";如果所有的审批环
           节都审批通过,表单状态为"已审批通过"
        5,查询,查询所有的表单记录
    4,方便的查询所有的表单记录
    5,添加新审批流程的步骤与使用说明
        1,先添加流程定义,再添加表单模板。因为表单模板一添加就可以使用,但
           是没有设置流程的表单不能正常使用,所以添加流程要在添加表单模板之
           前(可以在表单模板中增加一个"是否可用" 的属性,那么在起草申请时就
           是显示所有可用的表单模板了)
        2,正在使用的表单模板应不能修改,可以采用流程定义的版本机制解决,让
           每次修改的表单模板都是一个版本同时存在

4,设计实体
    0-1,版本机制是解决流程定义的修改问题,每次使用时应使用最后一个版本(最新)
       的流程定义
    0-2,什么是Serializable
    1,表单模板配置
        1,每个表单模板对应一个流程定义,但不是某个具体版本的流程定义。应保
           存流程定义的名称,在使用时是取指定名称的最后一个版本来使用
        2,表单的模板在指定地址时,是按照制定好的规则,比如开头的'/'代表应用
           程序的路径。可以使用打开一个窗口选择某个文件的效果。
    2,表单实例
        1,表单实体要能存储所有类型表单中的业务信息,可以使用一个Map属性来存
           放,其key是String型,value是Serializable类型,这样就可以存储各种
           表单业务数据了(String/Date/Number等)
        2,表单标题格式:${表单名称}_${申请人姓名}_${申请日期}。
           如:"请假单_张三_2009-07-13"
        3,在与Jbpm的实体关联时,采用只保存他的id的方式,因为Jbpm的实体的映
           射文件我们不能修改。
        4,FlowForm的主键类型使用 long 型,因为他要做为流程变量保存
   
    使用 loginName(登录名)做为actorId
   

【上篇】
【下篇】

抱歉!评论已关闭.