Feb 16 2019
10:33 PM
- last edited on
Jul 12 2019
11:21 AM
by
TechCommunityAP
Feb 16 2019
10:33 PM
- last edited on
Jul 12 2019
11:21 AM
by
TechCommunityAP
I have an Odata V4 service written with java olingo.
When I try navigating between entities in Excel Power Query I get this error:
DataSource.NotFound: OData: Request failed (404): The remote server returned an error: (404) Not Found. (Resource not found.)
Details:
DataSourceKind=OData
DataSourcePath=http://localhost:8080/odata/v4/shared_spaces/1001/workspaces/1002/features('2011')/product_areas('2017')/tests('1034')/owner
Url=http://localhost:8080/odata/v4/shared_spaces/1001/workspaces/1002/features('2011')/product_areas('2017')/tests('1034')/owner
It looks like Excel (2013 + Power Query plugin) generated the invalid URI:
http://localhost:8080/odata/v4/shared_spaces/1001/workspaces/1002/features('1011')/product_areas('1034')/tests('1016')/owner
I was expected from Excel to generate the following:
http://localhost:8080/odata/v4/shared_spaces/1001/workspaces/1002/features('1011')/product_areas('1034')/test('1016')/owner
The question is why Excel is using the the entity set name (tests) instead of the navigation property name (test) as it should be?
below you can find our metadata (the relevant lines are marked in purple).
<EntityType Name="product_area"> <Key> <PropertyRef Name="id"/> </Key> <Property Name="creation_time" Type="Edm.DateTimeOffset"/> <Property Name="client_lock_stamp" Type="Edm.Int64"/> <Property Name="has_children" Type="Edm.Boolean"/> <Property Name="version_stamp" Type="Edm.Int64"/> <Property Name="description" Type="Edm.String"/> <Property Name="name" Type="Edm.String"/> <Property Name="id" Type="Edm.String"/> <Property Name="last_modified" Type="Edm.DateTimeOffset"/> <NavigationProperty Name="parent" Type="OData.Octane.product_area" Nullable="false"/> <NavigationProperty Name="test" Type="Collection(OData.Octane.test)"/> <NavigationProperty Name="children" Type="Collection(OData.Octane.product_area)"/> <NavigationProperty Name="work_item" Type="Collection(OData.Octane.work_item)"/> </EntityType>
<EntitySet Name="tests" EntityType="OData.Octane.test"/>
Thanks,
Adi