点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我有以下问题。 我创建一个CDS视图,并在此基础上使用参考数据源方法创建一个OData服务。 这是CDS视图的摘录:
/* VDM视图类型的定义*/ @ VDM.viewType:#CONSUMPTION /* BOPF对象模型*/ @ObjectModel:{ modelCategory:#BUSINESS_OBJECT, compositionRoot:正确, /*转发事务处理*/ transactionalProcessingDelegated:true, 语义关键字:['PurchaseOrderID'], createEnabled:是的, updateEnabled:是, deleteEnabled:true } 定义视图ZC_PurchaseOrderHeaderTP 从ZI_PurchaseOrderHeaderTP中选择 /*与其他BOPF节点的关联*/ 将[0 .. *]与_Items关联到ZC_PurchaseOrderItemTP 在$ projection.PurchaseOrderHeaderKey = _Items.PurchaseOrderHeaderKey上 { @ UI.hidden:是 键PurchaseOrderHeaderKey, @ UI.lineItem.position:10 @ UI.identification.position:10 PurchaseOrderID, @ UI.hidden:是 SupplyerKey, @ UI.hidden:是 NoteKey, CurrencyCode,
在使用Gateway Service Builder创建OData服务之后,我还在模型提供程序扩展类中实现了扩展。 该扩展名如下所示。 它基本上只是重命名OData服务中的实体。
CLASS zcl_z_erp_impl_ws19_mpc_ext实施。 方法定义。 super-> define()。 数据:lo_entity_type类型参考/iwbep/if_mgw_odata_entity_typ, lo_entity_set类型参考/iwbep/if_mgw_odata_entity_set, lo_property类型参考/iwbep/if_mgw_odata_property。 lo_entity_type =模型-> get_entity_type('ZC_PurchaseOrderHeaderTPType')。 lo_entity_type-> set_name(iv_name ='PurchaseOrderHeader')。 lo_entity_set =模型-> get_entity_set('ZC_PurchaseOrderHeaderTP')。 lo_entity_set-> set_name(iv_name ='PurchaseOrderHeaders')。 lo_entity_type =模型-> get_entity_type('ZC_PurchaseOrderItemTPType')。 lo_entity_type-> set_name(iv_name ='PurchaseOrderItem')。 lo_entity_set =模型-> get_entity_set('ZC_PurchaseOrderItemTP')。 lo_entity_set-> set_name(iv_name ='PurchaseOrderItems')。 终结法。 ENDCLASS。
最后,我基于此服务使用列表报告模板创建了一个基于Fiori Elements的应用程序。 我现在面临的问题如下。 只要在模型提供程序扩展类中有define方法的实现,就不会将CDS视图中的UI注释转移到Fiori Elements应用程序中。 所以 在列表视图的表中没有字段可见。 一旦删除了define方法的实现,一切都会按预期进行。
有人知道如何解决这个问题吗? 我是否在模型提供的扩展类的实现中缺少某些东西?
基督徒
经过更多调试后,我自己找到了答案。
使用以下请求加载注释:
这是返回的XML文件的例外:
使用OData实体的类型标识注释目标。 例如
因此,问题的根本原因是,我也重命名了元数据扩展类中的实体类型。 使用元数据扩展类的以下实现,所有内容均按预期工作:
基督教
您可以尝试使用注释 @ OData.entitySet。 名称
重命名实体集。
一周热门 更多>