Jak uzyskać dostęp do dwupoziomowego, głęboko zagnieżdżonego skojarzenia usługi OData V2?

Nov 26 2020

Ujawniłem usługę OData V2 za pośrednictwem ABAP Service Gateway (SEGW) opartej na widoku CDS. Widok zawiera pośrednie powiązania z dwoma innymi widokami (entity_1> entity_2> entity_3 - brak bezpośredniego połączenia między entity_1 i entity_3). Mój problem polega na tym, że nie mogę uzyskać dostępu do entity_3 z entity_1 przez entity_2. Dostęp do entity_2 działa dobrze, używając, /service_name/entity_1?$expand=to_entity_2ale po tym nie mogę zanurkować głębiej. Próbowałem użyć, /service_name/entity_1?expand=to_entity_2($expand=to_entity_3)ale jak tylko umieściłem drugie zapytanie w nawiasach po pierwszym, otrzymałem komunikat o błędzie.

Czy używam złej składni, czy też te zagnieżdżone wywołania nie są obsługiwane przez OData V2? A jeśli nie jest obsługiwany, jak rozwiązać problem? Usługa jest używana w aplikacji SAPUI5, gdzie powinna być powiązana z tabelą drzewa, więc potrzebuję (trzech) różnych poziomów w mojej usłudze.

Odpowiedzi

5 MXMLNDML Nov 26 2020 at 19:05

Najwyraźniej składnia była błędna. Działa, jeśli używasz /service_name/entity_1?$expand=to_entity_2,to_entity_2/to_entity_3.