如何使用SubmitChanges()方法发送实体的不变字段

2020-09-09 09:06发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我们正在使用setPropert...

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

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


我们正在使用setProperty()方法来更改现有实体的字段。 使用setDeferredGroups()方法为批处理提交收集这些更改。 如果以后再调用SubmitChanges(),则仅将更改的字段和键提交到后端OData服务。 但是我们需要让实体的所有字段都发回后端进行处理。

这是我们收集更改的方法:

 oModel.setDeferredGroups([" myChanges"]);;
 oModel.setChangeBatchGroups({" *":{batchGroupId:" myChanges",single:false}});
 oModel.setProperty(path +"/img/DepCode1",selectEl.getSelectedKey());
 oModel.setProperty(path +"/img/DepCodeGroup1"," YCSNCS");
 

然后在中央onSave方法中提交更改的数据:

 onSave:function(oEvent){
 var that = this;
 var successHandler = function(errorEvent){
 sap.m.MessageBox.success("成功",{
 标题:"成功",
 initialFocus:null
 });
 that.getModel()。refresh(true);
 };
 var errorHandler = function(successEvent){
 sap.m.MessageBox.error("错误!",{
 标题:"成功",
 initialFocus:null
 });
 };
 var oModel = this.getView()。getBindingContext()。getModel();
 如果(oModel.hasPendingChanges()){
 oModel.submitChanges({
 成功:successHandler,
 错误:errorHandler
 });
 }
 },
 

但是,如果我们在ABAP中检查数据提供者类(/IWBEP/IF_MGW_APPL_SRV_RUNTIME〜CHANGESET_PROCESS)中的请求数据,则只能看到密钥,并且已更改的字段将发送到后端。 为了进一步处理数据,我们还需要未更改的字段,否则我们将不得不再次从后端表中读取数据,这将是巨大的开销。

4条回答
SAP砖家
2020-09-09 09:29

http请求的类型为" MERGE"。
@Joseph:如果不将所有字段都发送回去,则必须重新获取后端中的某些数据,这会在处理过程中导致性能问题。

一周热门 更多>