2015-11-12 3 views
0

У меня возникла проблема с одновременным редактированием одной записи несколькими пользователями и потерей работы, когда другой человек сохраняет запись своей собственной работой. Я хотел бы заблокировать редактирование, когда пользователь редактирует запись, и по какой-то причине записи в NetSuite не равны только для одного доступа. Как мы можем это сделать?Как создать записи с единственным доступом Только в NetSuite

ответ

4

Вам необходимо создать собственный механизм блокировки.

  • Создать пользовательскую таблицу с идентификатором записи и временем блокировки и пользователем и временем истечения.
  • Скрипт пользовательского события, который помещает запись, время и пользователя в запись блокировки.
  • Сценарий пользовательского события, который проверяет запись блокировки при загрузке и перенаправляет другого пользователя на просмотр только экрана с сообщением (я добавляю параметр запроса к перенаправлению)
  • Клиентский сценарий, поддерживающий сохранение записи блокировки с помощью новое время истечения каждые X минут, пока пользователь все еще находится на записи.
  • Скрипт пользовательского события, который очищает запись блокировки.
  • Очистка запланированного сценария, который очищает запись блокировки с истекшим сроком хранения.
+0

Хорошо, это было то, о чем я думал, но я беспокоился об очистке замка, так как пользователь мог либо нажать кнопку «Сохранить», либо просто закрыть окно. Я не совсем уверен, как сделать этот сценарий keep-alive, но это звучит логично. Хотя я скажу, что все это кажется довольно запутанным. – John

+1

Много шагов, но вы просто касаетесь нескольких полей. Чтобы избежать проблем с временем, убедитесь, что время истечения срока хранения указано как временные метки ('new Date(). GetTime()'), а не как Netsuite datetimes. Сохранение в живых - это всего лишь стандартный клиентский javascript. Я бы, вероятно, использовал 'setInterval' в скрипте pageInit. – bknights

+0

Удивительный, спасибо! – John

Смежные вопросы