{一}业务需求:
实现EAS二次开发单据满足如下要求:制单人只能查看自己做的单据(说明一下:EAS的单据默认都会有创建人、最后修改人等字段)、只有主管能进行审批。
需要说明:以下的配置是针对EAS7.5版本,EAS6.0版本以前的可能有些差异。
在EAS中可通过[特殊数据权限]进行控制。
{二}权限扫盲
在说如何配置特殊数据权限之前,先总结一下EAS中常涉及的权限内容(以下内容有参考某官方文档,单不涉及版权问题滴):
1、EAS中支持的权限大到整个功能、细到某条数据、更细的可控制到字段级别。
功能权限
数据权限:一般数据权限、特殊数据权限(拥有者权限、主管权限、离散权限)
字段权限
2、小名词,大作用
用户:是EAS权限的基础,系统类型的用户不需授权(需要区分于职员,一个职员可有多个用户)
角色:给用户指定某个角色,相当于给用户分配了一组权限,所以:角色就是一组权限的集合。
权限:权限数据是通过权限文件在生成子系统树后生成,当然用户是否拥有某些权限还要单独分配。
组织:支持分级,主业务组织类型{NONE、Admin、Company、Sale、Purchase、Storage}
3、权限文件、权限项
权限的数据来自权限文件,需要通过BOS开发工具配置,权限文件包括诸多个权限项、是否支持数据权限。
权限项:orgRelation(主业务组织类型)、enableDataPermission(是否启用数据权限)
以上内容个人整理,作为笔记用的。
{三}特殊数据权限的配置。
{1}权限文件
需要注意的地方主要有:
*orgRelation:不能为空或NONE(这个自己测试过,为空或NONE时不能生效,这个就不要自己折腾一下了,生成子系统树太慢了)
*enableDataPermission=true,
*设置实体对象、
*引用对象列表加入序时簿Query、实体(记得实体及关联方法要加上,查看权限需要将query要加上)
{2}配置文件修改:
找到serverprofilesserver1configEAS_PermissionConfiguration.xml
在<special-data-permissions></special-data-permissions>添加如下完整节点
<special-data-permission>
<name>com.kingdee.eas.shine.travel.app.TravelReqBill</name>
<type>25BF11F2</type>
</special-data-permission>
{3}将权限文件、配置文件部署到服务器,生成子系统树。
{四}权限配置
用administrator登录EAS客户端,进入权限管理--特殊数据权限。找到自己的刚才配置的单据,启用权限。
举例说明:
启用权限后如果不生效,可将权限数据删除重新生成,执行如下脚本:
delete T_PM_SpecialDataPerm
delete T_PM_SpecialDataPermEntry
{五}扩展及编程接口
以下内容待整理:
1、特殊数据权限单据默认支持的字段有限,如何扩展?
2、权限控制的有关接口及实现