XSODATA 服务不支持合并操作?

XSODATA service doesn't support merge operation?

我正在使用 SAP HANA xsodata 服务在 HANA table 上创建 ODATA 服务,工作正常。

在 sap.ui.model.odata.ODataModel 上使用更新参数更新模型效果很好

代码:

 oModel.update(sUrl, oEntry, {
        success : //do something ,
        error : //do something
    });

现在我想在更新时使用 MERGE 代替 PUT,遵循 the documentation

我的代码:

oModel.update(sUrl, oEntry, {
        merge: true,
        success : //do something ,
        error : //do something
    });

它抛出一个错误,因为只支持 Get,Post,Put 和 Delete 被支持。

所以,我的问题是,XSODATA 服务是否不支持 MERGE?

如果它支持 MERGE,我的代码有什么问题?

错误 - 出现以下问题:HTTP 请求失败 405,方法不允许,{ “错误”:{ “代码”:“”,“消息”:{ “lang”:“en-US”,“值": "无效的 HTTP 方法。只允许 GET、POST、PUT、DEL 方法。"}}}

看起来XS服务器只支持以下HTTP方法:GETHEADPOSTOPTIONSPUTDELETETRACECONNECT。要查看此内容,请访问

https://<your.server:port>/sap/hana/xs/admin/#/package/<your.package.in.dot.notation>

导航到包含您的 ODATA 服务 .xsodata 文件的包,不要深入,而是单击名称,选择选项卡 "CORS" 并转到 [编辑]。在页面下方,您会看到允许使用哪些方法。

docs, all docs有点模糊,但就是这个列表。

默认设置说 GETHEADPOSTOPTIONS 是允许的,这符合您的错误消息。该选项卡中的设置已被遵守,因为我在尝试 PUT 一次时不得不学习困难的方法。

所以我们可以得出结论,有趣的是,UI5 docs 宣传了一种 XS 服务器不支持的方法。