构建 OData 服务 [2]:了解 OData 服务

2021-11-07 23:22发布


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

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

在上一篇文章构建 OData 服务 [1]:OData 概述中,我们简要介绍了什么是 OData。在本文中,您将从 SAP 的角度了解 OData 服务组件。

在 SAP 中,我们使用事务 SEGW 来创建 OData 项目。让我们看一下 SAP 中一个典型的 OData 项目。这是一个空项目,但我们可以看到数据模型、服务实现等节点。让我们尝试理解这篇文章中的节点——数据模型。

 

数据模型是数据的设计。如何将相关数据放在称为实体的数据集合中以及实体如何相互关联。

实体类型

实体类型或实体就像一个可以保存一个数据记录的结构。在 ABAP 编程术语中,我们可以将其比作一个工作区。

实体类型具有一些属性标记为键的属性。还定义了有关类型、长度等属性的更多详细信息。

例子,


实体集

实体集是相同实体类型的集合。Order_Detail 是一个实体 – Order_details 即多个 order_detail 实体的集合是一个实体集。这就像一张桌子。


实体集只是指实体类型。


关联

关联是两种实体类型之间的关系。它定义了相关实体之间的基数/多重性。

在此示例中,Orders 和 Order_Details 实体集是关联的,其中一个 Order 具有多个 Order_Details 项目。连接这两个集合的键是引用约束中指定的 OrderID。

在主体实体到从属实体之间创建关联时,还会从主体实体到从属实体创建导航属性

在此示例中,为实体类型订单创建了一个导航属性。这允许我们从 Orders 导航到 Order_Details 实体集。



关联/导航属性将帮助我们获取相关数据。例如获取特定订单的 Order_Details。您可以轻松想象应用程序首先显示订单,当用户选择订单时,显示项目详细信息。


关联集

实体类型被收集到实体集中。类似地,关联集合称为关联集。


CRUD-Q Operation

CRUD-Q is short form for Create, Read, Update, Delete, and Query operations.

这些操作几乎是不言自明的。唯一可能的问题是读取和查询操作有什么区别。读取是当您读取一个实体时,而查询是在您获得实体集时。这就是区别。

OperationDescriptionExample
Create Create an EntityCreate an Order
Read Read an EntityRead an Order
Update Update an EntityUpdate an Order
Delete Delete an EntityDelete an Order
Query Query on Entity SetQuery on order set and get single/multiple orders

CRUD-Q Operations

函数导入

创建功能导入是为了在 SAP 中执行某些功能,例如下达采购订单。函数导入仅在 无法使用CRUD-Q操作时使用。

例如,通过 CRUD-Q 操作,可以创建、读取、更新、删除或查询客户。但是为了触发客户的信用检查,我们不能使用任何 CRUD-Q 操作——因此将创建函数导入。

接下来是什么?

现在我们已经了解了服务的组件,我们准备开始创建实际的服务。下一篇文章将介绍在 SAP 中创建新服务。



赞赏支持