点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)您好社区,您好专家。 我正...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)您好社区,您好专家。 我正...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
您好社区,您好专家。
我正在遵循ABAP RESTful编程模型来在两个实体之间创建简单的关系。
我正在使用以下文档( https://help .sap.com/viewer/923180ddb98240829d935862025004d6/Cloud/en-US/ffef7e02127e442793f24e3dc902c824.html ),位于"开发">"托管交易方案"下。
在以前的技术中,这可以通过@ObjectModel批注在SAP Gateway的SEGW或Premise的ABAP CDS内实现。 在SCP的ABAP中,我创建了两个CDS视图,类似于在Premise上进行的操作,但是现在在父CDS视图中使用了 Composition ,在子级中使用了 Association To Parent CDS视图。 在服务定义和服务绑定时,我没有看到生成的关联(to_Child),这对于我们拥有的UX需求是必需的。
我将附上审核步骤:
父表:
@ EndUserText.label:" SDR条目" @ AbapCatalog.enhancementCategory:#NOT_EXTENSIBLE @ AbapCatalog.tableCategory:#透明 @ AbapCatalog.deliveryClass:#A @ AbapCatalog.dataMaintenance:#LIMITED 定义表zsdr_entry { 关键客户端:abap.clnt不为null; RiceFW关键字:zricefw不为null; exttype:abap.char(10)不为null; }
子表:
@ EndUserText.label:" SDR环境" @ AbapCatalog.enhancementCategory:#NOT_EXTENSIBLE @ AbapCatalog.tableCategory:#透明 @ AbapCatalog.deliveryClass:#A @ AbapCatalog.dataMaintenance:#LIMITED 定义表zsdr_env { 关键客户端:abap.clnt不为null; @ AbapCatalog.foreignKey.screenCheck:否 关键ricefw:zricefw不为空 使用外键[0 .. *,1] zsdr_entry 其中ricefw = zsdr_env.ricefw; 键值:abap.char(3)不为null; 环境:abap.char(20); }
zricefw预定义类型CHAR LENGTH 11
父界面CDS视图
@ AbapCatalog.sqlViewName:'ZSDRIENTRY' @ AbapCatalog.compiler.compareFilter:是 @ AbapCatalog.preserveKey:是 @ AccessControl.authorizationCheck:#NOT_REQUIRED @ EndUserText.label:" SDR条目的接口" 定义根视图ZSDR_I_ENTRY 从zsdr_entry中选择 ZSDR_I_ENV的组成[0 .. *]作为_Environment { 关键Ricefw, exttype, /*关联*/ _环境 }
子界面CDS视图
@ AbapCatalog.sqlViewName:'ZSDRIENV' @ AbapCatalog.compiler.compareFilter:是 @ AbapCatalog.preserveKey:是 @ AccessControl.authorizationCheck:#NOT_REQUIRED @ EndUserText.label:" SDR环境接口" 定义视图ZSDR_I_ENV 从zsdr_env中选择 在$ projection.ricefw = _Entry.ricefw上作为_Entry与父ZSDR_I_ENTRY关联 关键Ricefw, 关键证据 环境 /*关联*/ _条目 }
父母消费CDS视图
@ EndUserText.label:" SDR条目的消耗" @ AccessControl.authorizationCheck:#NOT_REQUIRED 定义根视图实体ZSDR_C_ENTRY 作为ZSDR_I_ENTRY { 键Ricefw为RicefwId, exttype作为ExtType, /*关联*/ _环境 }
儿童消费CDS视图
@ EndUserText.label:" SDR环境的消耗" @ AccessControl.authorizationCheck:#NOT_REQUIRED 定义视图实体ZSDR_C_ENV 作为ZSDR_I_ENV { 键Ricefw为RicefwId, 键为EnvId, 作为环境 /*关联*/ _条目 }
服务定义:
@ EndUserText.label:"服务定义PoC" 定义服务ZSDR_POC { 将ZSDR_C_ENTRY公开为条目; 将ZSDR_C_ENV暴露为环境; }
服务绑定:
服务元数据中的实体:为简洁起见,删除了一些信息。
<键> <属性名称=" ExtType"类型=" Edm.String" MaxLength =" 10"/> <键>
如果需要进一步澄清,请提出问题。
请注意,目前没有语法错误,所有对象均已激活。 尚未开始的部分是行为定义/实现。
感谢您的协助! 谢谢您的时间。
(14.9 kB)
您好,Pavel,问题与此处的介绍性声明有关:
"在服务定义和服务绑定时,我没有看到生成的关联(to_Child),这对于我们拥有的UX需求是必需的。"
换句话说,我们如何解决在实体之间生成关联的问题? 对于此PoC,我们需要在实体实体下的OData v2元数据中生成一个" to_Envs"关联,作为导航属性。
一周热门 更多>