金蝶s-HR Cloud在列表过滤中增加视图配置domain指令,通过CDATA配置数组,支持&表示AND,|表示OR。预置多种domainFilter,并给出配置示例。若需二开filter,需实现特定接口和注解,但注解方式存在重启后失效的问题,建议使用配置文件方式,并给出各版本的补丁和私包部署说明。
金蝶s-HR Cloud针对列表过滤,增加视图配置domain指令,格式大致如下:
<domain> <![CDATA[ [ ('&', ('adminOrgUnit.id','=','$UserAdminRangeFilter'), (...) ) ] ]]> </domain>
具体说明:
domain指令通过包装CDATA来完成配置
CDATA里面包含数组
数组用一对()包起来,第一位值目前只支持2中值配置:&和|,&表示后面的过滤条件在where条件中表示并且(AND),|表示后面的过滤条件在where条件中表示或者(OR)
后面是每一个过滤条件,使用()包起来,多个用逗号连接
每一个过滤里面格式是:列的属性,比较符,比较的值
目前产品预置了一些固定的domainFilter供使用
"HROFilter"="com.kingdee.shr.base.syssetting.app.filter.HROFilter" //获取当前上下文HR业务组织ID "CUIFilter"="com.kingdee.shr.base.syssetting.app.filter.CUIFilter"//获取当前上下文CU管理单元ID "UserAdminRangeFilter"="com.kingdee.shr.base.syssetting.app.filter.UserAdminRangeFilter" //当前用户的行政组织范围 "UserHRORangeFilter"="com.kingdee.shr.base.syssetting.app.filter.UserHRORangeFilter" //当前用户的HR业务组织范围 "HROAndUserRangeFilter"="com.kingdee.shr.base.syssetting.app.filter.HROAndUserRangeFilter" //当前用户的HR业务组织和行政组织交集范围 "EmployeeHRAndAdminOrgRangeFilter"="com.kingdee.shr.base.syssetting.app.filter.EmployeeHRAndAdminOrgRangeFilter" //人事当前用户的HR业务组织和行政组织交集范围 "AllHRAndAdminOrgRangeFilter"="com.kingdee.shr.base.syssetting.app.filter.AllHRAndAdminOrgRangeFilter"//用户所有hr与行政组织交集 "EmpPosOrgRelaEFFDTFilter"="com.kingdee.shr.base.syssetting.app.filter.EmpPosOrgRelaEFFDTFilter" //人事生效日期过滤 "EmpPosOrgRelaLEFFDTFilter"="com.kingdee.shr.base.syssetting.app.filter.EmpPosOrgRelaLEFFDTFilter" //人事失效日期过滤 "PPEFFDTFilter"="com.kingdee.shr.base.syssetting.app.filter.PPEFFDTFilter"//人事生效日期过滤 "PPLEFFDTFilter"="com.kingdee.shr.base.syssetting.app.filter.PPLEFFDTFilter"//人事失效日期过滤 "PartTimeInfoFilter"="com.kingdee.shr.base.syssetting.app.filter.PartTimeInfoFilter"//时间过滤器 "PersonOrgNavigationFilter"="com.kingdee.shr.base.syssetting.app.filter.PersonOrgNavigationFilter"//组织人员导航filter "TreeLongNumberFilter"="com.kingdee.shr.base.syssetting.app.filter.TreeLongNumberFilter"// tree longNumber filter "EmpPageTreeFilter"="com.kingdee.shr.base.syssetting.app.filter.EmpPageTreeFilter"//人事树页面过滤 "CurrentPersonFilter"="com.kingdee.shr.base.syssetting.app.filter.CurrentPersonFilter" //当前用户对应职员过滤 "CurrentUserFilter"="com.kingdee.shr.base.syssetting.app.filter.CurrentUserFilter"//过滤当前用户所建单据 "SHRBasicItemFilter"="com.kingdee.shr.base.syssetting.app.filter.SHRBasicItemFilter"//基础资料表单F7过滤filter,主要用于处理配置的query "SHRBaseItemForFastFilter"="com.kingdee.shr.base.syssetting.app.filter.SHRBaseItemForFastFilter"//基础资料元数据F7过滤filter,主要用于去重 "ManagerOrgRangeFilter"="com.kingdee.shr.base.syssetting.app.filter.ManagerOrgRangeFilter" //经理人或者分管领导组织范围,不包含下级 "AtsSHRBasicItemFilter"="com.kingdee.shr.ats.web.filter.AtsSHRBasicItemFilter" //考勤基础资料过滤器 "AtsProBasicItemFilter"="com.kingdee.shr.ats.web.filter.AtsProBasicItemFilter" //考勤基础资料过滤器 "ManagerOrgRangeIncludeSubFilter"="com.kingdee.shr.base.syssetting.app.filter.ManagerOrgRangeIncludeSubFilter"//经理人或者分管领导组织范围,包含下级 "NotEqualsCurrentPersonFilter"="com.kingdee.shr.base.syssetting.app.filter.NotEqualsCurrentPersonFilter"//不等于当前用户 "NotEqualsCurrentLoginUserPersonIDFilter"="com.kingdee.shr.base.syssetting.app.filter.NotEqualsCurrentLoginUserPersonIDFilter"//不等于人员IDdomainFilter
一个完整参考例子:
<domain> <![CDATA[ [ ('&', ('adminOrgUnit.id','=','$UserAdminRangeFilter'), ('EFFDT','>=','$EmpPosOrgRelaEFFDTFilter'), ('LEFFDT','<','$EmpPosOrgRelaLEFFDTFilter'), ('pp.EFFDT','>=','$EmpPosOrgRelaEFFDTFilter'), ('pp.LEFFDT','<','$EmpPosOrgRelaLEFFDTFilter') ) ] ]]> </domain>
如果现有的filter,无法满足现有业务,需要进行二开filter
可以参考如下做法:
1、自行实现Filter,该Filter必须实现接口com.kingdee.shr.base.syssetting.app.filter.IHRFilter
2、Filter的包路径前缀,必须是com.kingdee.shr.xxx
3、实现类必须进行注解:@DomainFilterService(filterName="xxxxxxx")
4、二开的Filter需要部署到{安装目录}/eas/server/lib/addon/customer/lib/下
例子:
关于注解方式目前存在缺陷:就是如果OSF进行重启后,注解方式加载的配置都会消失
特别说明:
部分版本使用注解方式,发现无法加载到对应的domain filter
比如:HROFilter
目前标准产品进行陆续更新,支持通过配置文件方式支持,比如:8612版本,可以获取附件私包进行配置文件方式支持,后续各版本会陆续对此方式进行支持
二开需要增加二开的domain filter类的配置
配置文件路径: /eas/server/properties/shr/FilterConvert.properties,如果环境无此配置文件,需手工新增
配置内容格式:
s-HR 8.2SP2版本,待发补丁:PT178987
s-HR 8.5SP1版本, 待发补丁:PT178749
s-HR 8.6版本, 待发补丁:PT178988
s-HR 8.6SP1版本, 待发补丁:PT178760
s-HR 8611版本, 待发补丁:PT178583
s-HR 8612版本,待发补丁:PT178756
s-HR 8.8版本,待发补丁:PT178857
s-HR 8.8SP1版本,待发补丁:PT178581
s-HR 9.0版本,待发补丁:PT178856
如果补丁还未发布,请以私包方式先进行处理,目前建议不使用注解方式,如果已经使用注解方式,请转到配置文件方式
注解方式,如果重启OSF,会导致注解部分的Filter失效,就不起作用。
私包说明:
8.2,独立私包:【sHR8.2SP2后续出补丁】domainfilter支持配置文件方式.zip,从文章附件中获取,并按说明进行部署
8.5,独立私包:【sHR8.5SP1后续出补丁】domainfilter支持配置文件方式,从文章附件中获取,并按说明进行部署
s-HR8.6到s-HR8612版本,通用私包:【sHR8.6.1.2后续出补丁】domainfilter支持配置文件方式.zip,从文章附件中获取,并按说明进行部署
s-HR8.8到s-HR9.0版本,通用私包:【sHR9.0.0.0后续出补丁】domainfilter支持配置文件方式.zip,从文章附件中获取,并按说明进行部署
【sHR8.2SP2后续出补丁】domainfilter支持 …(233.24KB)
【sHR8.6.1.2后续出补丁】domainfilter支 …(233.99KB)
【sHR9.0.0.0后续出补丁】domainfilter支 …(233.97KB)
【sHR8.5SP1后续出补丁】domainfilter支持 …(233.33KB)
推荐阅读