从一个Odata服务更新另一个Odata服务中的值

从一个Odata服务更新另一个Odata服务中的值,odata,sapui5,Odata,Sapui5,我想根据从另一个服务收到的值更新一个Odata服务中的字段值。由于某些原因,我的ODataModel.update(spath、oentry、null、success、error)无法正常工作。我觉得我在stmt 1中错了。但是如果我做了这个完全相同的代码来读取,它读取的顺序是正确的。挑战是我无法更新该订单的字段 var sServiceUrl = this.getOwnerComponent().getMetadata().getManifestEntry("sap.app").dataSo

我想根据从另一个服务收到的值更新一个Odata服务中的字段值。由于某些原因,我的ODataModel.update(spath、oentry、null、success、error)无法正常工作。我觉得我在stmt 1中错了。但是如果我做了这个完全相同的代码来读取,它读取的顺序是正确的。挑战是我无法更新该订单的字段

 var sServiceUrl = this.getOwnerComponent().getMetadata().getManifestEntry("sap.app").dataSources["ServiceToBeUpdated"].uri;
                var odataModel = new sap.ui.model.odata.v2.ODataModel(sServiceUrl);
                var sPath = "/OrderSet('" + this.orderid + "')"; //1

        var oEntry = {};

            oEntry.FieldToUpdate= fieldfromOtherservice;

            odataModel.update(sPath, oEntry, null,
                 function(data) {
                    alert("success");
                },
                 function(e) {
                    alert("error");
                }
            );
        },
该问题称“更新方法未实现”。这意味着:

  • oData实现中没有为更新请求编写处理程序
您可以在oData(SAP网关)中修复此问题,如下所示:

在oData实现的DPC(数据提供程序类)中,转到 方法“ORDERSSET\u UPDATE\u ENTITY”并定义/重新定义它

将更新实体的实现代码放在这里,然后它应该 工作


如果有帮助,请告诉我。

您最终得到了什么样的sPath as?您得到的错误是什么(如果有)@NandanChaturvedi我得到sPath=OrdersSet(412345)。这是正确的,我只针对该订单。但我得到的错误是-“数据提供程序类中未实现方法‘ORDERSSET_UPDATE_ENTITY’。}这意味着您的oData不支持更新实体。如果您使用的是Gateway oData,请尝试以下操作:*检查DPC类和方法“ORDERSSET_UPDATE_ENTITY”,您可以在其中定义的更新oData@NandanChaturvedi非常感谢你。我一定会试试的。我还将补充这一点作为对这个问题的回答,供其他人参考。