实体可以发布但可以放置(405)

2020-09-22 16:33发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我有一个简单的演示情况:

  • Hana试用数据库
  • 具有3个键和其他字段的表
  • 在线编辑器工具中的向导工具创建的odata服务

我的文件是:

xsodata:

服务{
     " DB"。" CA01"为" Ca01";
    ...
 } 

xsaccess:

 {
     "暴露":是,
     "身份验证":[{
         " method":" Form"
     }],

     " mime_mapping":[{
         "扩展名":" jpg",
         " mimetype":" image/jpeg"
     }],
     " force_ssl":否,
     " enable_etags":是的,
     " prevent_xsrf":是的,
     " anonymous_connection":null,
     " cors":[{
         "已启用":false
     }],
     " cache_control":"无缓存,无存储",
     " default_file":" index.html"
 } 

我使用带有sapui5的odata模型对包装进行操作。

当我阅读(GET)没问题时,当我创建(POST)时没问题(数据已成功写入),当我更新(PUT)时,我得到了答案:

 {" error":{" code":""," message":{" lang":" en-US"," value":" URI对于PUT操作无效。URI必须指向 用于PUT操作的单个资源。"}}} 

带有状态码:

 405方法不允许

创建或更新时,我使用的是相同的js obj:

 var saveObj = {
     KEY1:1
     KEY2:1
     KEY3:1
     VALUE1:"某物",
     ...
 } 

odata创建调用为:

 odataServ.create('Ca01',saveObj,null,函数(odata,resp){
     console.log(odata);
     console.log(resp);
    }); 

odata更新调用为:

 odataServ.update('Ca01',saveObj,null,函数(odata,resp){
     console.log(odata);
     console.log(resp);
    }); 

如您所见,唯一的区别是方法。

很明显,我尝试在创建完成后进行更新,该行出现在表中,填充了键,重新加载了sapui5应用程序以及其他基本测试。


如果有人可以帮助我,我将非常感激

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我有一个简单的演示情况:

  • Hana试用数据库
  • 具有3个键和其他字段的表
  • 在线编辑器工具中的向导工具创建的odata服务

我的文件是:

xsodata:

服务{
     " DB"。" CA01"为" Ca01";
    ...
 } 

xsaccess:

 {
     "暴露":是,
     "身份验证":[{
         " method":" Form"
     }],

     " mime_mapping":[{
         "扩展名":" jpg",
         " mimetype":" image/jpeg"
     }],
     " force_ssl":否,
     " enable_etags":是的,
     " prevent_xsrf":是的,
     " anonymous_connection":null,
     " cors":[{
         "已启用":false
     }],
     " cache_control":"无缓存,无存储",
     " default_file":" index.html"
 } 

我使用带有sapui5的odata模型对包装进行操作。

当我阅读(GET)没问题时,当我创建(POST)时没问题(数据已成功写入),当我更新(PUT)时,我得到了答案:

 {" error":{" code":""," message":{" lang":" en-US"," value":" URI对于PUT操作无效。URI必须指向 用于PUT操作的单个资源。"}}} 

带有状态码:

 405方法不允许

创建或更新时,我使用的是相同的js obj:

 var saveObj = {
     KEY1:1
     KEY2:1
     KEY3:1
     VALUE1:"某物",
     ...
 } 

odata创建调用为:

 odataServ.create('Ca01',saveObj,null,函数(odata,resp){
     console.log(odata);
     console.log(resp);
    }); 

odata更新调用为:

 odataServ.update('Ca01',saveObj,null,函数(odata,resp){
     console.log(odata);
     console.log(resp);
    }); 

如您所见,唯一的区别是方法。

很明显,我尝试在创建完成后进行更新,该行出现在表中,填充了键,重新加载了sapui5应用程序以及其他基本测试。


如果有人可以帮助我,我将非常感激

付费偷看设置
发送
3条回答
能不能别闹
1楼-- · 2020-09-22 17:22

该错误表示您无法调用表示多个实体的Ca01方法。 您必须将路径设置为特定实体。

 odataServ.update('Ca01(THE ID)',saveObj,null,function(odata,resp){
     console.log(odata);
     console.log(resp);}); 

此致

杰米

SAP浪
2楼-- · 2020-09-22 17:10

我不明白您的要求。 您必须提供带有ID的路径来更新值,否则系统将永远不会知道您要调用的内容。

此致

Jamie

天桥码农
3楼-- · 2020-09-22 17:06

你好,

您的答案是正确的,如果我阅读__metadata URL是用这种方式编写的。 我的错。

服务器的回答是:

 500内部服务器错误
 {" error":{" code":""," message":{" lang":" en-US"," value":"服务异常:不支持[7]功能"}}} 

那是一个更好的答案,但不是解决方案:(

如何在hana xsodata服务中激活此功能?

无论如何,谢谢您的回答!

一周热门 更多>