AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.09.2019, 15:02   #1  
БАХ43 is offline
БАХ43
Участник
 
92 / 54 (2) ++++
Регистрация: 15.02.2013
Адрес: г.Москва, г. Зеленоград
Активная форма пользователей
DAX2009.
Есть табличка и привязанная к ней форма. Как сделать, чтобы при обновлении данных в таблице (update) любым пользователем - у всех пользователей, у которых эта форма активна, она обновилась.
Можно, конечно, привязать обновление к setTimeOut или просто пользователям сказать чтобы F5 постоянно жали, но хотелось бы чтобы реалтайм и все красиво...
__________________
Я прибыл к вам из Кантемировской дивизии. А там, как известно, дураков не держат!
Старый 05.09.2019, 15:55   #2  
axm2017 is offline
axm2017
Участник
 
1,917 / 313 (14) ++++++
Регистрация: 15.05.2017
Задание некорректно сформулировано на мой взгляд.
В чем необходимость принудительного обновления данных?
Оповещение о том что данные изменились - нормально и решается с помощью различных eventов вполне аккуратно.
Старый 05.09.2019, 17:10   #3  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Ну, представьте себе, что Вы добились чего хотели. Форма обновляется.

1. Пользователь начал что-то изменять на форме. Но тут форма обновилась. Все то, что он вводил - удалилось. Надо начинать заново
2. Пользователь просто смотрит список. Но тут форма обновилась. Скорее всего, весь список "передернулся". Т.е. та строка на которую пользователь смотрел, скорее всего, куда-то уедет. Надо искать ее заново

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

Т.е. в данном случае надо начать с вопроса "зачем?". Что именно хотят получить пользователи от такого автообновления и нельзя ли это реализовать как-то по другому? Какие проблемы будут если пользователь своевременно не увидит обновление, сделанное другим пользователем? Насколько критичны эти проблемы? Ну, и т.д. и т.п.

В общем, сама постановка задачи не корректная, что и надо постараться донести до пользователей
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
За это сообщение автора поблагодарили: S.Kuskov (2), Pandasama (1).
Старый 06.09.2019, 10:55   #4  
БАХ43 is offline
БАХ43
Участник
 
92 / 54 (2) ++++
Регистрация: 15.02.2013
Адрес: г.Москва, г. Зеленоград
Поясняю смысл.
Есть сотрудники склада - грузчики, кладовщики, штабелерщики. Они выполняют разные работы - комплектация, погрузка, разгрузка, перемещение, пополнение, пересчет, проверка ячеек и т.д. Это делается через ТСД и данные, что сделал сотрудник в этот момент времени будут обновляться в этой таблице. Есть старший смены, старший оператор, начальник и помощник начальника склада, директор и прочие руководители. У них есть компьютеры. Они хотят видеть чем занимаются сотрудники. Но не всегда есть возможность подойти близко к компу. Например у старшего смены нужно обойти стойку, а экран видно за 2-3 метра. Я разные виды работ раскрашу разными цветами и издалека будет видно что почем.
Да, эта форма только для отображения. И сотрудников 20-25, так что будет видно в пределах одного экрана.
Хотя, действительно, может не заморачиваться, сделать автообновление раз в минуту... Просто интересно само понимание, можно так сделать или нет?
__________________
Я прибыл к вам из Кантемировской дивизии. А там, как известно, дураков не держат!

Последний раз редактировалось БАХ43; 06.09.2019 в 11:10.
Старый 06.09.2019, 12:52   #5  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,322 / 3547 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от БАХ43 Посмотреть сообщение
Просто интересно само понимание, можно так сделать или нет?
Делали такое на разных проектах в разных версиях. Условия были такими:
1. Форма, которая отображает данные должна иметь один датасорс в виде одной таблицы с кучей полей, т.е. без джойнов (они тормозят). Данные доступны только для чтения.
2. (для AX2012 и D365) крайне желательно исключить всякие Reference Group - это по сути те же джойны
3. Форма должна быть не нагружена контролами, т.е. условно - один грид и все. Пара кнопок - максимум
4. Периодическая операция, обновляющая данные - должна выбирать на обновление записи с пессимистической блокировкой (select pessimisticlock myTable)
5. На форме при ее открытии, нужно вызвать setTimeOut, который обновляет данные раз в некий период.

Где это применялось:
- Отчет ДДС для роли финконтролера банка
- Перечень работ - кто чем в данную минуту занимается.

Цветовой подкраской активно пользовались, т.к. сотруднику, мониторящему, к примеру, денежный поток - нужно было оперативно видеть картину остатков по счетам и цветом видеть уменьшающиеся остатки, а также уход в овердрафт. А в перечне работ цветом выделялись срочные, внеплановые (и еще по классификации) работы
__________________
Возможно сделать все. Вопрос времени
Старый 06.09.2019, 13:00   #6  
axm2017 is offline
axm2017
Участник
 
1,917 / 313 (14) ++++++
Регистрация: 15.05.2017
Цитата:
Сообщение от БАХ43 Посмотреть сообщение
...
Да, эта форма только для отображения. И сотрудников 20-25, так что будет видно в пределах одного экрана.
... Просто интересно само понимание, можно так сделать или нет?
Сделать можно много чего вопрос в инструменте и зачем.
Зачем ок понятно а вот почему именно в аксапте как инструмент? почему к примеру не Excel или web страница?

Последний раз редактировалось axm2017; 06.09.2019 в 13:09.
Старый 06.09.2019, 14:38   #7  
БАХ43 is offline
БАХ43
Участник
 
92 / 54 (2) ++++
Регистрация: 15.02.2013
Адрес: г.Москва, г. Зеленоград
Цитата:
Сообщение от axm2017 Посмотреть сообщение
Зачем ок понятно а вот почему именно в аксапте как инструмент? почему к примеру не Excel или web страница?
Потому что все данные по работе сотрудников идут через аксапту. У каждого сотрудника свой терминал сбора данных. В нем из Аксапты берутся данные, что сотруднику надо сделать. Он делает и подтверждает. Данные о подтверждении уходят
обратно в Аксапту. Вы предлагаете на ТСД еще Эксель поставить? Или из Аксапты в реалтайме данные в эксель передавать?
__________________
Я прибыл к вам из Кантемировской дивизии. А там, как известно, дураков не держат!
Старый 06.09.2019, 14:46   #8  
БАХ43 is offline
БАХ43
Участник
 
92 / 54 (2) ++++
Регистрация: 15.02.2013
Адрес: г.Москва, г. Зеленоград
Цитата:
5. На форме при ее открытии, нужно вызвать setTimeOut, который обновляет данные раз в некий период.
Это я и сам знаю. Вопрос был другой.
Ладно, не буду заморачиваться, сделаю через setTimeOut.
Вопрос закрыт.
__________________
Я прибыл к вам из Кантемировской дивизии. А там, как известно, дураков не держат!
Старый 06.09.2019, 15:17   #9  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от БАХ43 Посмотреть сообщение
Вы предлагаете на ТСД еще Эксель поставить?
Не, если только отображение, то задействовать какую-нибудь Grafana с выводом на большой экран - у нас начальники цехов от таких красивых картинок в восторге.
Старый 06.09.2019, 17:19   #10  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от БАХ43 Посмотреть сообщение
Вопрос был другой.
Ладно, не буду заморачиваться, сделаю через setTimeOut.
Подозреваю, что по другому и не получится.

Альтернатива - это тот, кто проводил изменения подает сигнал (или команду) о необходимости обновления (другой клиент или SQL).

Со стороны SQL - не знаю. Может ли SQL напрямую управлять Axapta ?
Со стороны другого клиента - это Business Connector. Правда, какое-то "тяжелое" решение и масса сопутствующих вопросов возникает.

Теоретически, можно еще попробовать вписаться с системные периодически автоопросы. Ну, вроде обновления кеша для таблиц с режимом кеширования Entire Table. Но это не очень хорошее решение в виду слабой управляемости и слабой же предсказуемости результата.
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Можно ли программно определить, какая форма активная? Dima_Dima DAX: Программирование 17 19.09.2014 08:55
Форма активных пользователей (SysUsersOnline) и сессии COM-коннектора gl00mie DAX: Программирование 6 28.11.2009 11:45
SysSQLBlockingMSSQL - форма Блокировки пользователей базы данных DenisS DAX: Программирование 6 18.08.2009 17:23
Настройка форм для групп пользователей Андре DAX: Администрирование 3 17.10.2004 10:59
Настройка форм для групп пользователей Роман Кошелев DAX: Функционал 14 05.08.2002 16:32

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 08:12.