0

我正在研究SAP Fiori 中的资源锁定。更详细地说,我试图在用户登录并打开我的应用程序后锁定资源,并在他注销或注销后解锁资源。

我知道位于 main.controller.js 中的onExit()事件处理程序,如果用户执行将他注销的操作,则会调用该事件处理程序。这可以处理所有情况,除了一种情况:当用户的会话超时时。

有人知道会话时间结束后调用的方法(UI5/网关层)吗?

据我认为,如果用户的会话超时,那么在用户刷新屏幕之前什么都不会发生。此时会进行 Odata 调用以获取数据。一旦这到达网关,它就会检查并发现会话已超时并触发重新登录操作。

如我错了请纠正我。如果正确的话,有人知道这样做的事件处理程序是什么吗?

我也读了很多关于这个的内容。这属于乐观和悲观并发。我想尝试悲观的方法而不是乐观的

使用 etags 的方法。

提前感谢您的时间

此外,我不能正式发布任何代码,因为这将违反政策,但如果您有任何疑问,请随时询问,我会尽力而为 :)。另外,这更像是一项事实调查任务。

4

1 回答 1

1

您无法相信从浏览器执行的请求会发出超时信号。您最终将获得不应因连接丢失、应用程序崩溃、电池耗尽等原因而被锁定的资源。Web 应用程序的经典问题!

相反,您可以构建一个锁刷新机制。在后台每 30 秒左右刷新一次锁。如果锁被释放,请确保获取资源的最新版本!

于 2015-07-11T16:12:07.130 回答