点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好社区,
我正在开发一个简单的网络掩码,该掩码允许用户对游戏库(其中包含一些计算机游戏名称)进行CRUD操作。
技术背景:
- IDE:HANA 2 SPS 03补丁0(内部版本4.3.23)的SAP Web IDE
- SAPUI5前端
- HANA数据库
- OData Web服务(表:{#ID [Int,Primarykey Identity],GAME [String]})-使用XSJS
问题描述:
虽然按预期方式可以进行读取,插入和删除,但是我无法为基于在manifest.json中配置的xsodata服务的oModel使用update-Method。
情况:每当我触发oModel.update调用时,更新都不使用HTTP方法" PUT",而是使用" POST"。 当然,Web服务然后会返回以下错误消息:
该URI对POST操作无效。 URI必须指向用于POST操作的实体集。
我的请求:
POST/xsodata/getGames.xsodata/games(17)HTTP/1.1 内容长度:35 主机:xsa.realcore.local:51059 内容类型:application/json { " ID":17 " GAME":" Quake 2" }
这当然是错误的,但是对于到目前为止已配置为更新方法的http方法,我没有任何影响:
this._gameService = this._ownerComponent.getModel(" games"); this._gameService.setDefaultBindingMode(sap.ui.model.BindingMode.TwoWay); this._gameService.setRefreshAfterChange(true); var that = this; this._gameService.setHeaders({ " content-type":" application/json; charset = utf-8" }); this._gameService.update("/img/games(" + gameObjectToSave.ID +")", gameObjectToSave,{ 成功:function(){ that._readGames(); that._oGameLibrary.refresh(); }, 错误:function(e){ console.log(e); } });
Manifest.json:
"数据源":{ "游戏":{ " uri":"/xsodata/getGames.xsodata", " type":" oData", "设置":{ " odataVersion":" 2.0" } } } .... "游戏":{ " dataSource":"游戏", " type":" sap.ui.model.odata.v2.ODataModel", " preload":是的, "设置":{ " odataVersion":" 2.0", " useBatch":否 } } ....
可能的解决方法,但是很糟糕:
解决此问题的一种方法是使用不推荐使用的ODataModel版本:
" type":" sap.ui.model.odata.ODataModel",
(有关弃用的信息可以在openui5的api文档中找到。)
但是我想使用ODataModel版本2。在V1中,它以某种方式起作用,并且更新按预期使用了" PUT"方法。
有什么想法吗?
亲切的问候
马克
https://ui5.sap.com/ #/api/sap.ui.model.odata.v2.ODataModel
defaultUpdateMethod? sap.ui.model.odata.UpdateMethod 合并用于所有更新请求的默认更新方法
更改该参数以查看是否有帮助
您能否选择正确的答案并在问题解决后将其关闭?
您好, >
我的应用程序中存在完全相同的问题。 我尝试在MERGE和PUT上都添加defaultUpdateMethod设置,但仍然在.update方法上发送的请求是POST,这在单个实体上是不允许的。
一周热门 更多>