如何刷新Odata模型
How to Refresh Odata Model
我有一个应用程序将数据发送到我的后端(数据库)。
在另一个应用程序的UI中,使用ODATA模型消耗数据。
当数据库中有任何 insert/update 时,我希望更改自动反映在 UI 中,而不必每次都按 f5。
我怎样才能做到这一点?
谢谢!
遗憾的是,OData 无法将数据从生产者推送到消费者,因此您必须实施一种轮询形式。
我同意让用户手动执行此操作并不好。相反,您可以通过指示您的应用程序读取可能更改的数据,例如自动为您的用户完成此操作。每秒:
setInterval(function() {
oModel.read('/EntityChangedByTheOtherApp');
}, 1000);
或者,您可以打开一个与服务器的网络套接字(例如 ABAP 推送通道),并让服务器在第一个应用程序进行更改时通知您的应用程序。这可以防止您的应用程序不得不不断刷新未更改的数据。 SCN 上有一篇很好的博客详细解释了这个技巧:http://scn.sap.com/community/abap/connectivity/blog/2014/06/20/enabling-real-time-bidirectional-client-server-communication-using-abap-push-channel
我有一个应用程序将数据发送到我的后端(数据库)。
在另一个应用程序的UI中,使用ODATA模型消耗数据。
当数据库中有任何 insert/update 时,我希望更改自动反映在 UI 中,而不必每次都按 f5。
我怎样才能做到这一点?
谢谢!
遗憾的是,OData 无法将数据从生产者推送到消费者,因此您必须实施一种轮询形式。
我同意让用户手动执行此操作并不好。相反,您可以通过指示您的应用程序读取可能更改的数据,例如自动为您的用户完成此操作。每秒:
setInterval(function() {
oModel.read('/EntityChangedByTheOtherApp');
}, 1000);
或者,您可以打开一个与服务器的网络套接字(例如 ABAP 推送通道),并让服务器在第一个应用程序进行更改时通知您的应用程序。这可以防止您的应用程序不得不不断刷新未更改的数据。 SCN 上有一篇很好的博客详细解释了这个技巧:http://scn.sap.com/community/abap/connectivity/blog/2014/06/20/enabling-real-time-bidirectional-client-server-communication-using-abap-push-channel