Hybris:如何将组件限制为多个Item Type?
解决方案
方案1:用restrictToTypes多值配置(推荐)
Hybris Backoffice部分编辑器支持复数形式的restrictToTypes参数,能直接传入多个类型代码,用逗号分隔就行。修改配置如下:
<wz:property qualifier="userGroup"> <wz:editor-parameter> <wz:name>restrictToTypes</wz:name> <wz:value>B2BCustomer,B2BSupplier</wz:value> </wz:editor-parameter> </wz:property>
注意:不同Hybris版本对这个参数的支持可能有区别,得先确认你的版本兼容。
方案2:自定义过滤查询(全版本兼容)
如果restrictToTypes不管用,就用filterQuery参数,通过Flexible Search语句精准过滤目标类型:
<wz:property qualifier="userGroup"> <wz:editor-parameter> <wz:name>filterQuery</wz:name> <wz:value> SELECT {pk} FROM {B2BUnit} WHERE {itemtype} IN ('B2BCustomer','B2BSupplier') </wz:value> </wz:editor-parameter> </wz:property>
这种方式直接用查询限定可选范围,兼容性拉满,所有支持filterQuery的编辑器都能用。
方案3:扩展编辑器逻辑(复杂场景用)
要是上面两种配置都满足不了需求,就自定义一个编辑器后置处理器,从代码层面过滤掉Partners类型:
- 写个类实现
PostFetchOperation接口 - 在
perform方法里筛选出B2BCustomer和B2BSupplier类型的实例 - 最后在Backoffice配置里指定这个处理器:
<wz:property qualifier="userGroup"> <wz:editor-parameter> <wz:name>postFetchOperation</wz:name> <wz:value>customB2BUnitFilterOperation</wz:value> </wz:editor-parameter> </wz:property>
这种方式适合需要额外业务逻辑过滤的场景,就是开发成本高点。
内容的提问来源于stack exchange,提问作者Kajal T
相关产品推荐
相关产品推荐

