​金蝶s-HR Cloud关于视图配置domain指令对列表数据过滤说明原创
金蝶云社区-杨天罡
杨天罡
12人赞赏了该文章 514次浏览 未经作者许可,禁止转载编辑于2024年12月16日 10:07:40
summary-icon摘要由AI智能服务提供

金蝶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/下


例子:

image.png


关于注解方式目前存在缺陷:就是如果OSF进行重启后,注解方式加载的配置都会消失



特别说明:

部分版本使用注解方式,发现无法加载到对应的domain filter


比如:HROFilter


image.png


目前标准产品进行陆续更新,支持通过配置文件方式支持,比如:8612版本,可以获取附件私包进行配置文件方式支持,后续各版本会陆续对此方式进行支持

二开需要增加二开的domain filter类的配置

配置文件路径: /eas/server/properties/shr/FilterConvert.properties,如果环境无此配置文件,需手工新增

配置内容格式:

image.png

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,从文章附件中获取,并按说明进行部署

图标赞 12
12人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!