Регистрация документов

Тема в разделе "Lotus - Программирование", создана пользователем selfar, 19 фев 2009.

  1. selfar

    selfar Гость

    Почитал форум, но "сходу" решения не нашел.
    Собственно задача вроде бы простая - реализовать регистрацию документов.
    Есть счетчик на основании которого присваивается номер и есть несколько простых условий.
    1. При одновременном использовании счетчика разными пользователями номер не должен задваиваться.
    2. Необходимо сократить (в идеале убрать) время ожидания другими пользователями пока освободиться счетчик.
    3. Желательно не использовать серверные блокировки.

    Подскажите какие могут быть решения. Спасибо.
     
  2. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    есть одно могучее решение! регистратор должен быть ОДИН! :)
     
  3. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Ночью агент регистрирует.
     
  4. selfar

    selfar Гость

    Номер должен быть сразу отображен пользователю для надписи на бумажном оригинале
     
  5. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    Вот тут немного обсуждали, да и еще где то была тема.

    Нет однозначного решения, если есть реплики базы то о сквозной нумерации по запросу(при сохранении документа) стоит забыть, если нет то обычно делают созданием некоторого файла в котором храниться счетчик, и оттуда агентом тягают значения)


    selfar
    А сколько у вас пользователей? Мб скрип получения номера из счетчика не оптимальный поэтому и повторы)
     
  6. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    У Домины база нереляционная, т.е. НЕтранзакционная.
    А задача сквозной уникальной нумерации в общем случае не разрешима
     
  7. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Ну можно попробовать вести два списка номеров. Точнее даже один дополнитеьный... первый - это основной список документов по номерам.
    Второй список - это резерв номеров... например давать пользователю возможность резервировать номер при создании документа.
    А собственно в момент резервирования проверять последний номер в основном списке и в резервном. тогда можно поробовать реализовать сквозную нумерацию
     
  8. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    Сквозную нумерацию можно обеспечить только "задним числом", когда ВСЕ (? как в этом убедиться?) док-ты соберутся в одном месте.
    Или когда они изначально ВСЕ В ОДНОМ МЕСТЕ (на одном сервере). Не и тут не выйдет... Сквозная, но не последовательная получится
     
  9. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Даже в децентрализованом варианте построения системы документооборота должно быть место где есть все документы.
    Если речь идет о децентрализированой системе - то лучше заводить "журналы регистрации" в каждом отдельном подразделении...это сократит вероятность ошибки... и там уже реализовывать методы нумерации.
     
  10. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    че не говорите, а мой метод самый лучший! один регистратор - и нет проблем :(
     
  11. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    ну не все документы можно назначить одного регистратора :(
    И, к сожалению, условия зачастую диктуются бизнесом - а не программистом
     
  12. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    та не выдумывай :rolleyes: никакое бизнес ПО не делает больше чем в нем реализовал программер ;)
    на каждый журнал регистрации (грубо говоря документ-счетчик) не более одного регистратора :rolleyes:
     
  13. selfar

    selfar Гость

    Спасибо всем за советы и идеи.

    После длительного анализа и обсуждения различных вариантов реализации был найден довольно простой, но действенный способ на основании советов от IBM.

    http://download.boulder.ibm.com/ibmdl/pub/...manceBasics.pdf

    Основная идея решения - использование механизма управления конфликтами в своих целях :).
    Вообще документ познавательный и содержит много интересных советов. Рекомендую к ознакомлению.
     
Загрузка...

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