Master Detail Fiori应用程序中的问题

2020-09-26 02:26发布

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

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


嗨,

我正在使用WebIDE根据其中的"主详细信息"模板构建自定义的Fiori应用程序。

我们正在使用SAPUI5版本1.44.19。

一切正常,除了我们最近看到的一个问题。

在我们的方案中,我们显示人员/雇员在系统中拥有的地址列表。 当他们选择任何人时,详细信息将显示在右侧。 现在,他们可以在此处编辑或删除特定地址。

对于每条记录,主键为:-pernr,地址类型,开始日期和结束日期(因为同一员工根据有效日期可以有多个地址)

删除工作正常。 编辑也可以正常工作,除了一种情况。

编辑时,用户还可以更改记录的开始和结束日期。 (哪个是主键)

将数据发送到后端时,它将成功更新记录。 现在,更新后,应用程序还会自动进行2个调用。

1。 获取员工地址列表(在ODATA中调用getEntitySet方法)

2。 获取为其进行更新的员工记录(在ODATA中调用GetEntity方法)

当它调用第二项时,显然会失败,因为该记录的主键(日期)已更改。

我正试图找出如何避免第二次调用的方式,以便它不会尝试调用更新的记录。

还有其他建议吗?

-巴维克

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

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


嗨,

我正在使用WebIDE根据其中的"主详细信息"模板构建自定义的Fiori应用程序。

我们正在使用SAPUI5版本1.44.19。

一切正常,除了我们最近看到的一个问题。

在我们的方案中,我们显示人员/雇员在系统中拥有的地址列表。 当他们选择任何人时,详细信息将显示在右侧。 现在,他们可以在此处编辑或删除特定地址。

对于每条记录,主键为:-pernr,地址类型,开始日期和结束日期(因为同一员工根据有效日期可以有多个地址)

删除工作正常。 编辑也可以正常工作,除了一种情况。

编辑时,用户还可以更改记录的开始和结束日期。 (哪个是主键)

将数据发送到后端时,它将成功更新记录。 现在,更新后,应用程序还会自动进行2个调用。

1。 获取员工地址列表(在ODATA中调用getEntitySet方法)

2。 获取为其进行更新的员工记录(在ODATA中调用GetEntity方法)

当它调用第二项时,显然会失败,因为该记录的主键(日期)已更改。

我正试图找出如何避免第二次调用的方式,以便它不会尝试调用更新的记录。

还有其他建议吗?

-巴维克

付费偷看设置
发送
2条回答
Cikesha
1楼-- · 2020-09-26 03:03

1)您可以在用户界面中禁用开始日期/结束日期字段

2)如果没有,请在本地存储更改的日期->在调用第二项服务时,将更新的日期作为参数插入

落灬小鱼
2楼-- · 2020-09-26 02:59

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"参数。 但是,它也没有帮助。

谢谢

巴维克

一周热门 更多>