Como acessar uma associação aninhada profunda de dois níveis de um serviço OData V2?

Nov 26 2020

Eu expus um serviço OData V2 por meio do ABAP Service Gateway (SEGW) com base em uma exibição CDS. A visualização contém associações indiretas com duas outras visualizações (entidade_1> entidade_2> entidade_3 - sem conexão direta entre entidade_1 e entidade_3). Meu problema é que não consigo acessar entity_3 de entity_1 via entity_2. Acessar a entity_2 funciona bem com o uso, /service_name/entity_1?$expand=to_entity_2mas depois disso não consigo me aprofundar mais. Tentei usar, /service_name/entity_1?expand=to_entity_2($expand=to_entity_3)mas assim que coloco uma segunda consulta entre parênteses após a primeira recebo uma mensagem de erro.

Eu uso uma sintaxe errada ou essas chamadas aninhadas não são suportadas pelo OData V2? E se não houver suporte, como resolvo meu problema? O serviço é usado em um aplicativo SAPUI5 onde deve ser vinculado a uma tabela em árvore, portanto, preciso de (três) níveis diferentes em meu serviço.

Respostas

5 MXMLNDML Nov 26 2020 at 19:05

Aparentemente, a sintaxe estava errada. Funciona se você usar /service_name/entity_1?$expand=to_entity_2,to_entity_2/to_entity_3.