使用odata V4时如何获取创建的对象

2020-09-20 08:40发布

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

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


嗨,

我目前正在尝试确定oData v4模型实现是否符合我们的需求/要求,但是我已经在努力添加新实体。 创建成功后,即使可以看到服务器在其响应中包括该对象,也无法获取返回的对象。

我试图按照已探究,但我无法使其正常工作。

我的代码如下:

 var oContext = this.getView()。byId(" mainmenulist")。getBinding(" items")
                 .create(oMainMenuItem); 

后记,我正在尝试访问此新创建的记录。

 oContext.created()。then(function(){
                 oDialog.close();
                 MessageBox.alert("创建的主菜单项的ID为" + oContext.getProperty(" id")+"。",{
                     图标:MessageBox.Icon.SUCCESS,
                     标题:"成功"
                 });
             },函数(oError){
                 oDialog.close();
                 MessageBox.alert("无法创建主菜单项:" + oError.message,{
                     图标:MessageBox.Icon.ERROR,
                     标题:"错误"
                 });
             }); 

但是我总是不断收到错误消息"无法深入到-1/id,无效的段:id"。

我在做什么错了?

感谢帮助,

橄榄

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

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


嗨,

我目前正在尝试确定oData v4模型实现是否符合我们的需求/要求,但是我已经在努力添加新实体。 创建成功后,即使可以看到服务器在其响应中包括该对象,也无法获取返回的对象。

我试图按照已探究,但我无法使其正常工作。

我的代码如下:

 var oContext = this.getView()。byId(" mainmenulist")。getBinding(" items")
                 .create(oMainMenuItem); 

后记,我正在尝试访问此新创建的记录。

 oContext.created()。then(function(){
                 oDialog.close();
                 MessageBox.alert("创建的主菜单项的ID为" + oContext.getProperty(" id")+"。",{
                     图标:MessageBox.Icon.SUCCESS,
                     标题:"成功"
                 });
             },函数(oError){
                 oDialog.close();
                 MessageBox.alert("无法创建主菜单项:" + oError.message,{
                     图标:MessageBox.Icon.ERROR,
                     标题:"错误"
                 });
             }); 

但是我总是不断收到错误消息"无法深入到-1/id,无效的段:id"。

我在做什么错了?

感谢帮助,

橄榄

付费偷看设置
发送
4条回答
compass1988
1楼-- · 2020-09-20 08:56

嗨,奥利弗,

在成功完成POST后,OData V4模型仅更新新创建实体的* selected *属性。 因此,您的问题可能是您没有选择" id"。 可能的原因

(1)您为this.getView()。byId(" mainmenulist")。getBinding(" items")指定一个不包含" id"的$ select绑定参数

(2),您已打开 auto- $ expand/$ select ,但是用户界面没有与实体的" id"绑定,因此自动生成的$ select不包含" id"。

此致,
帕特里克

95年老男孩
2楼-- · 2020-09-20 08:51

嗨,马蒂亚斯,

使用更新版本的UI5突然起作用,问题已解决。

对不起,您不进行举报。

此致

Oliver

何必丶何苦呢
3楼-- · 2020-09-20 08:50

我遇到了同样的问题,原因是" id"是在后端自动生成的,因此不应包含在POST的实体中。 但这也是原因,因为我们在访问新创建的ID时遇到了问题,该ID包含在.created方法的响应中。

DafaDDDa
4楼-- · 2020-09-20 08:49

在我的情况下,情况相同。 该ID是在数据库服务器的后端自动创建的。

有解决方案吗?

一周热门 更多>