最近群里一直在讨论微软WF的相关知识,今天也借此机会谈下自己最近关于工作流相关的开发工作。
首先,还是说下自己最后使用WF时的心情,它并非是一个产品来作为开发使用,而只是一个工作流软件的基础框架,想学习WF,我想最好先了解工作流以及相关知识,了解工作流到底是什么,它都包含哪些概念,一般性的东西。比如说,流程定义,流程版本,流程节点定义,流程实例,节点实例,以及流程与业务之间的关系等,带着这些问题去学习,我感觉应该会更好一些,单纯的去看WF真的很头疼,看完一本书也不知道它到底是个什么玩意,它到底怎么用。
我们开发项目是通过公司的开发平台来实现,功能方面,也可以说工作流系统应该具有的功能来说,主要是自定义表单、自定义流程,以及贯穿始终的权限,关于表单和流程今天不想多说,主要是想说权限,这个当时毕业作品所实现的东西,现在却令自己整天头疼。
最近跟踪的项目已经是断断续续开发几年的,期间一直不断的维护,不断的变更,对于一个企业管理系统来说,权限本身就是一块重点,权限管理的好坏,关系到了系统是否可控,对于一些模块,变化最大的不是业务,而是其中的权限,可谓是千变万化。
说到系统权限,可以说分为三类,一是菜单、模块级别的权限,说明某个角色具有哪些菜单权限,或不具有哪些菜单权限。此类权限相对而言好理解,也好实现,但是维护起来还是相当的麻烦。二是记录权限,也就是根据一定的规则对数据列表进行筛选,只显示用户能够查看的部分记录,当然它的规则多样,可以按部门、按具体人、按项目的动态角色信息,以及自定义等,其中对于数据的字段,也应该是可控的,在可访问的角色范围内对这些角色进行字段授权,到底这个角色能够查看哪些字段,不能够查看哪些字段等。三是原子权限,主要是涉及到表单中,可以说是控制控件的权限,按钮,文本框等的可访问性。
上面说到这些是我们系统中实现的权限控制,单独来说它并非那么复杂,但实际项目应用中,部门中的角色以及人员是不断变化的,而每个列表或菜单的权限配置都尽不相同,再加上项目开发中可能并没有考虑周全,最后,时间让它变的越来越不可控。最后这经过N手的项目到了自己手中,有时候自己想整理都无从下手。
工作流程中,一般都是一个表单在流程各节点中流转,所以它的权限一般来说是通过节点授权。
工作流,并非等于审批流,如果是涉及到了大量的业务办理,就要求工作流要与业务有非常方便的交互,一般来说都是数据交互,进行处理业务逻辑,这也就要有很强的扩展性。
好久没写东西,搞的挺乱,到此为止,有时间再写。