在网关中使用CDS引用的数据源调整实体名称

2020-09-19 00:27发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我们正在开发Od...

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

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


专家们,

我们正在开发Odata服务,并将CDS用于读取模型。 我们权衡了以下选项:

1)SEGW项目并导入CDS模型,并将映射用于读取功能

2)CDS View直接发布到Odata服务SEGW项目,该项目将OData服务作为模型导入

我们选择了选项2,以便在更改CDS视图时不必重新生成,并且所有内容都通过CDS和模型进行处理。

但是,我很烦恼的是实体模型是从CDS视图中接管的,这意味着Z命名约定。 对于某些非CDS场景,我们定义了自己实现的实体,而不必遵循Z命名,因此可以得到以下结果:

-ZV_CDS_SALES_ORDER
-BusinessPartner

是否可以重新定义基于CDS的实体名称? 在SEGW节点"模型引用"中,我们可以更改名称,但是似乎没有任何作用。

谢谢!

Wouter

1条回答
大道至简
2020-09-19 00:50 .采纳回答

嗨,伍特

您必须重新定义Service Builder项目的MPC_EXT类的DEFINE方法。

在以下示例中,我使用CDS视图创建了SEGW项目ZRDS,从而生成了服务ZRDS_SRV

SEPM_I_SalesOrder_E 。

因此,实体集的名称将被命名为 SEPM_I_SalesOrder_E ,而实体类型将被命名为 SEPM_I_SalesOrder_EType 。

现在,实体类型称为 SalesOrder ,而实体集称为 SalesOrders 。

可以在$ metadata文档的摘录中查看结果(请参见下文)。

最好的问候

安德烈

方法DEFINE。

  超级-> DEFINE()。
 *捕捉/IWBEP/CX_MGW_MED_EXCEPTION。  "

  数据:/iwbep/if_mgw_odata_entity_typ的lo_entity_type类型引用,
  lo_entity_set类型REF TO/IWBEP/IF_MGW_ODATA_ENTITY_SET,
  lo_property类型引用到/iwbep/if_mgw_odata_property。


  lo_entity_type =模型-> get_entity_type('SEPM_I_SalesOrder_EType')。

  LO_ENTITY_TYPE-> SET_NAME(IV_NAME ='Salesorder')。
 *捕捉/IWBEP/CX_MGW_MED_EXCEPTION。  "


  lo_entity_set =模型-> get_entity_set('SEPM_I_SalesOrder_E')。
  lo_entity_set-> SET_NAME(IV_NAME ='Salesorders')。

  终止方法。
  

一周热门 更多>