如何通过|如何通过 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 的开发教程
- 1. 在 SAP ABAP 事物码 SEGW 里创建 SAP OData 项目
- 2. 在 SAP ABAP 系统对事物码 SEGW 创建的 OData 服务进行配置并测试
- 3. SAP ABAP OData 服务诊断工具 /IWFND/ERROR_LOG 的使用方法
- 4. SAP ABAP OData 服务 Data Provider Class 的 GET_ENTITYSET 方法实现指南
- 5. SAP ABAP OData 服务如何支持 $filter (过滤)操作
- 6. 使用 Postman 工具高效管理和测试 SAP ABAP OData 服务
- 7. SAP ABAP OData 服务如何支持 $orderby (排序)操作
- 8. SAP ABAP OData 服务如何支持创建(Create)操作
- 9. SAP ABAP OData 服务如何支持删除(Delete)操作
- 10. SAP ABAP OData 服务如何支持修改(Update)操作
- 11. 使用 HTTP PUT, PATCH 以及 MERGE 请求消费 SAP ABAP OData 服务修改操作的实现及其区别
- 12. SAP ABAP OData 服务如何支持 $select 有选择性地仅读取部分模型字段值
- 13. SAP ABAP OData 服务的分页加载数据集的实现(Paging)
- 14. 几种 SAP ABAP OData 服务的性能评估和测试工具介绍
- 15. SAP ABAP OData 服务里 EntityType 和 EntitySet 的区别
- 16. 如何修改 SAP ABAP OData 模型,使其支持 $expand 操作
- 17. 如何通过 SAP ABAP OData $expand 操作在同一个 HTTP 请求中返回多个节点的数据
- 更多文章正在写作中,敬请期待
- 正在写作中,敬请期待
- 正在写作中,敬请期待
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 节点(绿色)的所有字段值:
文章图片
【如何通过|如何通过 SAP ABAP OData $expand 操作在同一个 HTTP 请求中返回多个节点的数据试读版】本文余下部分,开始介绍如何实现 OData 模型的 DPC 类,以支持
$expand
操作。推荐阅读
- SAP|SAP ABAP ALV 层次顺序表如何使用双表头(Multiple Headers)进行数据输出试读版
- 日课|日课 20171107
- 459|459 如何成为年龄成迷的男神或女神(一)
- 微信小程序中如何实现动态改变SVG颜色和尺寸
- Fabric 账本数据块结构解析(二)(如何解析账本中的配置块数据)
- javascript|Vite Server 是如何处理页面资源的()
- 令人不满的生活是如何发生的
- 面试时如何回答“你为什么要选择我们公司”这个问题()
- Java学习|如何在eclipse中导入mysql-connector-java.jar包以及关于不同版本mysql-connector-java的jar包下载
- MySQL|如何实现两个数据库之间表的同步更新(增,删,改)