点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我创建了一个表示布尔类型的动态属性。 我现在正在尝试在该属性上创建个性化规则(SearchRestriction)。 但是,SearchRestriction的创建失败-这是有道理的,因为没有实际的数据库字段。
原因:de.hybris.platform.jalo.flexiblesearch.FlexibleSearchException:无法在QBPVariantProduct类型中搜索未知字段'TableField(name ='availableToCurrentDistributionChannel',langPK ='null',type = QBPVariantProduct)' 禁用检查,类型的infoMap = TypeInfoMap = 8796128870482
该错误提到"除非您禁用检查"。 "除非您禁用检查"是什么意思? 它是否指我可以使此SearchRestriction工作的某些事情? 我要实现的目标是不可能的吗?
谢谢
嗨,迈克,
搜索限制附加到您的搜索查询中。 因此,搜索限制所使用的所有属性都必须映射到实际的表列。 "禁用检查"是指在未知字段上覆盖使检查失败的方法,并在对"搜索"方法的调用中进行设置。 禁用检查将不允许您的查询运行,因为没有代表动态属性的列,只会导致数据库错误。
-Mark
嗨,那么在这种情况下我们通常如何禁用检查。 除非您禁用检查,否则我在类型IPAddressAddress内的addressPOS字段"搜索未知字段'TableField(name ='addressPOS',langPK ='null',type = EmailAddressRoot)'"时遇到错误。 当我在目标元素中使ordered =" true"时,将自动生成此字段。 谢谢!
谢谢大家,这是我所怀疑的。
仅供参考,我可以通过使用属性而不是使用动态属性来解决问题,而是将属性添加到用户会话中。 我可以在搜索限制中访问会话。 看起来像这样:
SearchRestrictions(个性化规则)已添加到选择目标项目类型的所有flexibleSearch查询的 WHERE 部分。
因此SearchRestrictions基于flexibleSearch,它已为您的数据库服务器翻译为sql。 由于sql仅支持对数据库的选择,因此无法在搜索中使用动态属性。 当然,动态属性未存储在数据库中。
因此,您的问题不是对SearchRestrictions的动态属性的支持,而是对FlexibleSearch的支持。
一周热门 更多>