Еще Раз Уникальность

Тема в разделе "Lotus - Программирование", создана пользователем iivvnn, 13 июн 2012.

  1. iivvnn

    iivvnn Active Member

    Регистрация:
    7 сен 2011
    Сообщения:
    37
    Симпатии:
    0
    Есть база (40 тыс документов). Каждому вручную присваивается (произвольняа комбинация символов) серийный номер. Документы разделены между 4 юзерами ридерс-полями. Как лучше всего реализовать уникальность ввода этого серийника, так что бы он был уникальный на всю базу?
    Если брать вариант вьюха с сортколонкой серийника - то реализуется уникальность только по документах определенного юзера - не катит.
     
  2. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    а если присваивать автоматом?

    Формировать по-принципу формирования UNID документов?
    например: часть текущая дата время, часть реплика ID, часть рандомных символов.

    или использовать непосредственно UNID документа
     
  3. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Если категоризовать эту колонку и не взводить галку Don't show empty categories, то очень даже катит (на одном сервере).
     
  4. iivvnn

    iivvnn Active Member

    Регистрация:
    7 сен 2011
    Сообщения:
    37
    Симпатии:
    0
    Этот номер не берется с головы - это реальный серийный номер детали, который заносится в базу.
     
  5. Мыш

    Мыш Lotus team
    Lotus team

    Регистрация:
    12 фев 2008
    Сообщения:
    1.020
    Симпатии:
    8
    Не очень понятно - т.е., он реальный (написан на детали) но не уникальный? А как тогда Вы планируете сопоставлять реальные номера с занесенными в базу, если, скажем, есть 2 детали с одинаковыми реальными номерами?
     
  6. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    iivvnn
    нагенерируйте 40 к. документов номеров - и дёргайте, кто первый тот и застолбил номер.
    после чего благополучно самоудалилться док-нумератор
     
  7. iivvnn

    iivvnn Active Member

    Регистрация:
    7 сен 2011
    Сообщения:
    37
    Симпатии:
    0
    Номер реальный - на детали. В реальной жизни номер уникалный. По базе документ-детали бегает (ну и в жизни деталь) от одного юзера к второму, которые териториально находятся в разных регионах страны. Просто есть лабухи (число юзеров я сильно сократил) у которых деталь на руках (ну забыл что перемещал по системе), а в базе он ее не видит, т.к. она уже в системе у другого (ридерс-поля документа меняются). Так вот он смотря на СН детали берет и создает новый документ на эту деталь - теперь их 2 в базе. И так массово
     
  8. RAJ

    RAJ Well-Known Member

    Регистрация:
    17 янв 2007
    Сообщения:
    440
    Симпатии:
    0
    создайте документ,
    запишите в него номер,
    вызовите агента через RunOnServer (NoteID)- я думаю, сервер видит все документы
    результат проверки сервером запишите в этот документ и обработайте его после вызова агента

    P.S.: помоему гораздо лучше завести справочник продукции, который видят все
     
  9. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    iivvnn
    встаёт вопрос, а может пользователь должен видеть документ-деталь той детали которую держит в руках.

    переиначивая мой совет, зделать наооборот - каждый раз при регистрации новой детали создавать общедоступный документ-номер (если такого документа ещё нету) или отсекать юзеру пальцы (если документ-номер с таким номером уже есть в системе)

    в документе-номере хранить только номер ))
     
  10. iivvnn

    iivvnn Active Member

    Регистрация:
    7 сен 2011
    Сообщения:
    37
    Симпатии:
    0
    В общедоступном справочнике хранить перечень серийников разбивая их по видам деталей? Т.е. при создании нового док смотреть туда и смотреть есть ли такой номер?

    Добавлено:
    Он должен видеть док - только когда она у него - просто бывают случаи что по базе перемещают шустрее нежели физически.
    Т.е. для документа детали создавать совй док номер только видымый для всех?? Получается кол-во документов в базе 40к Х 2?
     
  11. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    Вам же написали что нужно делать поиск от системного пользователя (от имени сервера обычно), этот пользователь видит все документы.
    Сделать это можно через агент запускаемый на сервере, обмен данными с таким агентом осуществляется "промежуточным/временным" документом (который после проверки удаляется).

    Сделали поиск, нашли документ, нашли что он у другого пользователя, и выдали информацию "Что этот документ Васи Пупкина, свяжись с ним чтобы в базе он тебе передал его..." и красота)
     
  12. Мыш

    Мыш Lotus team
    Lotus team

    Регистрация:
    12 фев 2008
    Сообщения:
    1.020
    Симпатии:
    8
    Да это не страшно, в общем - при условии, что база не будет сильно расти. Делаем простейшие доки-номера, скрытый вид, отбирающий только их, при проверке наличия серийника по нему делаем @Dblookup... А ведь можно вынести доки-номера и в отдельную базу...
     
  13. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    iivvnn
    Вы это читали/пробовали?
     
Загрузка...

Поделиться этой страницей