• 基于WF设计业务流程平台权限体系


    基于WF设计业务流程平台-权限体系

     

    在业务流程平台中,权限体系是我最看重的,

     

    业务流程平台的权限设计与门户类平台的设计完全不同,业务流程平台的权限设计最忌讳做成太监当政模式(也就是系统管理员最大,管理一且)

     

    现在的一些业务流程平台的权限使用[组],[角色]这种方式,早期我做系统也是用这种方式,对这种方式我不加评价

     

    现在我设计的权限体系严格的按企业组织织构,人事关系,业务关系创建.

    另外三权分立思想,扁平管理思想对我的应响很大,我的很多理论都来自这些思想

     

    还有,在业务数据的共享,隔离,透明度上,不同的企业文化有不同的要求

     

    比如东方与西方的上下级关系是:

     

    西方:从属的从属不必然从属

    东方:下级的下级一定是下级

     

    其实光是西方也有很多不同,比如德国,美国就有很大区别

    即使在中国家,不同行业或不同体制的同一行业都有很大区别,在中国有些单位的员工管理竟然还在实行奴隶制,帮会制

     

    当然,本文的目的不是讨论管理体制的好坏,以上我表述我只是想说,一个业务流程平台如果不能与企业的管理文化相对应,那么这个平台没有存在的意义.

     

    举个例子,比如一个请假流程,在有些单位无论怎样设计都是无法让人满意,因为这些单位的很多岗位很难看到有人在岗,即使在岗也是在玩游戏

    再举个例子,比如一个请假流程,在有些单位是不需要的,因为这种单位的员工在被zhua进单位后,只有死了以后才能出来.

     

    所以系统要适应企业文化,所谓企业文化就是管理文化,所谓管理文化就是权限体系(当然企业文化中还有一部分是思想上的奴化/煽情教育,这部分是我们系统边界以外的,就不讨论了)

     

     

    下面我用一个例子来简单介绍一个权限体系如何与流程结合:

    现在的工作流理论有两个主要来源:

    一个是WfMC,

    一个是Petri网

    我对WfMC不加评论,Petri网中没的关于权限的理论,当然这不是Petri网的错,因为Petri网本身就不是为业务流程设计的,只是后来的学者将Petri网的理论用到了业务流程上.

    这些年也看了不少工作流的理论资料,并没发现对权限体系有比效深层次的介绍.不过没有也好,可以自已发挥,下面看一个例子:

     

    还是请假:

     

    如果我的需求经理坐飞机去客户哪里,花几千元钱请客户吃饭,再坐飞机回来给我带我这么一张图,我会杀了他…..

    我对这张图不满意不是因为这张图流程,活动,状态都不是,而是因为没有权限信息.

    我需要这样一张图:

     

     

    说明:

    1.这张图的连线我没画箭头,用什么样的箭头表示什么样的流转方式,我会在后面的文章中会具体说明,

    2.有些职能与状态的交差区域的附加信息,我也会在后面的文章中会具体说明

    3.这张图没的开始与结束结点,我也会在后面的文章中会具体说明

     

    我还需要在不同的阶段,与该流程有利害关系的涉众都有什么权力,通常这部份信息我会让需求经理在基本路径定版后,做二次需求时提交

     

     

    根据上面这张图我们可以得到如下信息:

    1.[X类请假流程],除了[部门领导]企业中的所有人都可以启动

    2.当[X类请假流程]的某个实例启动后,只有该实例[启动人(申请)]所在部门的领导才具有该实例的审批权

    3.当[审批]完成后,只有该实例[启动人(申请)]才能查看结果

     

    注意:

    上图不能画成这样,这两种画法的语意区别我会在后面的文章中会具体说明

     

     

    现在我们为上面的业务图建立工作流模型

    先看员工身份信息部分

    不管数据库中的表结构如何建,我们至少需要得到如下信息

    [身份表]

    用户编号

    所在部门

    所属职能

    lzm

    甲部门

    部门领导

    wxd

    甲部门

    A职能

    lmm

    甲部门

    A职能

    wxwinter

    乙部门

    A职能

    wdd

    乙部门

    部门领导

     

     

     

    再看[X类请假流程]启动权限

    不管数据库中的表结构如何建,我们至少需要得到如下信息

     

    [启动权限表]

    流程模板

    可启动流程的部门

    可启动流程的职能

    权限

    X类请假流程

    所有

    所有

    允许

    X类请假流程

    所有

    部门领导

    不允许

     

    预定义的规则是:

    1.[权限]否定高于肯定

    2.其他的组合与扩展会在后面的文章中会具体说明

     

    上表中的两条数据的逻辑运算得到:[X类请假流程],除了[部门领导]企业中的所有人都可以启动

     

     

    下面是工作流模板设计

     

     

    最后是业务状态表

    不管数据库中的表结构如何建,我们至少需要得到如下信息

    [业务状态表]

    流程编号

    结点编号

    流程办理部门

    流程办理职能

    流程办理人

    状态

          

     

    预定义的规则是:

    1.[流程办理人]不为[空]时,该流程属于[流程办理人]

    2. [流程办理部门][流程办理职能]为[空],[流程办理部门][与流程办理职能]者不为[空]时,该流程属于[流程办理部门][与流程办理职能]身份的所有人

    3.其他的组合与扩展会在后面的文章中会具体说明

     

     

     

    最后我描述一下流程运行的状态

    我们以[wxd]要请假为例说明:

     

    1.[wxd]登录,跟据[身份表]得到[甲部门][A职能]

     

    2.[wxd]加载可启动的流程列表,以[A职能]得到[X类请假流程]启动权限

     

    3.[wxd]填写[请假单],以[wxd][甲部门][A职能]的身份启动[X类请假流程]

     

    4.[X类请假流程]启动后,[审请休假]得到[wxd][甲部门][A职能],并自动进入[审批]

     

    5.[审批]是一个等待结点,激活后将通过绑定得到[审请休假]的[甲部门],在进入等待前将[甲部门],[部门领导],[等待]写入[业务状态表]

    流程编号

    结点编号

    流程办理部门

    流程办理职能

    流程办理人

    状态

    000001

    1

    甲部门

    部门领导

     

    等待

     

    6.[审批]进入等待

     

    7.[lzm]登录,跟据[身份表]得到[甲部门][部门领导]

     

    8.[lzm]加载任务列表,跟据[业务状态表]得到[000001]流程的[1]结点办理权限

     

    9.[lzm]填写[审批单],提交流程,触发[审批]

     

    10.[审批]被触发,在关闭前,将[完成]写入[业务状态表],并自动进入[通知结果]

    流程编号

    结点编号

    流程办理部门

    流程办理职能

    流程办理人

    状态

    000001

    1

    甲部门

    部门领导

     

    完成

     

    11..[通知结果]是一个等待结点,激活后将通过绑定得到[审请休假]的[wxd],在进入等待前将[wxd],[等待]写入[业务状态表]

    流程编号

    结点编号

    流程办理部门

    流程办理职能

    流程办理人

    状态

    000001

    1

    甲部门

    部门领导

     

    完成

    000001

    2

      

    wxd

    等待

     

    12.[通知结果]进入等待

     

    13.[wxd]登录,跟据[身份表]得到[甲部门][A职能]

     

    14.[wxd]加载任务列表,跟据[业务状态表]得到[000001]流程的[2]结点办理权限

     

    15.[wxd]提交流程,触发[通知结果]

     

    16.[通知结果]被触发,在关闭前,将[完成]写入[业务状态表]

    流程编号

    结点编号

    流程办理部门

    流程办理职能

    流程办理人

    状态

    000001

    1

    甲部门

    部门领导

     

    完成

    000001

    2

      

    wxd

    完成

     

     

     

    总结

     

    本文只是权限体系的一篇概念性文章,并没涉及到

    • 任务接件,
    • 任务分配,
    • 任务授权,
    • 任务取回,
    • 任务退回,
    • 子部门,
    • 临时项目组,
    • 一人多部门,
    • 一人多职能,
    • 流程的制定权,
    • 流程的办理权,
    • 流程的监督权,
    • 流程的知情权

    等基本权限模型,这些内容我会在后面的文章中具体描述.

     

     

     

  • 相关阅读:
    前端H5
    nginx的location的匹配规则
    非旺玖原装的PL2303,请联系您的供货商
    Arduino 怎样添加第三方拓展
    Arduino的shiftOut函数作用
    arduino 的analogRead() 和analogWrite()
    composer安装TP的时候:错误提示:zsh: no matches found: 5.1.*
    Bootstrap3 模态框点击无效
    人人商城支付成功后在哪修改订单状态
    人人商城怎样判断订单是否支付
  • 原文地址:https://www.cnblogs.com/foundation/p/1330410.html
Copyright © 2020-2023  润新知