点击此处---> 群内免费提供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)中的请求数据,则只能看到密钥,并且已更改的字段将发送到后端。 为了进一步处理数据,我们还需要未更改的字段,否则我们将不得不再次从后端表中读取数据,这将是巨大的开销。
默认情况下,框架会自动为您调用getentity,但是当您通过CHANGESET_PROCESS
嗨,
处理时,我不知道这种情况。 不明白,如果显示给您的用户的数据来自BE,并且在SubmitChange之后,如果您具有对象密钥,为什么需要将请求发送给您的所有数据? 它们都是您的全部?!
问候,
约瑟夫
您可以检查http请求吗?
< p>是合并还是放置?http请求的类型为" MERGE"。
@Joseph:如果不将所有字段都发送回去,则必须重新获取后端中的某些数据,这会在处理过程中导致性能问题。
一周热门 更多>