从odata v2迁移到v4时缺少的方法

时间:2018-08-14 04:29:10

标签: odata sapui5

我正在尝试为当前使用odata v2的主要详细信息应用程序实现odata v4。

在我的应用中,我使用了一些类似的语句。

this.getOwnerComponent().getModel().metadataLoaded().then(fnSetAppNotBusy);

var oContext = this.getModel().createEntry(sPath, {
    properties: {
           Name: "ABC",
           Age: "20"
        },
    success: this._fnEntityCreated.bind(this),
        error: this._fnEntityCreationFailed.bind(this)
});

我在本文档Changes Compared to OData V2 Model中看到,odata v4已用“相应方法”替换了元数据加载。

enter image description here

我已经搜索并找到了一些,但是不确定这些方法是否正确。有人可以确认吗?

enter image description here

而且在oDataModel v4中找不到方法createEntry,那么如何实现与odata v2相同的逻辑?

谢谢

1 个答案:

答案 0 :(得分:1)

嗯。此示例涵盖了创建过程:

https://sapui5.hana.ondemand.com/sdk/#/sample/sap.ui.core.tutorial.odatav4.06/code

(基本上,您是在绑定/上下文级别执行创建的)

对于onMetadataLoaded,您可以使用getMetaModel(),然后使用带有承诺的“适当”功能,但我将按照以下步骤进行操作:抓住您的绑定,这是您正在等待的绑定,并附加到事件dataReceived。例如,

oTable.getBinding('items').attachEvent('dataReceived', function(){...})

API文档明确声明此事件将用于忙碌指示器:

https://sapui5.hana.ondemand.com/sdk/#/api/sap.ui.model.odata.v4.ODataListBinding/events/dataReceived