Почему не появляются поля выбора?

Я создал представление CDS с расширением разрешения метаданных следующим образом:

@AbapCatalog.sqlViewName: 'ZAMCCLASSSEL'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Classification selection'
@VDM.viewType: #CONSUMPTION 
@Metadata.allowExtensions: true

define view ZAM_C_CLASS_SEL
  as select from ZAM_I_CLASS_SEL
{
  key InternalClass,
      ClassType,
      ClassNum,
      _ClassKeyword,
      _ClassType
}

составной вид:

@AbapCatalog.sqlViewName: 'ZAMICLASSSEL'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Classification selection'
@VDM.viewType: #COMPOSITE

define view ZAM_I_CLASS_SEL
  as select from ZAM_I_CLASS_HEAD
  association [1..1] to ZAM_I_CLASSTYPE   as _ClassType    on $projection.ClassType = _ClassType.ClassType
  association [1..1] to ZAM_I_CLASS_KEYWS as _ClassKeyword on $projection.InternalClass = _ClassKeyword.InternalClass
{
      @ObjectModel.foreignKey.association: '_ClassKeyword'
  key InternalClass,
      @ObjectModel.foreignKey.association: '_ClassType'
      ClassType,
      ClassNum,
      ValidFrom,
      ValidUntil,
      _ClassType,
      _ClassKeyword
}

и расширение метаданных:

@Metadata.layer: #CORE
annotate view ZAM_C_CLASS_SEL with
{

  @UI.hidden: true
  InternalClass;
  @UI.selectionField: [{position: 10}]
  ClassType;
  @UI.selectionField: [{position: 20}]
  ClassNum;

}

Панель smartfilterbar должна отображать оба поля ClassType и ClassNum как поля выбора на экране:

<mvc:View controllerName="ch.mindustrie.FIORI_ELE_SELECTION.controller.Selection" xmlns:mvc="sap.ui.core.mvc"
    xmlns:smartFilterBar="sap.ui.comp.smartfilterbar" displayBlock="true" xmlns="sap.m">
    <Shell id="shell">
        <App id="app">
            <pages>
                <Page>
                    <smartFilterBar:SmartFilterBar id="smartFilterBar" persistencyKey="UniqueAndStablePersistencyKey" entitySet="ZAM_C_CLASS_SEL"></smartFilterBar:SmartFilterBar>
                </Page>
            </pages>
        </App>
    </Shell>
</mvc:View>  

но вместо этого у меня пустая панель smartfilterbar:

введите описание изображения здесь

щелкнув по кнопке Filters, отобразится:

введите описание изображения здесь

Это означает, что оба поля доступны, но, возможно, отсутствует опция для установки в элементе управления smartfilterbar.

Обновление
Я понял, что когда я меняю мета-расширение следующим образом:

@Metadata.layer: #CORE
annotate view ZAM_C_CLASS_SEL with
{
  @UI.selectionField: [{position: 20}]
  @Consumption.filter : { mandatory: true}
  ClassType;
  @UI.selectionField: [{position: 10}]
  @Consumption.filter : { mandatory: true}
  ClassNum;

}  

Будут показаны поля выбора.


person softshipper    schedule 20.02.2019    source источник


Ответы (1)


Помещение ответа от OP здесь для лучшей возможности поиска на SO.

При изменении мета-расширения, как показано ниже, будут отображаться поля выбора:

@Metadata.layer: #CORE
annotate view ZAM_C_CLASS_SEL with
{
  @UI.selectionField: [{position: 20}]
  @Consumption.filter : { mandatory: true}
  ClassType;
  @UI.selectionField: [{position: 10}]
  @Consumption.filter : { mandatory: true}
  ClassNum;

} 
person Suncatcher    schedule 27.10.2019