Блокировка сущностей

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

Под редактированием подразумевается внесение изменений хотя бы в одно из полей свойств сущности.

Блокировка разделяется на 2 типа:

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

    Записи о блокировке таких сущностей отображаются в разделе «Заблокированные записи».

    Список сущностей, к которым применяется пессимистичная блокировка:

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

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

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

    Список сущностей, к которым применяется оптимистичная блокировка: