Просмотр данных не обновляется, когда сущность обновляется в Mendix

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

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

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

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

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

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

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

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

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

И это подпись temperatureText текстовый виджет:

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

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

1 ответ

Решение

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

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

Другие вопросы по тегам