Уникальность значений

Здесь обсуждаем систему TDM/PDM/Workflow Lotsia PDM PLUS (PartY PLUS).
Ответить
Аватара пользователя
Анна
Участник
Сообщения: 27
Зарегистрирован: 13 июн 2007, 10:32

Уникальность значений

Сообщение Анна »

Вот столкнулись с такой проблемой. Иногда случается, что одновременно несколько секретарей регистрируют корреспонденцию. При запуске действия считывается число для нумерации (оно хранится в родительской папке года), которое увеличивается на единицу и запоминается в конце выполнения действия. Сделано это для того, что можно было спокойно закрывать действие без регистрации корреспонденции, при это номер не изменяется.
То есть, предположим что с небольшой разницей по времени 3 секретаря запустили одно и тоже действие. На экран выводится карточка уже со считанным на предыдущем шаге номером, затем пользователи заполняют все поля, нажимают далее и только тогда запоминается номер. При этом создаются три объекта с одним и тем же номером. Использовать проверку на уникальность не получается, так как она действует только после перехода на следующий шаг действия, а пользователь заполнил все поля и назад вернуться к предыдущему шагу, чтоб изменить номер, нельзя. Да и как пользователь может знать, какой ему номер указать. Может, кто решал проблему уникальности. Поделитесь способами решения.
Аватара пользователя
Disillusioned
Активный участник
Сообщения: 420
Зарегистрирован: 15 июл 2004, 15:12
Используемое ПО: Lotsia PDM PLUS
Откуда: Подольск
Контактная информация:

Сообщение Disillusioned »

Могу предложить осуществлять нумерацию в самом последнем шаге действия, где сначала получать очередной номер, а потом сразу его записывать. Соответственно пересечения по времени разных пользователей будут минимальными, а даже если такое и случится, то после сообщения об неуникальности значения атрибута можно будет снова нажать на кнопку "Готово" и будет получен другой очередной номер.
Или же на первом шаге получить номер текущего документа, записать значение следующего номера и сразу же выполнить Update(). Естественно, при таком подходе будут появляться "дыры" в нумерации.
Аватара пользователя
Анна
Участник
Сообщения: 27
Зарегистрирован: 13 июн 2007, 10:32

Сообщение Анна »

Наверное, первый вариант более оптимальный. Надо посмотреть, что можно сделать. Спасибо.
Аватара пользователя
Анна
Участник
Сообщения: 27
Зарегистрирован: 13 июн 2007, 10:32

Сообщение Анна »

Хотя с другой стороны, получение номера для корреспонденции на последнем шаге, после заполнения всех обязательных полей не очень удобно. Иногда бывают ситуации, когда нужно получить сначала номер, а потом уже не спеша вернуться к заполнению всех полей в действии. Смысл в том, что сразу получить уникальный номер, хотя наверное, это не реально.
Аватара пользователя
Disillusioned
Активный участник
Сообщения: 420
Зарегистрирован: 15 июл 2004, 15:12
Используемое ПО: Lotsia PDM PLUS
Откуда: Подольск
Контактная информация:

Сообщение Disillusioned »

Если не допускаются "дыры" в нумерации, то, пожалуй, нереально.
Аватара пользователя
Alexey
Активный участник
Сообщения: 123
Зарегистрирован: 21 окт 2005, 15:49
Откуда: Белоруссия, Минск
Контактная информация:

Сообщение Alexey »

А что если на этапе создания формы написать, что данные номер плановый и не является итоговом, а потом на самом последнем шаге, т.е. автоматически при записи в бд обновить нумерацию, получить последний номер, сгенерировать новый (итоговый) и с таким вот номером он моментом запишется в БД, при чем предусмотреть следующий вид напоминания, запоминаем номер присвоенный вначале в свою переменную и номер который будет итоговый в другую переменную, автоматом после записи сравниваем и в случае, когда номер изменился выдаем сообщение что в итоге документ получил номер например 101. Вот такая вот идея в порядке бреда.
Ну и вторая идейка, уж точно в порядке бреда, организовать функционал резервирования номера... А вот как его реализовать надо думать, в первом приближении видится следующее, есть переменная число для нумерации, создается еще одна текстовая переменная зарезервированные номера... ой нет... это бред... дальше писать не буду... посидел покурил... подумал и понял что резервирование так сразу и не придумаешь...
- А деньги?
- Какие деньги? - сказал Остап, открывая дверь. - Вы, кажется, спросили про какие-то деньги?
----------------------------------
SEO стало интересным
Аватара пользователя
Анна
Участник
Сообщения: 27
Зарегистрирован: 13 июн 2007, 10:32

Сообщение Анна »

Alexey, спасибо. Ваша идея в принципе тоже реализуется на последнем шаге. Может действительно решать именно таким образом проблему, не брать во внимание, что пользователи привыкли к определенному поярдку. Надо будет подумать.
Ответить