在智能表中提交更改

2020-08-15 23:09发布

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

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


你好

在我的项目中,我正在从Excel文件中将数据导入智能表中。

我的智能表是可编辑的,但是当我尝试提交更改时,什么也没有发生,并且没有批处理调用。

这是我的智能表,看起来像:

结束,这是我的保存功能:显示敬酒消息,但什么也没有发生。 即使我看到网络,也什么也没发生

 onSave:function(){
 var oModel = that.byId(" smartTab")。getModel();
 oModel.setUseBatch(true);
 that._setBusy(true);
 var fnSuccess =函数(数据,响应){
 that._setBusy(false);
 var sMessage = that._getText(" changesSentMessage");
 MessageToast.show(sMessage);
 that._setUIChanges(false);
 };
 var fnError =函数(e){
 that._setBusy(false);
 that._setUIChanges(false);
 MessageBox.error(e.message);
 };
 oModel.submitChanges({
 成功:fnSuccess,
 错误:fnError
 });
 that._bTechnicalErrors = false;
 },
 

(21.6 kB)

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

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


你好

在我的项目中,我正在从Excel文件中将数据导入智能表中。

我的智能表是可编辑的,但是当我尝试提交更改时,什么也没有发生,并且没有批处理调用。

这是我的智能表,看起来像:

结束,这是我的保存功能:显示敬酒消息,但什么也没有发生。 即使我看到网络,也什么也没发生

 onSave:function(){
 var oModel = that.byId(" smartTab")。getModel();
 oModel.setUseBatch(true);
 that._setBusy(true);
 var fnSuccess =函数(数据,响应){
 that._setBusy(false);
 var sMessage = that._getText(" changesSentMessage");
 MessageToast.show(sMessage);
 that._setUIChanges(false);
 };
 var fnError =函数(e){
 that._setBusy(false);
 that._setUIChanges(false);
 MessageBox.error(e.message);
 };
 oModel.submitChanges({
 成功:fnSuccess,
 错误:fnError
 });
 that._bTechnicalErrors = false;
 },
 

(21.6 kB)
付费偷看设置
发送
5条回答
CPLASF-自律
1楼-- · 2020-08-15 23:32

您好Ibtissem,

请检查是否通过函数oModel.hasPendingChanges()收集了更改

或oModel.getPendingChanges()。

如果待处理的更改已收集了您所做的更改,则onsubmitChanges最好触发后端调用。

如果未收集到任何更改,则表绑定不是双向的,或者根本没有绑定到模型。

谢谢

Prashil

四川大学会员
2楼-- · 2020-08-15 23:39

你好

因此无法使用SubmitChanges吗?

谢谢您

compass1988
3楼-- · 2020-08-15 23:25

您好,谢谢您的回复。

在我的项目中,我正在使用带有json模型的智能表。 当我使用hasPendingChanges时,我会出错。

这是我的代码,我如何将数据绑定到智能表并起作用。

 var oModelMNA = new sap.ui.model.json.JSONModel();
 oModelMNA.setData(json);
 that.getView()。setModel(oModelMNA," oModelMNA");
 var oTable = oSmartTab.getTable();
 var aColumns = oTable.getColumns();
 对于(var m = 0; m /");
 var d = oSmartTab.getModel()。getPendingChanges(); 

d viariable变空了。

我的模型是TwoWay绑定。

我之所以尝试使用本教程,是因为需要在智能表格中显示excel文件。

https://blogs .sap.com/2019/06/26/enable-crud-operations-in-smart-table-sapui5/

谢谢你

吹牛啤
4楼-- · 2020-08-15 23:31

嗨,伊比西森,

由于您使用的是JSONModel,因此很明显不会进行任何网络调用。 JSONModel是一种客户端模型,这意味着它将在浏览器端构建,并且与后端没有任何连接。 由于双向绑定,所做的任何更改都将直接更新为JSONModel数据,这就是您始终将待处理的更改视为false的原因。

我希望它能澄清您的问题。

谢谢

普拉西尔(prashil)

Doze时光
5楼-- · 2020-08-15 23:21

嗨Ibtissem,

submitChanges对于oDataModel是合乎逻辑的工作。

简而言之,oDataModel驻留在服务器端模型上,当您对绑定到oDataModel的数据进行更改时,更改将在上下文中收集,并且当您执行SubmitChange时,它将把这些更改发送到后端系统。/p>

JSONModel,通常不需要所有这些步骤,它将立即更新您的JSONModel。

谢谢

芦苇

一周热门 更多>