【讨论】【工作流】由资源模式中的“权限分配”想到资源结构
最近正在向PE中加入资源模式的控制,在测试权限分配模式时,发现了资源结构的问题,在此和大家分享、讨论。
首先简单解释一下权限分配模式:即参与活动的人,由其权限决定。
比如:审批流程中的审批活动必须由经理来完成,其中经理是“权限”概念的一种。
这个模式本身不复杂,大部分工作流系统都支持,PE当然不能不支持...^_^.....
但是,如果连带思考资源的结构时,就会发现问题。
关键是,参与者和权限之前的关系并不是多对一这么简单的关系,不同企业定义他们之间的关系不同,一般来讲,至少是多对多的关系;
即某个参与者拥有多重权限,而每种权限可以分配给多个参与者。把这种关系映射到数据库模式中,大家都知道需要3个表来维护,比如:User,RoleOfUser,Role。
这样,RoleOfUser就成为了User和Role之间的连接者。既然RoleOfUser在数据库中实际存在的,那么它在流程资源中存在吗?这个问题很重要.
如果不存在,RoleOfUser就不在流程系统的控制中,这样Role和User之间的关系对于流程系统等于是没有;那么它就应该存在。
有了RoleOfUser这个资源,上面的这个模式就不那么简单了。试想,流程设计者想表达的是,只有经理级别的参与者才能审批,但是经理和参与者之间还有个中间人,即RoleOfUser。如此,流程设计者就必须把表达方式改为:只有RoleOfUser的Role是经理,同时RoleOfUser的User是某某时,才能审批。
虽然,通过这种方式的确可以实现权限分配模式;但从优雅和简洁的角度看,这个解决方案并不理想。如果哪位有更好的想法,请不吝赐教。