后台高级搜索-partOf属性出现问题

2020-08-27 05:44发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在尝试对CustomerModel的自定义嵌套对象启用高级搜索。

该属性在 items.xml 中定义为 partOf =" true"

 
     <属性>
         
             <修饰符read =" true" write =" true" search =" true"可选=" true" partof =" true"/>
             
         
     
  

backoffice-config.xml 文件包含以下配置:

 
     <高级搜索:高级搜索>
         <高级搜索:字段列表>
             
                 <高级搜索:编辑器参数>
                      referenceAdvancedSearchEnabled 
                      true 
                 
             
         
     
 
 

结果是该字段显示在"高级搜索"中,但显示为灰色且不可用:

如果我改为更改模型定义并设置 partOf =" false" ,则过滤器将在"高级搜索"部分变为活动状态并可用。 无论如何,我无法将其更改为false,因为我需要将其设置为true。

有人遇到过同样的问题吗? 可能是我在backoffice-config.xml

中缺少了一些东西

谢谢

安德里亚

(63.3 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在尝试对CustomerModel的自定义嵌套对象启用高级搜索。

该属性在 items.xml 中定义为 partOf =" true"

 
     <属性>
         
             <修饰符read =" true" write =" true" search =" true"可选=" true" partof =" true"/>
             
         
     
  

backoffice-config.xml 文件包含以下配置:

 
     <高级搜索:高级搜索>
         <高级搜索:字段列表>
             
                 <高级搜索:编辑器参数>
                      referenceAdvancedSearchEnabled 
                      true 
                 
             
         
     
 
 

结果是该字段显示在"高级搜索"中,但显示为灰色且不可用:

如果我改为更改模型定义并设置 partOf =" false" ,则过滤器将在"高级搜索"部分变为活动状态并可用。 无论如何,我无法将其更改为false,因为我需要将其设置为true。

有人遇到过同样的问题吗? 可能是我在backoffice-config.xml

中缺少了一些东西

谢谢

安德里亚

(63.3 kB)
付费偷看设置
发送
1条回答
何必丶何苦呢
1楼-- · 2020-08-27 06:44

你好,安德里亚。
问题不是与配置有关,而是Backoffice处理partOf属性的一种方式:

在执行 com.hybris.cockpitng.editor.commonreferenceeditor.ReferenceEditorLayout#appendEditorsToLayout 时,它会检查编辑器是否仅设置为创建模式:

受保护的void appendEditorsToLayout(Div verticalLayout){
     如果(this.referenceEditor.isOnlyCreateMode()){
         this.renderCreateOnlyLayout(verticalLayout);
         如果(!this.referenceEditor.allowNestedObjectCreation()||!this.referenceEditor.isEditable()){
             this.getCreateOnlyBandbox()。setDisabled(true);
             this.getDropButton()。setDisabled(true);
         }
     }其他{
         this.createBandBox(verticalLayout);
         如果(!this.referenceEditor.isEditable()){
             this.getBandbox()。setDisabled(true);
         }
     }

 } 
OOTB com.hybris.cockpitng.editor.commonreferenceeditor.ReferenceEditorLogic#isOnlyCreateMode 返回 true属性定义为 部分:
 public boolean isOnlyCreateMode(){
     如果(this.parentEditor == null){
         返回false;
     }其他{
         返回this.parentEditor.isPartOf()||  this.createOnly;
     }
 } 

并且由于负责bandbox呈现的逻辑未执行( com.hybris.cockpitng.editor.commonreferenceeditor.ReferenceEditorLayout#createBandBox ),该逻辑还使用了配置中提到的referenceAdvancedSearchEnabled。

我相信有两种选择:删除 partOf 修饰符或扩展引用编辑器以满足要求。

一周热门 更多>