为了理解OData <-> SAP Cloud Platform链接,我使用Node.js的Jaystack OData V4服务器(https://jaydata.org/jaystack-odata-v4-server)库开发了自己的最小OData服务。
首先,我添加了一个属性-“ ID”。
这是元数据文件:
<?xml version="1.0" encoding="UTF-8"?>
<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
<edmx:DataServices>
<Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Northwind">
<EntityType Name="Repair">
<Key>
<PropertyRef Name="ID"/>
</Key>
<Property Name="ID" Type="Edm.String" Nullable="false">
<Annotation Term="Org.OData.Core.V1.Computed" Bool="true"/>
<Annotation Term="UI.DisplayName" String="ZSRE Return Document Number"/>
<Annotation Term="UI.ControlHint" String="ReadOnly"/>
</Property>
</EntityType>
<EntityContainer Name="DefaultContainer">
<EntitySet Name="Repair" EntityType="Northwind.Repair"/>
</EntityContainer>
</Schema>
</edmx:DataServices>
</edmx:Edmx>
当我使用此服务作为目的地生成应用程序时,一切正常:
一旦我尝试向我的OData模型添加另一个属性,例如“ myOtherProperty”,重新生成并运行该应用程序时,我收到以下消息:
当我查看来自服务的原始JSON时,它抱怨缺少的属性“ myOtherProperty”显然存在:
{"@odata.context":"http://localhost:3000/$metadata#Repair","value":[{"@odata.id":"http://localhost:3000/Repair('5065879381')","ID":5065879381,"**myOtherProperty**":2311671387},{"@odata.id":"http://localhost:3000/Repair('7651842623')","ID":7651842623,"**myOtherProperty**":3928577920}]
这是更新的架构:
<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
<edmx:DataServices>
<Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Northwind">
<EntityType Name="Repair">
<Key>
<PropertyRef Name="ID"/>
</Key>
<Property Name="ID" Type="Edm.String" Nullable="false">
<Annotation Term="Org.OData.Core.V1.Computed" Bool="true"/>
<Annotation Term="UI.DisplayName" String="ZSRE Return Document Number"/>
<Annotation Term="UI.ControlHint" String="ReadOnly"/>
</Property>
<Property Name="myOtherProperty" Type="Edm.Int32"/>
</EntityType>
<EntityContainer Name="DefaultContainer">
<EntitySet Name="Repair" EntityType="Northwind.Repair"/>
</EntityContainer>
</Schema>
</edmx:DataServices>
</edmx:Edmx>
您知道为什么SDK可能会抱怨缺少属性吗?似乎对于其他示例OData服务来说,这似乎不是问题,所以我猜想它与操纵杆库或一个小怪癖有关。
任何帮助都将不胜感激!!