1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Параллельная работа с документом

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

  1. sanch

    sanch Well-Known Member

    Репутация:
    0
    Регистрация:
    17 июл 2006
    Сообщения:
    215
    Симпатии:
    0
    Доброго времени суток!
    В общем проблема известная: если больше 1-го юзера пытаются работать с одним доком, то в итоге изменения сохранятся от последнего. При чем документ не находится в режиме редактирования, все изменения делает скрипт.
    Кто сталкивался с таким, подскажите плз варианты решения, кроме галки "Alow document locking" :P, теряется весь смысл параллельности.
    ЗЫ Складывается такое впечатление что когда юзер открыл док ему все данные загрузились в что то типа кеша, и как не старайся кеш проапдейтится только после повторного открытия. Ибо раньше получал notesdocument через notesUIdocument? думал проблема решится если получить через db.getdocumentbyID, а нифига :(
    В общем заранее благодарен
     
  2. morpheus

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

    Репутация:
    0
    Регистрация:
    7 авг 2006
    Сообщения:
    3.915
    Симпатии:
    1
    чтото не совсем понял что собственно надо?
    не дать возможность паралельного редактирования? ну так проде Lock справляеться ( если документ один и нет цепочки - то всё просто )

    ?
     
  3. sanch

    sanch Well-Known Member

    Репутация:
    0
    Регистрация:
    17 июл 2006
    Сообщения:
    215
    Симпатии:
    0
    Нет, как раз наоборот дать возможность параллельного радактирования
     
  4. Sandr

    Sandr Гость

    Репутация:
    0
    Делайте по копии документа каждому пользователю, при этом к оснолвному документу доступа не давайте. После того как все пользователи сделают все что надо - обновляйте данные в основном документе, а копию прибивайте...
     
  5. morpheus

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

    Репутация:
    0
    Регистрация:
    7 авг 2006
    Сообщения:
    3.915
    Симпатии:
    1
    Sandr
    Да, поддерживаю... делать просто ответные документы... ну адальше остаёться решить чьи изменения главнее, тут или по дате или по иерархии или всё вместе )))
     
  6. Sandr

    Sandr Гость

    Репутация:
    0
    Ответные зачем? Пусть себе будут обыкновенными.. по той же форме.. просто пусть хранят в себе признак кто у них главный...
     
  7. sanch

    sanch Well-Known Member

    Репутация:
    0
    Регистрация:
    17 июл 2006
    Сообщения:
    215
    Симпатии:
    0
    Не совсем понял, как это делать по копии ?
     
  8. Sandr

    Sandr Гость

    Репутация:
    0
    Допустим, есть у нас процесс паралельного согласования документа.
    Документ поступает на согласование, в нем есть список согласуюих, создали для каждого из согласующих по документу, скопировали в него все итемы из основного документа, сделали их там редакторами, дали возможность выносить решение.. добавлять комментарии и т.д.
    Согласубщие работают каждый со своим документом.

    Пишем шедульный агентик, который запускаетс якаждые пять минут и смотрит документы, в которых согласующий уже вынес решение и больше не будет с ним работать.
    Взяли оттуда даннеы, которые он внес, добавили их в основной дкоумент, послде чего прибили копию, которая была создана для согласуещего...

    Вроде понятно написал.. :P
     
  9. sanch

    sanch Well-Known Member

    Репутация:
    0
    Регистрация:
    17 июл 2006
    Сообщения:
    215
    Симпатии:
    0
    Ясно... Но вариант сакс имхо :P
    Кста обьясните плз почему я получаю старый нотесдокумент через db.getdocumentbyID?
     
  10. Medevic

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

    Репутация:
    0
    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Есть лучше?
    Потому что в памяти висит. Используй notesView.GetDocumentByKey или notesDatabase.Search.
     
  11. sanch

    sanch Well-Known Member

    Репутация:
    0
    Регистрация:
    17 июл 2006
    Сообщения:
    215
    Симпатии:
    0
    Идея верна, решение не совсем грамотное.
    Попробую.
    а если попробовать получить db через GetDatabase , а не через СurrentDatabase?
     
  12. Omh

    Omh Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Не, вариант не sux.
    А как раз то что нужно :P

    Что бы раскешировать док, то, как сказал Medevic, надо перевзять документ через view.
    Можно базу перевзять через ReplicaID и там взять документ по униду, но это долго.
    Я вторым способом профайлы раскешировал, т.к. через view без извратов профайл не взять.

    Через getDatabase не вырастет каменный цвятог.
    Через OpenByReplicaID вырастет.
     
  13. Medevic

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

    Репутация:
    0
    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    В каком месте? И как лучше?
    Попробуй. :P
     
  14. sanch

    sanch Well-Known Member

    Репутация:
    0
    Регистрация:
    17 июл 2006
    Сообщения:
    215
    Симпатии:
    0
    Все работают с одним доком. но обработка документа идет через таски
     
  15. Medevic

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

    Репутация:
    0
    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    таски - это документы типа "что и где менять?". Почти одно и тоже.

    Я так делаю. :P
     
  16. sanch

    sanch Well-Known Member

    Репутация:
    0
    Регистрация:
    17 июл 2006
    Сообщения:
    215
    Симпатии:
    0
    Почти да не почти :P Не нужно городить кучу копий. Вдруг краш какой-нить, попробуй их потом собери :(
     
  17. Sandr

    Sandr Гость

    Репутация:
    0
    Если Вы сами не будете делать копии, кто лотус их Вам сам сделает.. в виде конфликтов.. оно Вам надо?
     
  18. Medevic

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

    Репутация:
    0
    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Почему? Шедульный агент всё же будет использоваться, как я понял.
     
  19. Sandr

    Sandr Гость

    Репутация:
    0
    Я так понял, что автор темы настаевает на том, что бы пользователи одновременно работали с основным документом, без всяких служебных доков... Куда тут шедульный агент прикрытить? :P Или все же служебные доки будут?
     
  20. Medevic

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

    Репутация:
    0
    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Как я понял, служебные доки - это таски. :)
    Поэтому и сказал, что смысл одинаков. Вот если бы от шедульного агента избавиться... Но это фантастика. :)
     
Загрузка...

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