当前位置:网站首页>SAP ABAP OData 服务如何支持 $orderby (排序)操作试读版
SAP ABAP OData 服务如何支持 $orderby (排序)操作试读版
2022-08-01 09:34:00 【汪子熙】
正如本教程的开篇介绍文章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 服务
- 正在写作中,敬请期待
序言
本文详细介绍了 SAP ABAP OData 服务如何支持 $orderby (排序)操作,以一个图书管理的 OData 服务实现为例,阐述了如何基于图书的名称和作者名称这两个字段进行排序操作。
我们在本教程第一篇文章 1. 在 SAP ABAP 事物码 SEGW 里创建 SAP OData 项目 里创建的 OData 模型,在 book_name 和 author_name 这两个字段的 sort 属性打上了勾,意思是这两个属性需要支持 OData 标准协议的 $orderby 操作即排序操作。

为了更清楚的看到我们的图书管理 OData 服务,在支持了 $orderby 操作之后的运行时效果,我们再往之前存储图书信息的 ZBOOKS 数据库表里添加一行测试数据:

我们如果不加任何参数,直接通过 OData 服务读取系统所有的 book 数据,那么返回给消费者的 book 数据的顺序,和上图数据库表里记录的顺序一致,这三条记录的 Author,依次为 Jerry,Tom 和 Arena.
我们使用本教程之前步骤提到的 Postman,在请求所有图书数据的 OData 请求的 HTTP 头部字段里,添加一个名叫 Accept 的字段,值为 application/json.
这样,点击 Send 按钮之后,我们开发好的 OData 服务,会以 JSON 格式返回数据。
点击屏幕右下角的按钮,将这些 JSON 数据粘贴到系统剪切板里。
然后粘贴到自己喜欢的 JSON 数据查看工具里即可。这里我用了一款名叫 JSON Viewer Pro 的 Chrome 扩展,打开上面 Postman 收到的 JSON 数据。

从中可以看出,OData 返回的三条数据,顺序同数据库表里的三条数据顺序完全一致。
下面我们开始实现基于 author_name 和 book_name 两个字段的排序操作。
边栏推荐
猜你喜欢
随机推荐
Manual upgrade and optimization tutorial of Lsky Pro Enterprise Edition
What's up with VS "Cannot find or open PDB file"?How to solve
Redis middleware (from building to refuse pit)
Naive Bayes--Study Notes--Basic Principles and Code Implementation
InputStream转成String
leetcode-6135:图中的最长环
Classify GBase 8 s lock
Prime Ring Problem(素数环问题)
Go-Excelize API source code reading (8) - GroupSheets(sheets []string), UngroupSheets()
leetcode-6132: Make all elements in array equal to zero
CTO强烈禁止使用Calendar,那用啥?
【Untitled】
Analysis of High Availability Solution Based on MySql, Redis, Mq, ES
mysql在cmd的登录及数据库与表的基本操作
Go-Excelize API源码阅读(八)——GroupSheets(sheets []string)、UngroupSheets()
Node's traditional and advanced practices for formatting time (moment)
Mysql database deployment and initialization steps
How to get page data
scrapy爬虫框架的使用
ClickHouse入门介绍与其特性







![ASP.NET Core 6框架揭秘实例演示[30]:利用路由开发REST API](/img/b3/0167c22f14b97eb0206696495af7b5.png)