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

sanch

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

morpheus

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

?
 

sanch

Well-Known Member
17.07.2006
215
0
#3
Нет, как раз наоборот дать возможность параллельного радактирования
 
S

Sandr

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

morpheus

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

Sandr

Гость
#6
Sandr
Да, поддерживаю... делать просто ответные документы... ну адальше остаёться решить чьи изменения главнее, тут или по дате или по иерархии или всё вместе )))
Ответные зачем? Пусть себе будут обыкновенными.. по той же форме.. просто пусть хранят в себе признак кто у них главный...
 
S

Sandr

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

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

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

sanch

Well-Known Member
17.07.2006
215
0
#9
Ясно... Но вариант сакс имхо :P
Кста обьясните плз почему я получаю старый нотесдокумент через db.getdocumentbyID?
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
#10

sanch

Well-Known Member
17.07.2006
215
0
#11
Идея верна, решение не совсем грамотное.
Потому что в памяти висит. Используй notesView.GetDocumentByKey или notesDatabase.Search.
Попробую.
а если попробовать получить db через GetDatabase , а не через СurrentDatabase?
 

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
#12
Не, вариант не sux.
А как раз то что нужно :P

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

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

sanch

Well-Known Member
17.07.2006
215
0
#16
Почти да не почти :P Не нужно городить кучу копий. Вдруг краш какой-нить, попробуй их потом собери :(
 
S

Sandr

Гость
#17
Почти да не почти :P Не нужно городить кучу копий. Вдруг краш какой-нить, попробуй их потом собери :(
Если Вы сами не будете делать копии, кто лотус их Вам сам сделает.. в виде конфликтов.. оно Вам надо?
 
S

Sandr

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

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
#20
Я так понял, что автор темы настаевает на том, что бы пользователи одновременно работали с основным документом, без всяких служебных доков... Куда тут шедульный агент прикрытить? smile.gif Или все же служебные доки будут?
Как я понял, служебные доки - это таски. :)
Поэтому и сказал, что смысл одинаков. Вот если бы от шедульного агента избавиться... Но это фантастика. :)