0

我有一个 SAP Hybris backoffice-config.xml 的问题,我创建了一个名为 LockerOpenEvent 的新实体,它有四个属性,我添加了一个列表视图、高级搜索和编辑器区域,现在我的问题是编辑器区域。问题是另一个实体(Locker)的两个字段没有显示在编辑器区域中,但相同的字段在列表视图中可见,这是什么问题?我将错误发布到日志和感兴趣的代码标签中:

打开新实体时的错误日志(但在列表视图中出现两列):

 WARN  [hybrisHTTP25] [DataType] Qualifier [Locker] not found. Case insenitive resolution have found matching qualifier [locker]

打开编辑器区域时出现可视化问题的错误日志:

ERROR [hybrisHTTP36] [DefaultEditorAreaSectionRenderer] Property Locker.code was not found for type LockerOpenEvent

myExtension backoffice-config.xml

<context type="LockerOpenEvent">
    <context merge-by="type" component="listview" >
        <list-view:list-view
                xmlns:list-view="http://www.hybris.com/cockpitng/component/listView"
                refresh-after-object-creation="true">
            <list-view:column qualifier="Locker.code" width="200px" />
            <list-view:column qualifier="Locker.name" width="200px" />
            <list-view:column qualifier="timestamp" width="200px" />
            <list-view:column qualifier="user" width="200px" />
            <list-view:column qualifier="drawerCode" width="200px"  />
        </list-view:list-view>
    </context>

<context merge-by="type"  component="editor-area" parent="GenericItem">
        <editorArea:editorArea xmlns:editorArea="http://www.hybris.com/cockpitng/component/editorArea">
            <editorArea:tab name="hmc.tab.general" >
                <editorArea:section name="" >
                    <editorArea:attribute qualifier="user"/>
                    <editorArea:attribute qualifier="Locker.code"   />
                    <editorArea:attribute qualifier="Locker.name"  />
                    <editorArea:attribute qualifier="drawerCode" />
                    <editorArea:attribute qualifier="lockerDrawerOpeningEnum" editor="com.hybris.cockpitng.editor.nonoptionalenum" />
                </editorArea:section>
            </editorArea:tab>
        </editorArea:editorArea>
    </context>
</context>

非常感谢。

4

1 回答 1

0

您在列表视图部分收到的警告是因为该属性是小写的。Commerce 对小写版本进行后备搜索,因此您会在列表页面中获得结果。要消除此警告,您需要用小写字母编写属性。

<list-view:column qualifier="locker.code" width="200px" />
<list-view:column qualifier="locker.name" width="200px" />

对于编辑区,情况就不同了。Commerce 不支持开箱即用的嵌套。您需要添加

<editorArea:attribute qualifier="locker" />

而不是Locker.codeandLocker.name 在后台,这将向您显示储物柜对象。然后,用户可以导航到储物柜对象并在那里执行他的更改。(您的编辑器区域配置中也缺少该类型,不确定这是否是故意的)

如果您真的想在 LockerOpenEvent 上显示/编辑属性,则需要创建一个动态属性,并编写代码以便 getter 和 setter 操作链接的 Locker 对象

于 2021-12-29T23:32:59.503 回答