如何通过 SAP ABAP OData $expand 操作在同一个 HTTP 请求中返回多个节点的数据试读版

简介: 如何通过 SAP ABAP OData $expand 操作在同一个 HTTP 请求中返回多个节点的数据试读版

正如本教程的开篇介绍文章SAP OData 开发教程 - 从入门到提高(包含 SEGW, RAP 和 CDP)所提到的,SAP OData 服务开发,从实现技术上来说,可以分为三大类。因此本教程也分为三大部分,分别进行介绍。本文是本教程的文章目录。


作者简介

Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 标准产品开发生涯里,Jerry 曾经先后参与 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer, SAP S/4HANA, SAP Commerce Cloud(电商云)等标准产品的研发工作。


Jerry 对 SAP OData 服务的开发,测试,发布,部署,测试,及基于各种不同 SAP 技术实现的 OData 服务的幕后技术实现细节和使用场合,均有着深入的研究。


基于 SEGW - Gateway Service Builder 的开发教程


使用 Restful ABAP Programming 编程模型(简称 RAP) 开发 OData 服务


  • 正在写作中,敬请期待


使用 SAP Cloud Application Programming 编程模型开发 OData 服务


  • 正在写作中,敬请期待


本教程前一篇文章,我们已经完成了为了支持 OData 协议定义的 $expand 操作,而必须进行的 OData 模型层面的增强:


16. 如何修改 SAP ABAP OData 模型,使其支持 $expand 操作


这些模型增强是在 ABAP 服务器的事物码 SEGW 里完成的。


我们在 SEGW 里创建了 Authors 这个 Navigation Properties,它通过名为 BookAuthor 的 Relationship,依据 Book 和 Author 两个 Entity Type 的 book_guid 字段,描述了这两个节点间的导航关系,即通过一个 Book 实例,我们期望通过 $expand 操作,读取到其所有的 Authors 数据:



在 Postman 里通过如下的 url,在同一个 HTTP 请求里,同时读取 Book 和其关联的 Author 信息:


https://{{host}}:{{port}}/sap/opu/odata/sap/ZBOOK_MANAGE_SRV/BookSet(guid'42010aee-2a94-1edd-8494-c9d14e91555e')?$expand=Authors


其中绿色的位于 $expand= 之后的 Authors,即是 Navigation Property 的字段名。





先看按照本文介绍步骤进行开发后,实现的效果:在 Postman 里,通过单个的 HTTP 请求,成功读取到了来自 book 节点(黄色)和 author 节点(绿色)的所有字段值:



本文余下部分,开始介绍如何实现 OData 模型的 DPC 类,以支持 $expand 操作。

相关文章
|
2月前
|
存储 安全 数据库
什么是 SAP ABAP 数据库表的 Display Maintenance Allowed with Restrictions
什么是 SAP ABAP 数据库表的 Display Maintenance Allowed with Restrictions
|
2月前
|
监控 测试技术
SAP 电商云修改 Product Catalog Staged 版本数据后,同步到 online 版本的 UI 操作
SAP 电商云修改 Product Catalog Staged 版本数据后,同步到 online 版本的 UI 操作
|
2月前
|
安全 API 数据库
SAP ABAP OData 中 Function import 的概念介绍
SAP ABAP OData 中 Function import 的概念介绍
|
2月前
|
前端开发 数据库 开发者
如何在 SEGW 事务码里为 SAP ABAP OData 服务实现 Function Import 试读版
如何在 SEGW 事务码里为 SAP ABAP OData 服务实现 Function Import 试读版
SAP ABAP OData 服务里需要指定 guid 类型的请求参数时,正确语法是什么?
SAP ABAP OData 服务里需要指定 guid 类型的请求参数时,正确语法是什么?
|
2月前
|
SQL 监控 Oracle
SAP ABAP 系统错误 Return value of the database layer SQL dbsl rc 99
SAP ABAP 系统错误 Return value of the database layer SQL dbsl rc 99
|
2月前
|
前端开发 开发工具 Android开发
小技巧分享 - 使用 Visual Studio Code 查看和修改 ABAP 代码试读版
小技巧分享 - 使用 Visual Studio Code 查看和修改 ABAP 代码试读版
小技巧分享 - 使用 Visual Studio Code 查看和修改 ABAP 代码试读版
|
2月前
|
BI
工具分享 - 将一个 ABAP Function Group 内所有 Function Module 按照代码行数从高到低排序并显示
工具分享 - 将一个 ABAP Function Group 内所有 Function Module 按照代码行数从高到低排序并显示
工具分享 - 将一个 ABAP Function Group 内所有 Function Module 按照代码行数从高到低排序并显示
|
2月前
|
开发者 供应链 BI
SAP ABAP CALL SUBSCREEN 代码解析
SAP ABAP CALL SUBSCREEN 代码解析
|
2月前
|
存储 数据处理 开发者
ABAP 如何把 unicode 代码点转换成字符
ABAP 如何把 unicode 代码点转换成字符