Цитата:
Сообщение от
glibs
Если речь идет об автоматическом снятии "зависшей" блокировки, то лучше посмотреть соответствующий механизм, который реализован в непрерывных номерных сериях (там используется идентификатор сессии и еще что-то (не помню уже)).
...
Куда проще смотреть все таки в складские журналы. Там и есть как блокировка от входа в журнал (изменения), так и автоматическая разблокировка в том случае если сессия померла.
блондинка,
Журналы то это одно - там отдельная форма строк, открытие которой можно заблокировать. А вот форма заказов совсем другая. Представьте себе что имеем 10 заказов. Один пользователь на 1м. Второй на 10м. И начинают они "бежать" (с помощью стрелочек на клавиатуре) по гриду - первый - вниз, второй - вверх.
Что происходит в районе примерно 5го по счету заказа если они одновременно на нем "остановились"?
Вы вообще думали о той бизнес-логике которая должна при этом отрабатывать? Для каждого пользователя:
1. Перечитать запись из БД.
2. Проверить флаг
а. Блокирован - блокируем заказ от изменения текущим пользователем (строки + все кнопки)
б. Не блокирован - обновляем в транзакции флаг в заказе. Перечитываем запись в датасорс. Можем осуществлять работу с заказом.
3. Ушли с этого заказа - обновить запись в БД., разбликировать строки и кнопки ... и далее на п.1
Короче, бред....
А кроме обычной формы заказов есть форма "Строки открытых заказов" (или как она там называется... Аксапты под рукой нет). Там такую же хрень реализовывать?