Просмотр данных не обновляется, когда сущность обновляется в Mendix - PullRequest
1 голос
/ 26 апреля 2019

Вопрос заключается в следующем: как отобразить данные в режиме просмотра данных таким образом, чтобы при обновлении сущности происходило какое-либо обновление данных.

Это моя сущность по имени latestReading.

enter image description here

Вот моя страница LatestReading, которая показывает последние чтения. Содержит три представления данных.

enter image description here

Эта страница не вызывается напрямую, так как ожидается объект latestReading. Следовательно, выполняется микропоток с именем showLatestReadingPage, который выбирает или создает объект latestReading и передает его на страницу LatestReading и отображает страницу LatestReading.

Вот этот микропоток.

enter image description here

getOrCreateLatestReading - это микропоток, который возвращает нам объект latestReading, если он доступен, или создает новый объект latestReading, если он еще не создан, а затем возвращает его.

Вот этот микропоток.

enter image description here

Это свойства первого из трех представлений данных на странице LatestReading, как показано на диаграмме LatestReading Страница выше. Имя этого DataView: TemperatureDataView

enter image description here

Это свойства текстового виджета, который находится внутри TemperatureDataView data-view. Его зовут temperatureText. Показывает значение температуры в TemperatureDataView.

enter image description here

И это заголовок temperatureText текстового виджета:

enter image description here

Проблема в том, что другой микропоток обновляет значение latestReading, текстовый виджет не обновляется. Мне нужно перезагрузить его, нажав на навигационную ссылку на странице LatestReading еще раз.

Мне нужен мой текстовый виджет в режиме просмотра данных, чтобы обновлять значение latestReading, когда он обновляется, мой другой микропоток

1 Ответ

1 голос
/ 26 апреля 2019

Проблема в том, что «обновление в клиенте» работает только в том случае, если микропоток выполняется в том же контексте, что и страница (клиент), которую видит пользователь. Например, если на странице есть кнопка, которая запускает микропоток, который обновляет клиент, он обновит виджет. Однако, если микропоток запускается системой (например, запланированное событие), тогда эти изменения находятся в другом контексте. Также, если другой пользователь запускает обновление, он обновляет только клиент этого пользователя. Кроме того, если один пользователь вошел в систему через несколько браузеров (т.е. имеет несколько сеансов, это также означает, что для каждого сеанса существует свой пользовательский контекст.

Самым простым решением в этом случае, вероятно, будет использование виджета магазина приложений, который периодически вызывает обновление объекта, отображаемого в виде данных, например, такого: https://appstore.home.mendix.com/link/app/27/. Просто создайте нанопоток или микропоток с действием изменения, которое не изменяет атрибуты, но обновляет объект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...