如何根据id获取ABAP OData中两个相同的实体?

问题描述 投票:0回答:2

我正在开发一个全栈 ABAP OData 和 SAPUI5 应用程序。 我在连接请求中的两个实体时遇到一些问题。 我有一张名为“

Flight
”的桌子和一张名为“
Airport
”的桌子。 在“
Flight
”表中,我有一个主键和两个外键。 外键是“
DepartureAirportId
”和“
ArrivalAirportId
”。

我使用事务 SEGW 创建了一个 oData-Service。我已经在 ABAP 中创建了一个关联,其中主要实体为 Flight,子实体为 Airport。

当我致电该协会时,我取回了数据库中存储的所有机场,但我只想要其中两个机场,出发机场和到达机场。

如何重新创建关联以仅获取 id 指定的两个机场?

odata associations abap expand sap-gateway
2个回答
0
投票

在“获取机场实体集”中,从 IT_KEY_TAB 中读取密钥。 在这里您将获得飞行的主键。 通过它,您可以获取到达和出发机场的外键,并使用机场 ID 选择机场详细信息,并将它们返回到 et_entityset 中。


0
投票

您可以创建两个名为 DepartureAirport 和 ArrivalAirport 的实体,并创建与 Flight 实体的关联。这样,您可以获得包含航班信息的行中的深层结构,其中包含有关两个不同机场的单独信息。我确信有更好的想法,但您可以用此方法实现它。

© www.soinside.com 2019 - 2024. All rights reserved.