2016-05-22 2 views
1

У меня есть приложение, которое отправляет данные на мой сервер (базу данных).Как обновить модель Odata

В пользовательском интерфейсе другое приложение, данные потребляются с использованием модели ODATA.

Если в базе данных есть какие-либо вставки/обновления, я хочу, чтобы изменения автоматически отражались в пользовательском интерфейсе, без необходимости нажимать f5 каждый раз.

Как я могу это достичь?

Спасибо!

+0

Вы хотите обновить один вид изменений базы данных? – Dopedev

+0

@Dopedev Да, я хочу обновить один вид. – user12

+0

@Dopedev, я пробовал подход к шине событий, но он не работает, когда шина событий используется из двух разных приложений. – user12

ответ

1

К сожалению, у 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

Смежные вопросы