Блокировка документа

Тема в разделе "Lotus - Программирование", создана пользователем Kizarek86, 15 авг 2008.

  1. Kizarek86

    Kizarek86 Lotus team
    Lotus team

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

    Ситуация следующая, есть 2е базы, 1бд и 2бд. между 1бд и 2бд осуществляется синхронизация при закрытии документа(по запросу пользователя и агентом). В 1бд созадана система, что при открытии документа с которым возможна синхронизация, создается документ который при синхронизациии говорит что документ занят.

    вот какие проблемы нам это несет:
    1. Документ о занятости другого создается при открытии документа (что на чтение, что на редактирование). А вот удаляется только при закрытии документа из редактирования (на событии квериклозе).И запись эта сохраняется до удаления агентом, и документ становится занятым до отработки агента, тоже в общем то решаема, но не очень приятно.
    2. Не все пользователи имеют право на удаление документов, приходится обнулять значение, что приводит к огрызкам этих документов в базе. в общем то пустяк, агентом ночным чистим, но все равно неприятно.

    прошу поделиться идеями синхронизации) и мб какие то мысли есть по даным проблемам.

    заранее благодарен.
     
  2. morpheus

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

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    queryclose срабатывает в любом случае при "нормальном" закрытии UI документа

    вот и делайте документы блокировки в другой системе, или вместо удаления документов, просто пользоваться индикаторомчто документ залочен, тоесть в документе-признаке ставить индикатор что гл. документ уже освободился
     
  3. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    а зачем вообще это все? репликацией нельзя было воспользоваться?..

    если синхронизация по типу репликации, а реплицировать нельзя, то почему бы не сделать так:

    - при открытии ставим признак, что документ заблокирован во вспомогательном документе;
    - при закрытии его снимаем;
    - при попытке синхронизации, смотрим, если документ заблокирован, то делаем ответом наш синхронизируемый документ к заблокированному документу;
    - если не заблокирован - сихнронизируем;
    - каким-то образом придумать синхронизацию ответов, которые не удалось синхронизировать ранее :)
     
  4. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    А использовать стандартную блокировку?
     
  5. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    Morpheus
    Что есть стандартная блокировка просвятите?)
     
  6. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Document locking + F1
     
  7. morpheus

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

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    kizarek
    там ( в Lock/Unlock ) тоже будут грабли по закакиванию документов. документ не залочен, а в полях врайтеров все равно стоит информация о локе
     
  8. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Это достаточно редко.
    Зато, если документ изменится на одном сервере, то на другом при попытке открыть документ выскочит сообщение, что документ был изменен.
     
  9. morpheus

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

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Medevic
    я вот пока плохо себе представляю как быть с репликами
     
  10. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    А что с ними?
     
  11. morpheus

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

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Medevic
    будет ли реплицироваться информация о Lock документа вместе с документом?
     
  12. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Поля $Writers и $WritersDate вроде бы будут реплицироваться. Но блокировкой управляет только один сервер. Поэтому при попытках заблокировать/разблокировать будет проверяться статус документа на определенном сервере.
     
  13. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    Как с локом обстоит дело вообще? если при открытии документа он блокируется, а при закрытии разблокируется, то есть ли возможность закрыть документ не разблокировав? т.е. есть ли реальная возможность закрыть документ без отработки квериклоза? закроется ли тогда документ для чтения другим юзерам? то как узнать что документ заблокирован из другой базы?
     
  14. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Есть. Кнопка Power или сбой.

    Блокируется только для редактирования.

    notesDocument.LockHolders
     
  15. morpheus

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

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    http://codeby.net/forum/threads/15154.html- штудируем


    а что именно будет и как определяться "определённый" сервер
     
  16. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Подозреваю, сервер посмотрит поле $Writers. :)
    Сервер в ACL ставится.
     
  17. morpheus

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

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    да вот недоступен административный сервер
     
  18. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    И что? Самодельная блокировка из первого поста решает эту проблему?
     
  19. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    ребята, в хэлпе все ваши вопросы описаны, что вы догадываетесь? :)

    вот кто из вас знает точно, нужны ли права на изменение дока, чтобы его заблокировать?
    а то тут чтение упоминается вовсю, но заблокировать документ от чтения можно лишь явно кодом в QueryOpen, и то только УИ! а бэкэнд?.. если, конечно, надо :)
     
  20. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Где?

    В хелпе написано, зачем же спрашивать? :)

    А разве есть задача заблокировать документ от чтения?
     
Загрузка...

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