数据权限应用方案张红英zhanghyy@yonyou.com1、引言实际业务中,客户需对业务单据上的某个字段需要控制参照的档案范围,比如销售员在录入销售订单时只能参照到自己有权限的客户档案,系统如何实现呢?2、应用场景及问题描述实际业务中,客户需对业务单据上的某个字段需要控制参照的档案范围,比如销售员在录入销售订单时只能参照到自己有权限的客户档案,系统如何实现呢?3、解决方案数据权限可解决企业因业务分工的需要,限定角色或用户只针对某些范围的数据具有权限。1)在【数据权限】节点,可对用户或角色设置数据权限2)权限管理维度为需要进行数据权限控制的档案,本案例中需对客户档案进行数据权限控制,所以权限管理维度为客户3)受控对象为需要控制的业务单据及字段,本案例中需对销售订单上的客户字段进行控制,所以受控对象选择销售订单客户ID字段4)权限范围为当前用户可使用的档案范围,可按照一定规则设置权限范围,也可以设置离散的权限范围,比如下图对用户分配苗氏集团和王氏集团两个客户的权限5)用户在录入和查询销售订单时只能看到分配的苗氏集团和王氏集团两个客户4、注意事项1)数据权限不设置,代表全部有权即数据权限不设置或未启用,指的是不受权限控制,默认全部有权。比如未设置数据权限时,那么销售订单中客户档案的参照范围是:该销售组织下所有可使用组织的档案集合。2)除数据权限,部分档案还受主组织隔离即除数据权限,带组织属性的档案(客户、物料等)天然受主组织权限维度隔离。如客户档案参照、部门档案的参照、物料档案等(支持分级管控的档案)需要受业务单据的主组织维度隔离。3)分配主组织与数据权限组织维度区分即授权节点中点击“分配组织”,指的是单据上的主组织。如销售订单中的“销售组织”字段。而数据权限中,选中权限管理维度“组织”,指的是单据上的非主组织字段。如销售订单中的库存组织、开票组织等4)数据权限中存在部分行有权限的数据,按整单原则显示详情即当管理维度(如物料)在单据子表中有多行数据,若用户子表中某一行(物料)没有数据权限。在单据列表中,此类订单可以被整单查询出来;进入单据卡片详情界面时,也是按整单显示全部行数据,包括无权行;仅在单据列表,选则按表头+明细显示时,只显示有权限的数据行,无权行未显示。5)拉单或推单业务中,仅对有权限的数据行可以进行转单业务处理即单据在拉单(推单)时,子表中有权限的数据行才能拉或推下游单据。(即转/推单的是有权限的数据行),如销售订单-销售出库的转单界面中,仅对有权限的数据行可以操作。6)管理维度相同时,权限范围取并集即用户关联一个角色或者多个角色时,若管理维度+受控对象+受控操作全一致。仅权限范围不同,定义了多条数据规则,用户的数据权限结果取并集(或OR)。若仅管理维度相同,受控对象不同,则按受控对象分别控制。7)管理维度不相同时,权限范围取交集即用户关联一个角色或多个角色,不同管理维度(客户/物料)订单查询结果集,按多管理维度间取交集(且and)。订单中客户/物料的参照,各自独立控制。