Hybris 参考编辑器 - 使用目录版本过滤

Posted

技术标签:

【中文标题】Hybris 参考编辑器 - 使用目录版本过滤【英文标题】:Hybris reference editor - filter using catalog version 【发布时间】:2021-03-09 16:33:51 【问题描述】:

在我的 Hybris 设置中,我有一个自定义类型,其中一个字段是产品集合。在该类型的后台屏幕中,我有一个多参考编辑器来选择集合的相关产品。现在,我想将产品限制为仅在线目录(即不显示暂存产品目录中的产品)。相关的documentation page表示可以使用这个语法:

<editorArea:attribute qualifier="products">
    <editorArea:editor-parameter>
        <editorArea:name>referenceSearchCondition_catalogVersion</editorArea:name>
        <editorArea:value>parentObject.catalogVersion</editorArea:value>
    </editorArea:editor-parameter>
</editorArea:attribute>

然而,就我而言,自定义类型没有catalogVersion 属性,所以我真的很想这样做:

<editorArea:attribute qualifier="products">
    <editorArea:editor-parameter>
        <editorArea:name>referenceSearchCondition_catalogVersion</editorArea:name>
        <editorArea:value>Online</editorArea:value>
    </editorArea:editor-parameter>
</editorArea:attribute>

这不起作用(自然),因为parentObject.catalogVersion 是PK。在我的测试中,如果我指定实际的目录版本 PK 而不是 Online,我会得到我需要的结果,但显然,硬编码 PK 不是一种选择。那么,如何使用referenceSearchCondition 与我的自定义类型中的字段引用的目录版本字段进行比较?

【问题讨论】:

【参考方案1】:

查看文档和 SAP 提供的加速器代码后,我现在想到的唯一解决方案/解决方法(不是很理想)正在执行以下操作:

    创建一个动态属性,用于检索父目录上 Online 的 PK(例如:将其命名为 catalogVersionOnlinePK)。

    那么就可以直接访问PK值了:

     <editorArea:attribute qualifier="products">
        <editorArea:editor-parameter>
            <editorArea:name>referenceSearchCondition_catalogVersion</editorArea:name>
            <editorArea:value>parentObject.catalogVersionOnlinePK</editorArea:value>
        </editorArea:editor-parameter>
    </editorArea:attribute>
    

【讨论】:

【参考方案2】:

不确定它是否会 OTTB,但试试这个

<editorArea:attribute qualifier="products">
   <editorArea:editor-parameter>
       <editorArea:name>referenceSearchCondition_catalogVersion.version</editorArea:name>
       <editorArea:value>Online</editorArea:value>
   </editorArea:editor-parameter>
</editorArea:attribute>

【讨论】:

【参考方案3】:

我有几乎相同的要求并以这种方式解决了它:

<wz:editor-parameter>                                
    <wz:name>referenceSearchCondition_catalogVersion_in</wz:name>
    <wz:value>@customCatalogVersionService.getOnlineCatalogVersions()</wz:value>
</wz:editor-parameter>

此外,我还需要通过将其添加到相应的*backoffice-spring.xml 来使customCatalogVersionService 可用:

<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:cng="http://www.hybris.com/cockpitng/spring"
       xmlns="http://www.springframework.org/schema/beans"

       xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.hybris.com/cockpitng/spring
            http://www.hybris.com/cockpitng/spring/cng-spring.xsd">

    ...

    <cng:list-extender bean="fixedBeanResolver" property="availableBeanNames">
        <cng:add value-type="java.lang.String">
            <value>customCatalogVersionService</value>
        </cng:add>
    </cng:list-extender>

【讨论】:

以上是关于Hybris 参考编辑器 - 使用目录版本过滤的主要内容,如果未能解决你的问题,请参考以下文章

hybris 智能编辑错误

如何更改 Hybris 服务器的端口

如何自定义 pcm 后台以过滤 Hybris 中的超类别搜索结果

Kindeditor 编辑代码过滤

无法在 Hybris-1811 smartedit 中为导航管理中的条目创建链接组件

DevExpress XtraTreeList怎样隐藏过滤编辑面板