2016-05-22 14 views
1

Ich habe eine Anwendung, die die Daten an mein Back-End (Datenbank) sendet.So aktualisieren Sie Odata Model

In UI eine andere Anwendung, die Daten werden mit ODATA-Modell verbraucht.

Immer wenn eine Datenbank eingefügt/aktualisiert wird, möchte ich, dass die Änderungen automatisch in der Benutzeroberfläche angezeigt werden, ohne dass Sie jedes Mal f5 drücken müssen.

Wie kann ich das erreichen?

Danke!

+0

Möchten Sie Einzelansicht für Datenbankänderungen aktualisieren? – Dopedev

+0

@Dopedev Ja Ich möchte Einzelansicht aktualisieren. – user12

+0

@Dopedev, ich versuchte den Ansatz von Event-Bus, aber es funktioniert nicht, wenn der Event-Bus aus zwei verschiedenen Anwendungen verwendet wird – user12

Antwort

1

Leider hat OData keine Möglichkeit, Daten vom Hersteller zum Verbraucher zu übertragen, daher müssen Sie eine Form des Pollings implementieren.

Ich stimme zu, dass es nicht schön ist, den Benutzer das manuell zu tun. Stattdessen können Sie dies automatisch für Ihren Benutzer erledigen lassen, indem Sie Ihre Anwendung anweisen, die möglicherweise geänderten Daten zu lesen, z. jede Sekunde:

setInterval(function() { 
     oModel.read('/EntityChangedByTheOtherApp'); 
    }, 1000); 

Alternativ Sie einen Web-Buchse mit dem Server (zum Beispiel ABAP Push-Kanal) und haben den Server öffnen könnten Ihre Anwendung zu benachrichtigen, wenn der erste Antrag eine Änderung vorzunehmen. Dies verhindert, dass Ihre App die unveränderten Daten kontinuierlich aktualisieren muss. Es gibt ein nettes Blog auf SCN, das diesen Trick im Detail erklärt: http://scn.sap.com/community/abap/connectivity/blog/2014/06/20/enabling-real-time-bidirectional-client-server-communication-using-abap-push-channel

Verwandte Themen