Вот столкнулись с такой проблемой. Иногда случается, что одновременно несколько секретарей регистрируют корреспонденцию. При запуске действия считывается число для нумерации (оно хранится в родительской папке года), которое увеличивается на единицу и запоминается в конце выполнения действия. Сделано это для того, что можно было спокойно закрывать действие без регистрации корреспонденции, при это номер не изменяется.
То есть, предположим что с небольшой разницей по времени 3 секретаря запустили одно и тоже действие. На экран выводится карточка уже со считанным на предыдущем шаге номером, затем пользователи заполняют все поля, нажимают далее и только тогда запоминается номер. При этом создаются три объекта с одним и тем же номером. Использовать проверку на уникальность не получается, так как она действует только после перехода на следующий шаг действия, а пользователь заполнил все поля и назад вернуться к предыдущему шагу, чтоб изменить номер, нельзя. Да и как пользователь может знать, какой ему номер указать. Может, кто решал проблему уникальности. Поделитесь способами решения.
Уникальность значений
- Disillusioned
- Активный участник
- Сообщения: 420
- Зарегистрирован: 15 июл 2004, 15:12
- Используемое ПО: Lotsia PDM PLUS
- Откуда: Подольск
- Контактная информация:
Могу предложить осуществлять нумерацию в самом последнем шаге действия, где сначала получать очередной номер, а потом сразу его записывать. Соответственно пересечения по времени разных пользователей будут минимальными, а даже если такое и случится, то после сообщения об неуникальности значения атрибута можно будет снова нажать на кнопку "Готово" и будет получен другой очередной номер.
Или же на первом шаге получить номер текущего документа, записать значение следующего номера и сразу же выполнить Update(). Естественно, при таком подходе будут появляться "дыры" в нумерации.
Или же на первом шаге получить номер текущего документа, записать значение следующего номера и сразу же выполнить Update(). Естественно, при таком подходе будут появляться "дыры" в нумерации.
Хотя с другой стороны, получение номера для корреспонденции на последнем шаге, после заполнения всех обязательных полей не очень удобно. Иногда бывают ситуации, когда нужно получить сначала номер, а потом уже не спеша вернуться к заполнению всех полей в действии. Смысл в том, что сразу получить уникальный номер, хотя наверное, это не реально.
- Disillusioned
- Активный участник
- Сообщения: 420
- Зарегистрирован: 15 июл 2004, 15:12
- Используемое ПО: Lotsia PDM PLUS
- Откуда: Подольск
- Контактная информация:
- Alexey
- Активный участник
- Сообщения: 123
- Зарегистрирован: 21 окт 2005, 15:49
- Откуда: Белоруссия, Минск
- Контактная информация:
А что если на этапе создания формы написать, что данные номер плановый и не является итоговом, а потом на самом последнем шаге, т.е. автоматически при записи в бд обновить нумерацию, получить последний номер, сгенерировать новый (итоговый) и с таким вот номером он моментом запишется в БД, при чем предусмотреть следующий вид напоминания, запоминаем номер присвоенный вначале в свою переменную и номер который будет итоговый в другую переменную, автоматом после записи сравниваем и в случае, когда номер изменился выдаем сообщение что в итоге документ получил номер например 101. Вот такая вот идея в порядке бреда.
Ну и вторая идейка, уж точно в порядке бреда, организовать функционал резервирования номера... А вот как его реализовать надо думать, в первом приближении видится следующее, есть переменная число для нумерации, создается еще одна текстовая переменная зарезервированные номера... ой нет... это бред... дальше писать не буду... посидел покурил... подумал и понял что резервирование так сразу и не придумаешь...
Ну и вторая идейка, уж точно в порядке бреда, организовать функционал резервирования номера... А вот как его реализовать надо думать, в первом приближении видится следующее, есть переменная число для нумерации, создается еще одна текстовая переменная зарезервированные номера... ой нет... это бред... дальше писать не буду... посидел покурил... подумал и понял что резервирование так сразу и не придумаешь...
- А деньги?
- Какие деньги? - сказал Остап, открывая дверь. - Вы, кажется, спросили про какие-то деньги?
----------------------------------
SEO стало интересным
- Какие деньги? - сказал Остап, открывая дверь. - Вы, кажется, спросили про какие-то деньги?
----------------------------------
SEO стало интересным