• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

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

  • Автор темы sanch
  • Дата начала
S

sanch

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

morpheus

чтото не совсем понял что собственно надо?
не дать возможность паралельного редактирования? ну так проде Lock справляеться ( если документ один и нет цепочки - то всё просто )

?
 
S

sanch

Нет, как раз наоборот дать возможность параллельного радактирования
 
S

Sandr

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

morpheus

Sandr
Да, поддерживаю... делать просто ответные документы... ну адальше остаёться решить чьи изменения главнее, тут или по дате или по иерархии или всё вместе )))
 
S

Sandr

Sandr
Да, поддерживаю... делать просто ответные документы... ну адальше остаёться решить чьи изменения главнее, тут или по дате или по иерархии или всё вместе )))

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

sanch

Не совсем понял, как это делать по копии ?
 
S

Sandr

Не совсем понял, как это делать по копии ?

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

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

Вроде понятно написал.. :p
 
S

sanch

Ясно... Но вариант сакс имхо :p
Кста обьясните плз почему я получаю старый нотесдокумент через db.getdocumentbyID?
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
S

sanch

Идея верна, решение не совсем грамотное.
Потому что в памяти висит. Используй notesView.GetDocumentByKey или notesDatabase.Search.
Попробую.
а если попробовать получить db через GetDatabase , а не через СurrentDatabase?
 
O

Omh

Не, вариант не sux.
А как раз то что нужно :p

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

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

sanch

Почти да не почти :p Не нужно городить кучу копий. Вдруг краш какой-нить, попробуй их потом собери :(
 
S

Sandr

Почти да не почти :p Не нужно городить кучу копий. Вдруг краш какой-нить, попробуй их потом собери :(

Если Вы сами не будете делать копии, кто лотус их Вам сам сделает.. в виде конфликтов.. оно Вам надо?
 
S

Sandr

Почему? Шедульный агент всё же будет использоваться, как я понял.
Я так понял, что автор темы настаевает на том, что бы пользователи одновременно работали с основным документом, без всяких служебных доков... Куда тут шедульный агент прикрытить? :p Или все же служебные доки будут?
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Я так понял, что автор темы настаевает на том, что бы пользователи одновременно работали с основным документом, без всяких служебных доков... Куда тут шедульный агент прикрытить? smile.gif Или все же служебные доки будут?
Как я понял, служебные доки - это таски. :)
Поэтому и сказал, что смысл одинаков. Вот если бы от шедульного агента избавиться... Но это фантастика. :)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!