oData V4创建实体

2020-09-08 05:55发布

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

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


嗨,

如何在没有现有ListBinding的情况下使用oData V4模型创建新实体?

我有一个SimpleForm,想根据输入的信息创建一个新实体。

所以我尝试手动创建ListBinding,因为这似乎是通过create()方法创建新的enitty的唯一方法。

 var oListBinding = oModel.bindList("/img/Templates");
 var oContext = oListBinding
     .create({" id":" 1"}); 

但是什么都没有发送到后端。

我在做什么错了?

我发现的所有示例都是基于控件被绑定并使用了这样的语法

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

谢谢

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

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


嗨,

如何在没有现有ListBinding的情况下使用oData V4模型创建新实体?

我有一个SimpleForm,想根据输入的信息创建一个新实体。

所以我尝试手动创建ListBinding,因为这似乎是通过create()方法创建新的enitty的唯一方法。

 var oListBinding = oModel.bindList("/img/Templates");
 var oContext = oListBinding
     .create({" id":" 1"}); 

但是什么都没有发送到后端。

我在做什么错了?

我发现的所有示例都是基于控件被绑定并使用了这样的语法

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

谢谢

付费偷看设置
发送
4条回答
DafaDDDa
1楼-- · 2020-09-08 06:34

Mathias,您好

谢谢,我现在可以使用它了,添加实体效果很好。

但是不幸的是,由于错误部分从未执行,因此我无法处理潜在的错误。

 var oListBinding = oModel.bindList("/img/Templates",undefined,undefined,undefined,{$$ updateGroupId:" AddTemplate"});
             var oContext = oListBinding
                 。创造({
                     " global_tool_id":odd_tools.getSelectedKey(),
                     " template_name":otxt_template_name.getValue()
                 });

             oContext.created()。then(
                 函数(){
                     MessageBox.alert(oView.getModel(" i18n")。getResourceBundle()。getText('AddTemplateSuccessMessage')+''oContext.getProperty(" id")+"。",{
                         图标:MessageBox.Icon.SUCCESS,
                         标题:oView.getModel(" i18n")。getResourceBundle()。getText('Success')
                     });
                 },函数(oError){
                     console.log(" oError");
                     console.log(oError);
                     MessageBox.alert(oView.getModel(" i18n")。getResourceBundle()。getText(oError.message),{
                         图标:MessageBox.Icon.ERROR,
                         标题:oView.getModel(" i18n")。getResourceBundle()。getText('Error')
                     });
                 });
             oModel.submitBatch(" AddTemplate")。then(resetBusy,resetBusy); 
Violet凡
2楼-- · 2020-09-08 06:43

您已经有了这个答案吗? 如果您可以分享您的解决方案,我也会遇到类似的问题。 谢谢

哎,真难
3楼-- · 2020-09-08 06:43

您好,奥利弗,

仅当提交相应的 updateGroup 时,才会创建请求。 请参阅

演示套件中的销售订单示例作为示例,说明如何处理新记录的创建。 用户保存时,该请求将发送到后端。

 onSaveSalesOrder:function(){
     this.submitBatch(" SalesOrderUpdateGroup");
   },
 /**
    *在视图锁定时提交给定的批处理组。
    *
    * @param {string} sGroupId
    *组ID
    */
   SubmitBatch:函数(sGroupId){
    var oView = this.getView();
    函数resetBusy(){
     oView.setBusy(false);
    }
    oView.setBusy(true);
    oView.getModel()。submitBatch(sGroupId).then(resetBusy,resetBusy);
   }
 

最诚挚的问候
Mathias。

hengyuye
4楼-- · 2020-09-08 06:34

你好奥利弗,

您能告诉我如何使用oData v4创建实体吗? 如果可能没有Listbinding,因为我没有列表。 我使用两个输入字段来创建新实体。
非常感谢!

一周热门 更多>