基于外键关系的价值帮助在Fiori列表报告应用程序对象页面上不起作用

2020-09-02 18:10发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我正在尝试为使用列表报告...

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

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


嗨,

我正在尝试为使用列表报告模板创建的Firoi应用程序的对象页面上的可编辑字段创建值帮助。 我使用了SAP Fiori的ABAP编程模型来创建应用,并使用了 https://help.sap.com/viewer/cc0c305d2fab47bd808adcad3ca7ee9d/7.5.14/zh-CN/1b9a9e9d759e4302890c44cf5e10b5b1.html 字段,用于创建值帮助(计数)。 运行该应用程序后,在字段的值列表弹出窗口上没有看到任何数据,并且还看到以下错误" 在元数据中找不到值列表ZDEMO_C_COMPANY_CDS.ZDEMO_C_COMPANYType/CountryKey " 网关系统中的错误日志。 有人可以查看我的步骤,并可能在这里解释我可能会缺少的内容。

用作文本提供者的CDS视图:

 @ AbapCatalog.sqlViewName:'ZDEMO_I_BUKRS'
 @ AbapCatalog.compiler.compareFilter:是
 @ AccessControl.authorizationCheck:#NOT_REQUIRED
 @ EndUserText.label:"公司代码"
 将视图ZDEMO_I_COMPANY定义为从t001 {
  作为公司代码,
  butxt作为CompanyName,
  land1作为CountryKey,
  叫CurrencyKey
 }
 

用作价值帮助提供者的CDS视图:

 @ AbapCatalog.sqlViewName:'ZDEMO_I_LAND_VH'
   @ Search.searchable:是
   @ EndUserText.label:"国家/地区帮助"
    
   定义视图ZDEMO_I_COUNTRY_VH
     从t005中选择作为CountryValueProvider
    
     将[0 .. *]与_CountryText关联到ZDEMO_I_COUNTRY_VH
         在$ projection.CountryKey = _CountryText.CountryKey上
   {
     @ ObjectModel.text.association:'_CountryText'
     @ Search.defaultSearchElement:true
     键CountryValueProvider.land1作为CountryKey,
    
     -协会
     _CountryText
   }
 

CDS模型视图:

 @ AbapCatalog.sqlViewName:'ZDEMO_I_BUKRS'
 @ AbapCatalog.compiler.compareFilter:是
 @ AccessControl.authorizationCheck:#NOT_REQUIRED
 @ EndUserText.label:"公司代码"
 将视图ZDEMO_I_COMPANY定义为从t001 {
  作为公司代码,
  butxt作为CompanyName,
  land1作为CountryKey,
  叫CurrencyKey
 } 

CDS消费视图:

 @ AbapCatalog.sqlViewName:'ZDEMO_C_BUKRS'
 @ AbapCatalog.compiler.compareFilter:是
 @ AccessControl.authorizationCheck:#NOT_REQUIRED
 @ EndUserText.label:"公司代码"
 @ Search.searchable:是
 @ ObjectModel.semanticKey:'公司代码'
 @ ObjectModel.representativeKey:'公司代码'
 @ ObjectModel.createEnabled:是
 @ ObjectModel.deleteEnabled:是
 @ ObjectModel.updateEnabled:是
 @ UI.headerInfo.title.value:'CompanyCode'
 @ UI.headerInfo:{typeName:"公司代码",typeNamePlural:"公司代码"}
 @ OData.publish:正确
 定义视图ZDEMO_C_COMPANY
 作为公司从ZDEMO_I_COMPANY中选择
 关联[0..1]与ZDEMO_I_COUNTRY_VH作为$ projection.CountryKey = _CountryValueHelp.CountryKey上的_CountryValueHelp
 {
 @ Search.defaultSearchElement:true
 @ UI.lineItem.position:10
 @ UI.identification.position:10
 @ UI.selectionField.position:10
 @ ObjectModel.readOnly:正确
 关键的Company.CompanyCode作为CompanyCode,
                
 @ UI.lineItem.position:20
 @ UI.identification.position:20
 @ UI.selectionField.position:20
 Company.CompanyName作为CompanyName,
        
 @ ObjectModel.foreignKey.association:'_CountryValueHelp'
 @ UI.lineItem.position:30
 @ UI.identification.position:30
 @ UI.selectionField.position:30
 Company.CountryKey作为CountryKey,
                
 @ UI.lineItem.position:40
 @ UI.identification.position:40
 Company.CurrencyKey作为CurrencyKey,


  - 协会
 _CountryValueHelp
 } 

服务元数据:

 <?xml version =" 1.0" encoding =" UTF-8"?>
 -
 -
 
 
 -
 -<架构xml:lang =" zh-CN"命名空间=" ZDEMO_C_COMPANY_CDS" xmlns =" http://schemas.microsoft.com/ado/2008/09/edm" sap:schema-version =" 1">
 -
 -<键>
 
 
 <属性sap:label ="公司代码" Name =" CompanyCode" sap:updatable =" false" sap:creatable =" false" sap:display-format =" UpperCase" MaxLength =" 4" Nullable =" false" Type =  " Edm.String"/>
 <属性sap:label =" Company Name" Name =" CompanyName" MaxLength =" 25" Type =" Edm.String"/>
 <属性sap:label ="国家/地区代码" Name =" CountryKey" sap:display-format =" UpperCase" MaxLength =" 3" Type =" Edm.String" sap:value-list =" standard"/>
 <属性sap:label =" Currency" Name =" CurrencyKey" MaxLength =" 5" Type =" Edm.String" sap:semantics =" currency-code"/>
 
 -<键>
 
 
 <属性sap:label ="国家/地区键" Name =" CountryKey" sap:display-format =" UpperCase" MaxLength =" 3" Nullable =" false" Type =" Edm.String"/>
 
 -<关联sap:content-version =" 1" Name =" assoc_70D10BB6340D56E151B1D73DD37537A5">
 
 
 
 -
 
 
 -
 
 
 
 
 -
 -<注释条款=" Common.ValueList">
 -<记录>
 
 
 
 -
 -<集合>
 -<记录类型=" Common.ValueListParameterInOut">
 
 
 
 
 
 
 
 
 -
 -
 -<集合>
 公司代码
 
 
 
 
 
 
 
 

(22.3 kB)
2条回答
大简至美
2020-09-02 19:03

这是一个不错的选择,但不幸的是无法解决我的问题。 另外,我原始帖子中的文本提供程序代码不正确。 附加正确的文本提供程序CDS视图代码以及更正的CDS视图代码,以提供价值帮助提供者。

用作文本提供者的CDS视图:

 @ AbapCatalog.sqlViewName:'ZDEMO_I_LAND_T'
   @ ObjectModel.dataCategory:#TEXT
   @ ObjectModel.representativeKey:'CountryKey'
                        
   @ Search.searchable:是
                        
   定义视图ZDEMO_I_COUNTRY_TEXT
         从t005t中选择作为CountryTextProvider
   {
     键CountryTextProvider.land1作为CountryKey,
     @ Semantics.language:true-标识语言
     Key CountryTextProvider.spras作为语言,
     @ Semantics.text:true-标识文本字段
     @ Search.defaultSearchElement:true
     @ Search.fuzzinessThreshold:0.8
     CountryTextProvider.landx作为CountryName
   } 

用作价值帮助提供者的CDS视图:

 @ AbapCatalog.sqlViewName:'ZDEMO_I_LAND_VH'
   @ Search.searchable:是
   @ EndUserText.label:"国家/地区帮助"
    
   定义视图ZDEMO_I_COUNTRY_VH
     从t005中选择作为CountryValueProvider
    
     将[0 .. *]与_CountryText关联到ZDEMO_I_COUNTRY_TEXT
         在$ projection.CountryKey = _CountryText.CountryKey上
   {
     @ ObjectModel.text.association:'_CountryText'
     @ Search.defaultSearchElement:true
     键CountryValueProvider.land1作为CountryKey,
    
     -协会
     _CountryText
   } 

一周热门 更多>