自定义OData服务在iOS SAP Cloud Platform应用程序上缺少属性

时间:2019-10-25 16:19:37

标签: sap-fiori sap-cloud-platform sap-cloud-sdk

为了理解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>

当我使用此服务作为目的地生成应用程序时,一切正常:

Screenshot of the generated app showing all entities with the single 'ID' property

一旦我尝试向我的OData模型添加另一个属性,例如“ myOtherProperty”,重新生成并运行该应用程序时,我收到以下消息:

Missing property error when running the re-generated app

当我查看来自服务的原始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服务来说,这似乎不是问题,所以我猜想它与操纵杆库或一个小怪癖有关。

任何帮助都将不胜感激!!

0 个答案:

没有答案