点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
我正在使用WebIDE根据其中的"主详细信息"模板构建自定义的Fiori应用程序。
我们正在使用SAPUI5版本1.44.19。
一切正常,除了我们最近看到的一个问题。
在我们的方案中,我们显示人员/雇员在系统中拥有的地址列表。 当他们选择任何人时,详细信息将显示在右侧。 现在,他们可以在此处编辑或删除特定地址。
对于每条记录,主键为:-pernr,地址类型,开始日期和结束日期(因为同一员工根据有效日期可以有多个地址)
删除工作正常。 编辑也可以正常工作,除了一种情况。
编辑时,用户还可以更改记录的开始和结束日期。 (哪个是主键)
将数据发送到后端时,它将成功更新记录。 现在,更新后,应用程序还会自动进行2个调用。
1。 获取员工地址列表(在ODATA中调用getEntitySet方法)
2。 获取为其进行更新的员工记录(在ODATA中调用GetEntity方法)
当它调用第二项时,显然会失败,因为该记录的主键(日期)已更改。
我正试图找出如何避免第二次调用的方式,以便它不会尝试调用更新的记录。
还有其他建议吗?
-巴维克
1)您可以在用户界面中禁用开始日期/结束日期字段
2)如果没有,请在本地存储更改的日期->在调用第二项服务时,将更新的日期作为参数插入
Hi A K,
1。 我们无法禁用日期,因为日期是它们可以更改的功能的一部分。
2。 现在,为了更新后端中的数据,我们仅将URL中的旧日期作为主键来发送有效负载中的更新值。 很好 唯一的问题是,更新完成后,应用程序会自动发送请求以获取更新的数据。 (我什至没有编码来更新它)。
现在,您的意思是创建另一个ODATA模型,调用服务并更新数据吗?
下面是Submit事件上要更新到后端的代码。
SPAN {font-family:" Courier New"; 字体大小:10pt; 颜色:#000000; 背景:#FFFFFF; } .L1S33 {color:#009300; } .L1S50 {color:#00008B; }
var sPath = this.getModel()。createKey(" EmployeeAddressSet",{
Pernr:oJson.Pernr,
Subty:oJson.Subty,
Endda:this._oModelData.Endda,
Begda:this._oModelData.Begda
});
this.getModel()。update("/" + sPath,oJson,{
refreshAfterChange:false,
成功:函数 (oData,响应){
//从响应
that.getModel(" AddEditAddrView")。setProperty("/img/busy",false);
that.getRouter()再次更新Json模型。 getTargets()。display(" editConfirm");
},
错误:函数fnError(oError){
that.getModel(" AddEditAddrView")。setProperty("/img/busy",false); < br>},
异步:true
});
如您所见,在成功事件上我没有做任何事情。 另外,我尝试添加值为false的" refreshAfterChange"参数。 但是,它也没有帮助。
谢谢
巴维克
一周热门 更多>