审批的流程要可以由用户自定义,流程定义好后,在执行的过程中有可能会直接跳转到最后一个环节,以前没有做过这方面的,也看了一些关于工作流的资料,但是还是不够清楚,数据库都不知道怎么设计,哪位有示例的,请指点,哈哈

解决方案 »

  1.   

    要看你怎么去设计了,是通用的工作流引擎或者是和业务绑定的.
      可以去参照下轻量级工作流引擎的标准. 最终还是通过参数去扭转流程.
     
     定义操作,步骤,步骤参数,变迁规则等. Sql+windows Service+Page 实现
      

  2.   

    哪位有示例的,或者有数据库设计的,共享一下。
    [email protected]
    谢谢了
      

  3.   

    数据库方面需要那么几张表
    表一:流程步骤表(客户制定)包括以下字段,有其他需要可以追加
    id    name    index    power
    0     流程1    0       0
    1     流程2    1       0
    2     流程3    2       1
    3     流程4    3       0
    4     流程5    4       0
    id是代表此流程id  name是流程名称   index是表示处理流程的顺序,按照此顺序进行流程处理,正常情况下没有跳转,另外根据你的情况可以在某些情况下直接结束这个流程,就是用power字段0部可以,1可以结束
    其实中途结束流程,可以和用户权限组来进行判断,就不需要这个power字段在你的job表中就会有一个workstate字段对应这个流程表,察看是在哪个处理流程了
    个人想法
    对于流程的控制,如果存在很多特殊情况下,先不考虑特殊情况,先把正常情况流程走通,然后增加控制字段或者表来进行特殊情况判断,这样可能效率低,但是好理解!一家之言,高手来点评指正
      

  4.   

    谢谢 hyena041(陷入自己的思维中,找不到自己了) 兄,
    我现在建的表:
    sys_flow_template:
    tempid    模板ID
    tempname  模板名sys_template_node:
    tempid    模板ID
    nodeid    节点ID
    nodename  节点名下面可能要建个 业务类型对应模板ID的表。但是我现在还是不能够融会贯通起来,哪位高手能详细的讲解一下吗,如果能给出数据库结构那就更好了
      

  5.   

    我的msn: [email protected]
    不过我要晚上比较晚才会上,公司不能用
    呵呵你不急的话,晚上联系我
      

  6.   

    其实审批数据库只要加个状态栏就可以了STATUS = 0 ,1,2,......代表不同的状态不就可以了吗?至少我们公司订单处理就是这样的
      

  7.   

    这个比较复杂.OA中有很详细的解决方案.楼主可以参考OA的处理方法
      

  8.   

    TO:nikita007(一直很安静) 
    你的那中做法我知道,但是我这里的情况比较特殊,审批的流程是由用户自己来定义的
      

  9.   

    流程id  process_id     int
    流程名  process_name char
    节点id  node int
    节点名  node_name char
    用户名user_name char
    权限  user_priority int
    唯一id sub_process_id int
    这样可以对应可以配置各类流程,并且在流程中在配置环节,一级二级审核什么的。
      

  10.   

    c_approve_exec_flow 
    ID √ √ bigint 8 19 0  实际审批项目流程,主键标识值 
    LinkExecItem   bigint 8 19 0 √ 所属实际审批项目 
    LinkFlow   bigint 8 19 0 √ 所属审批流程 
    FlowName   varchar 64 64 0 √ 流程名称 
    FlowStep   bigint 8 19 0 √ 步骤顺序 
    Content   varchar 512 512 0 √ 审批内容 
    IUser   bigint 8 19 0 √ 审批用户标识 
    SUser   varchar 64 64 0 √ 审批用户名称 
    TimeApprove   datetime 8 23 3 √ 审批时间 
    c_approve_exec_item 
    ID √ √ bigint 8 19 0  实际审批项目,主键标识符, 
    LinkItem   bigint 8 19 0  所属审批项目 
    Title   varchar 255 255 0 √ 标题 
    TableName   varchar 64 64 0 √ 此审批项目所关联的表 
    PrimaryValue   varchar 64 64 0 √ 审批表主键值 
    ApproveState   int 4 10 0 √ 审批状态(开始/正在进行/完成) 
    TimeStart   datetime 8 23 3 √ 开始时间 
    TimeEnd   datetime 8 23 3 √ 结束时间 
    FileName   varchar 64 64 0 √ 附件文件名,当使用附件时,表名数据字段失效., 
    Annex   image 16 2147483647 0 √ 审批的附件 
    c_approve_exec_log 
    ID √ √ bigint 8 19 0  审批流程执行日志,主键标识符 
    LinkExecItem   bigint 8 19 0 √ 所属当前执行审批项目关联 
    IUser   bigint 8 19 0 √ 审批人标识符 
    SUser   varchar 64 64 0 √ 审批人 
    TimeExec   datetime 8 23 3 √ 执行时间 
    LogContent   varchar 255 255 0 √ 日志信息 
    c_approve_flow 
    ID √ √ bigint 8 19 0  审批项目流程,主键标识符, 
    LinkItem   bigint 8 19 0  与审批项目关联 
    FlowName   varchar 255 255 0 √ 审批流程名称 
    PowerValue   bigint 8 19 0 √ 审批此流程所需的权限值 
    OrderID   bigint 8 19 0 √ 流程顺序号 
    c_approve_item 
    ID √ √ bigint 8 19 0  审批项目,主键标识符 
    ItemName   varchar 255 255 0 √ 审批项目名称 
    Term   int 4 10 0 √ 审批期限(天) 
    UrlName   varchar 255 255 0 √ 显示审批内容地址 
    TableName   varchar 64 64 0 √ 待审批表名称 
    IsDefault   bit 1 1 0 √ 是否该表默认选项 
    c_approve_power 
    ID  √ bigint 8 19 0  审批权限表 唯一标识号 
    PowerName   varchar 64 64 0 √ 权限名称 
    Explain   varchar 255 255 0 √ 权限说明 
    OrderID   bigint 8 19 0 √ 权限排列顺序 
      

  11.   

    审批流设计容易,自定义的较难.
    --------------------
    www.notsoft.cn