Запрет На Дублирования Документов С Readers Полями

Тема в разделе "Lotus - Программирование", создана пользователем savl, 2 сен 2013.

  1. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    Задачку поставили:
    Необходимо предотвратить создание дубликатов документов по ряду параметров.
    Суть: не дать сохранить документ если по неким параметрам такой же уже найден в базе.
    Особенность: есть Readers поля и пользователь создающий новый документ может не видеть уже созданные.
    Собственно как быть? Есть идеи?
     
  2. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    Запускать агент на сервере под именем пользователя имеющего доступ ко всем документам
     
  3. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    на QSave по не сохраненному документу?
    как обработать результат агента?
     
  4. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Дать сохранять, но не ставить правильный статус и делать видимым только автору. Сервер периодически проверяет на дубли. Если не найдены, то ставим статус и делаем видимым. Иначе заворачиваем документ.
     
  5. Мыш

    Мыш Lotus team
    Lotus team

    Регистрация:
    12 фев 2008
    Сообщения:
    1.021
    Симпатии:
    8
    Или хранить данные, по которым дублирование недопустимо, отдельно, "в общем доступе". НО это изврат...
     
  6. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.082
    Симпатии:
    300
    через сервисный док, кот. как параметр к агенту на сервере
     
  7. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    lmike, думал об этом.

    Пока есть так:
    Категоризированная вьюха, галка don't show empty category снята.
    Очень жесткий отбор документов
    Код (LotusScript):
    Dim vals As Variant
    vals = view.GetColumnValues(0)
    If Not Isnull(Arraygetindex(vals,key)) Then
    Messagebox "Счет с таким номером уже существует", 16, "Ошибка"
    Continue = False
    Exit Sub
    End If
    Минусы подхода по мимо переполнения массива какие еще могут быть?
     
  8. Мыш

    Мыш Lotus team
    Lotus team

    Регистрация:
    12 фев 2008
    Сообщения:
    1.021
    Симпатии:
    8
    Минус тут такой - вы "светите" данные из документов, к которым доступ ограничен...
    UPD. Я к тому, что если есть вид, доступный юзеру, и содержащий ЧАСТЬ данных из документа (в категориях), то это уже не совсем секьюрненько :)
     
  9. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    Так таковых данных нет, только сообщение
     
  10. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Теоретически можно создать дубль при почти одновременном сохранении.
    Работать будет только в одной реплике.
     
  11. Мыш

    Мыш Lotus team
    Lotus team

    Регистрация:
    12 фев 2008
    Сообщения:
    1.021
    Симпатии:
    8
    С неск. репликами вообще сложно - тот же единый счетчик, скажем...
    "Мгновенный ответ" все же лучше, т.к. пользователь может сохранить "заявку на документ" и благополучно забыть про нее. А потом - когда сервер ее откажет - будет шуметь: "Что за фигня, я же все СОХРАНЯЛ!!!".
     
  12. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    да, в пределах реплики это факт, агент на сервере тоже в пределах реплики...
    может кто Api какое знает?
    Да не такой уж и изврат, создать базу индексирования и проверять там наличие документа.
    По идее быстрая проверка, с другой стороны лишняя база и лишние обращения.
     
  13. Мыш

    Мыш Lotus team
    Lotus team

    Регистрация:
    12 фев 2008
    Сообщения:
    1.021
    Симпатии:
    8
  14. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    Мыш
    Ну по факту да, это оно и есть.
    Только вот вопрос скорости разных реплик все равно открыт, общего сервера нет.
    Реплики у меня всегда узкое место будут.
     
  15. Мыш

    Мыш Lotus team
    Lotus team

    Регистрация:
    12 фев 2008
    Сообщения:
    1.021
    Симпатии:
    8
    savl, нууу, с неск. репликами засада. Теоретиццки - иметь один экземпляр базы с хэшами на некоем "главном" сервере и работать напрямую с ней из всех локаций (скажем, через RunOnServer-агент). Но это, сами понимаете, жесть некоторая.. -_-
     
  16. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Да не так сложно. Просто такими вопросами должен рулить один сервер. Или в зависимости от параметров документа определяться "рулевой" сервер.

    Мгновенный не всегда возможен. Можно сделать оповещения с результатом обработки.
    И для начала давать заполнять не весь документ целиком, а только необходимые для проверки данные.
    Короче, всё зависит от задачи. Может периодическое появление дублей не так страшно и проще обрабатывать их вручную.
     
  17. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    у нас канал Москва-Тверь, общий сервер проблематично из-за канала.
    Хотя разговоры на эту тему уже были, но все как всегда
     
  18. Мыш

    Мыш Lotus team
    Lotus team

    Регистрация:
    12 фев 2008
    Сообщения:
    1.021
    Симпатии:
    8
    savl, теоретиццки это может быть ЛЮБОЙ (даже не лотусовый) сервис, надежно доступный из обеих локаций и обеспечивающий уникальность хранящихся данных. Навскидку - пробовать писать по FTP файл с именем, соответствующим хэшу (затраты на трафик копеечные). Если файл есть - ругацца. Ну и т. п.
     
  19. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    Мыш
    Это тема, но точно изврат -_-
     
  20. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.082
    Симпатии:
    300
    не файл писать, а вебсервис для хэшей
     
Загрузка...

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