CAP:自定义UPDATE处理程序的内部错误

2020-08-22 20:50发布

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

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


你好

当尝试为实体定义自定义UPDATE处理程序时,观察到以下内部错误要求报告:

 PUT/admin/作者(101)

 日志:UPDATE {ID:101,名称:" EmilyBrontëII"。  } {id:'匿名',
   valueOf:[功能],
   toString:[功能],
   是:[功能],
   具有:[功能],
   区域设置:" en"}

 [2020-03-04T07:21:33.802Z | 错误|  1367080]:无法在数字" 1"上创建属性" *@odata.context"
 [内部错误] TypeError:无法在数字'1'上创建属性'*@odata.context'
     在SerializingCommand._addRootMetaProperty(/Users/ashish/Documents/GitHub/cloud-cap-samples/packages/bookshop/node_modules/@sap/odata-server/lib/invocation/SerializingCommand.js:164:38)
     在SerializingCommand._addContextUrl(/Users/ashish/Documents/GitHub/cloud-cap-samples/packages/bookshop/node_modules/@sap/odata-server/lib/invocation/SerializingCommand.js:144:14)
     在SerializingCommand.execute(/Users/ashish/Documents/GitHub/cloud-cap-samples/packages/bookshop/node_modules/@sap/odata-server/lib/invocation/SerializingCommand.js:92:30)
     在CommandExecutor._execute(/Users/ashish/Documents/GitHub/cloud-cap-samples/packages/bookshop/node_modules/@sap/odata-server/lib/invocation/CommandExecutor.js:79:25)
     在command.execute(/Users/ashish/Documents/GitHub/cloud-cap-samples/packages/bookshop/node_modules/@sap/odata-server/lib/invocation/CommandExecutor.js:89:30)
     在SetStatuscodeCommand.execute(/Users/ashish/Documents/GitHub/cloud-cap-samples/packages/bookshop/node_modules/@sap/odata-server/lib/invocation/SetStatuscodeCommand.js:46:13)
     在CommandExecutor._execute(/Users/ashish/Documents/GitHub/cloud-cap-samples/packages/bookshop/node_modules/@sap/odata-server/lib/invocation/CommandExecutor.js:79:25)
     在command.execute(/Users/ashish/Documents/GitHub/cloud-cap-samples/packages/bookshop/node_modules/@sap/odata-server/lib/invocation/CommandExecutor.js:89:30)
     在SetResponseHeadersCommand.execute(/Users/ashish/Documents/GitHub/cloud-cap-samples/packages/bookshop/node_modules/@sap/odata-server/lib/invocation/SetResponseHeadersCommand.js:83:9)
     在CommandExecutor._execute(/Users/ashish/Documents/GitHub/cloud-cap-samples/packages/bookshop/node_modules/@sap/odata-server/lib/invocation/CommandExecutor.js:79:25)
 请报告此错误。
 

复制步骤:

1。 从 https://github.com/git-ashish/cloud复制克隆 -cap-samples

2。 cd到文件夹包/书店,

3。 cds观看

4。 在Authors实体上触发PUT请求

 curl --location --request PUT'http://localhost:4004/admin/Authors(101)'\
 --header'内容类型:application/json'\
 --data-raw'{
     " ID":101,
     "名称":"艾米莉·勃朗特二世"。
 }'
 

5。 定制处理程序代码在文件中: https://github.com/git-ashish/cloud-cap-samples/blob/97c826c9c9fb2122babb802337350ea8d44f9891/packages/bookshop/srv/admin-service.js

谢谢!

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

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


你好

当尝试为实体定义自定义UPDATE处理程序时,观察到以下内部错误要求报告:

 PUT/admin/作者(101)

 日志:UPDATE {ID:101,名称:" EmilyBrontëII"。  } {id:'匿名',
   valueOf:[功能],
   toString:[功能],
   是:[功能],
   具有:[功能],
   区域设置:" en"}

 [2020-03-04T07:21:33.802Z | 错误|  1367080]:无法在数字" 1"上创建属性" *@odata.context"
 [内部错误] TypeError:无法在数字'1'上创建属性'*@odata.context'
     在SerializingCommand._addRootMetaProperty(/Users/ashish/Documents/GitHub/cloud-cap-samples/packages/bookshop/node_modules/@sap/odata-server/lib/invocation/SerializingCommand.js:164:38)
     在SerializingCommand._addContextUrl(/Users/ashish/Documents/GitHub/cloud-cap-samples/packages/bookshop/node_modules/@sap/odata-server/lib/invocation/SerializingCommand.js:144:14)
     在SerializingCommand.execute(/Users/ashish/Documents/GitHub/cloud-cap-samples/packages/bookshop/node_modules/@sap/odata-server/lib/invocation/SerializingCommand.js:92:30)
     在CommandExecutor._execute(/Users/ashish/Documents/GitHub/cloud-cap-samples/packages/bookshop/node_modules/@sap/odata-server/lib/invocation/CommandExecutor.js:79:25)
     在command.execute(/Users/ashish/Documents/GitHub/cloud-cap-samples/packages/bookshop/node_modules/@sap/odata-server/lib/invocation/CommandExecutor.js:89:30)
     在SetStatuscodeCommand.execute(/Users/ashish/Documents/GitHub/cloud-cap-samples/packages/bookshop/node_modules/@sap/odata-server/lib/invocation/SetStatuscodeCommand.js:46:13)
     在CommandExecutor._execute(/Users/ashish/Documents/GitHub/cloud-cap-samples/packages/bookshop/node_modules/@sap/odata-server/lib/invocation/CommandExecutor.js:79:25)
     在command.execute(/Users/ashish/Documents/GitHub/cloud-cap-samples/packages/bookshop/node_modules/@sap/odata-server/lib/invocation/CommandExecutor.js:89:30)
     在SetResponseHeadersCommand.execute(/Users/ashish/Documents/GitHub/cloud-cap-samples/packages/bookshop/node_modules/@sap/odata-server/lib/invocation/SetResponseHeadersCommand.js:83:9)
     在CommandExecutor._execute(/Users/ashish/Documents/GitHub/cloud-cap-samples/packages/bookshop/node_modules/@sap/odata-server/lib/invocation/CommandExecutor.js:79:25)
 请报告此错误。
 

复制步骤:

1。 从 https://github.com/git-ashish/cloud复制克隆 -cap-samples

2。 cd到文件夹包/书店,

3。 cds观看

4。 在Authors实体上触发PUT请求

 curl --location --request PUT'http://localhost:4004/admin/Authors(101)'\
 --header'内容类型:application/json'\
 --data-raw'{
     " ID":101,
     "名称":"艾米莉·勃朗特二世"。
 }'
 

5。 定制处理程序代码在文件中: https://github.com/git-ashish/cloud-cap-samples/blob/97c826c9c9fb2122babb802337350ea8d44f9891/packages/bookshop/srv/admin-service.js

谢谢!

付费偷看设置
发送
2条回答
暮风yp
1楼 · 2020-08-22 21:16.采纳回答

你好Ashish,

您发送的UPDATE查询返回受影响的行数(在您的情况下为1)。

但是,OData标准指定必须返回更新的实体。

在通用处理程序中,实体将在更新后再次读取。 我建议您在自定义更新处理程序中执行相同的操作。

最诚挚的问候,

Johannes

ZJXianG
2楼-- · 2020-08-22 20:57

感谢Johannes! 您的建议有意义并且可行!

一周热门 更多>