|
Что лучше, блокировать документ пользователем или нет?
|
|||
---|---|---|---|
#18+
Т.е. сказать при попытке открытия, что документ занят тем-то, или позволить открыть его и модифицировать, но при сохранении сообщить, что документ был изменен. В первом случае необходимо будет создать реестр логических блокировок документов. И каким-то чистильщиком освобождать документы, блокировки с которых были не сняты по тех. причинам. Во втором непонятно, что делать дальше. Ну установил я факт изменения документа, а что делать с пользователем, который что-то наворотил и хочет это сохранить? Заставить перегрузить инфо с сервера, так это он так долго может карячиться.?! Позволить сохранить поверх измененного - тогда может потеряться что-то важное?! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2005, 12:16 |
|
Что лучше, блокировать документ пользователем или нет?
|
|||
---|---|---|---|
#18+
iLLer пишет: > Т.е. сказать при попытке открытия, что документ занят тем-то, Зачем блокировать при открытии? Может его просто хотят посмотреть? Блокировать надо только при попытке редактирования. Кроме блокирования при начале редактирования, надо еще обязательно проверить, а не изменил ли кто-нибудь документ за то время, пока его смотрели. > или > позволить открыть его и модифицировать, но при сохранении сообщить, что > документ был изменен. А вот этого делать КАТЕГОРИЧЕСКИ НЕЛЬЗЯ!!! Некоторые документы могуть правиться ОЧЕНЬ долго. Правил человек накладную 1 час, пытается сохранить - а ему говорят "пшел нафиг". Я бы после этого применил рукоприкладство к разработчику. Posted via ActualForum NNTP Server 1.2 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2005, 12:30 |
|
Что лучше, блокировать документ пользователем или нет?
|
|||
---|---|---|---|
#18+
Александр Гoлдун Кроме блокирования при начале редактирования, надо еще обязательно проверить, а не изменил ли кто-нибудь документ за то время, пока его смотрели. Для того, чтобы определить изменился документ или нет что нужно сделать? Держать поле "последнее изменение" и сравнивать его содержимое перед блокировкой? А без такого поля нельзя? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2005, 18:13 |
|
Что лучше, блокировать документ пользователем или нет?
|
|||
---|---|---|---|
#18+
iLLer Александр Гoлдун Кроме блокирования при начале редактирования, надо еще обязательно проверить, а не изменил ли кто-нибудь документ за то время, пока его смотрели. Для того, чтобы определить изменился документ или нет что нужно сделать? Держать поле "последнее изменение" и сравнивать его содержимое перед блокировкой? А без такого поля нельзя? не редактировать непосредственно документ, а редактировать его копию и сохранять историю изменений ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2005, 19:33 |
|
Что лучше, блокировать документ пользователем или нет?
|
|||
---|---|---|---|
#18+
iLLer пишет: > Для того, чтобы определить изменился документ или нет что нужно сделать? > Держать поле "последнее изменение" и сравнивать его содержимое перед > блокировкой? Именно так. >А без такого поля нельзя? А гланды удалять через анальное отверстие можно? Можно. Можно к примеру вести в отдельной таблице коды документов и время изменения. Но зачем? Чем не устраивает хранение времени последнего редактирования в основной таблице документа? Posted via ActualForum NNTP Server 1.2 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2005, 20:17 |
|
Что лучше, блокировать документ пользователем или нет?
|
|||
---|---|---|---|
#18+
Александр Гoлдун Чем не устраивает хранение времени последнего редактирования в основной таблице документа? Устраивает. Следующий вопрос, а что делать с наполнением документа? Для каждой позиции хранить свой таймштамп или использовать один из "шапки"? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2005, 12:26 |
|
Что лучше, блокировать документ пользователем или нет?
|
|||
---|---|---|---|
#18+
iLLer пишет: >> Чем не устраивает хранение времени последнего редактирования в основной >> таблице документа? > Устраивает. Следующий вопрос, а что делать с наполнением документа? > Для каждой позиции хранить свой таймштамп или использовать один из "шапки"? Зачем для каждой позиции? Posted via ActualForum NNTP Server 1.2 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2005, 12:55 |
|
Что лучше, блокировать документ пользователем или нет?
|
|||
---|---|---|---|
#18+
Ну незачем. Так спросил, а вдруг кто-то так делает?!) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2005, 13:13 |
|
Что лучше, блокировать документ пользователем или нет?
|
|||
---|---|---|---|
#18+
> Т.е. сказать при попытке открытия, что документ занят тем-то, или позволить > открыть его и модифицировать, но при сохранении сообщить, что документ был > изменен. Поинтересуйтесь, как работает subversion или cvs. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2005, 13:09 |
|
Что лучше, блокировать документ пользователем или нет?
|
|||
---|---|---|---|
#18+
guest_20040621> Т.е. сказать при попытке открытия, что документ занят тем-то, или позволить > открыть его и модифицировать, но при сохранении сообщить, что документ был > изменен. Поинтересуйтесь, как работает subversion или cvs. Не знаю, как они работают, но аналогичные продукты VSS и Team Coherence по-умолчанию не позволяют сделать файлу несколько CheckOut одновременно. Хотя там есть возможность организовать такое и сливать изменения. Но это не важно. Не вижу близких аналогий. Может есть все-таки смысл поинтересоваться особенностями работы исполнителей на местах? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2005, 13:15 |
|
Что лучше, блокировать документ пользователем или нет?
|
|||
---|---|---|---|
#18+
Мой вариант оптимистического блокировочника для веб-приложения: Пользователь открывает документ-форму на изменение. При открытии на изменение система выдает контракт (некий идентификатор) пользователю на работу с документом в течении n минут. Контракт хранится в базе с параметрами: id-контракта, id заблокированного объекта, Таймаут в секундах, Время завершения контракта. Форма редактирования документа содержит скрытый фрейм, который по setTimeout обновляется. Скрытый фрейм имеет форму или location вида hxxp://ваш_сайт/страница_продления_контракта.aspx?id_контракта=xxxxxxx То есть по таймауту обновляется страница в скрытом фрейме, которая продлевает контракт на работу с документом. Страница продления возвращает статус операции продления в div-е, ну и как следствие попутно характеризует наличие связи с сервером. В базе - job который очищает блокировки с интервалом с поправкой на таймаут. Естественно в job-е при обходе проверяется истек ли срок действия контракта. При сохранении документа, контракт удаляется. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2005, 14:37 |
|
Что лучше, блокировать документ пользователем или нет?
|
|||
---|---|---|---|
#18+
> Не знаю, как они работают Значит, тоже поинтересуйтесь. > аналогичные продукты VSS и Team Coherence Чему аналогичные? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2005, 15:05 |
|
Что лучше, блокировать документ пользователем или нет?
|
|||
---|---|---|---|
#18+
guest_20040621> Не знаю, как они работают Значит, тоже поинтересуйтесь. С какой целью? Я имею достаточное общее представление о них. guest_20040621 > аналогичные продукты VSS и Team Coherence Чему аналогичные? Аналогичные продуктам, решающим те же задачи: контроль версий, совместная работа над исходниками и т.п. Кстати, какое отношение это имеет к задаче управления совместной работой над документами в учетной системе? Тут немножко отличающаяся специфика. Я могу представить себе одновременную работу двух программистов над одним исходным файлом. Например правка двух разных функций, добавление новых и т.п. А вот совместную работу двух человек над одним целостным документом, например накладной, не представляю ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2005, 16:54 |
|
Что лучше, блокировать документ пользователем или нет?
|
|||
---|---|---|---|
#18+
авторА вот совместную работу двух человек над одним целостным документом, например накладной, не представляю Я тоже не понимаю, но вот некоторые авторы, типа tigra и parklin, на моей памяти пробовали убеждать в обратном. В частности приводили пример, как запонение накладной/счета в несколько сот позиций несколькими людьми. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2005, 17:33 |
|
Что лучше, блокировать документ пользователем или нет?
|
|||
---|---|---|---|
#18+
> С какой целью? Чтобы вот. > Аналогичные продуктам, решающим те же задачи: контроль версий, совместная > работа над исходниками и т.п. Хех... да так себе аналогичные. Во-первых, cvs - открытый продукт (т. е. можно посмотреть исходники), во-вторых, проектов под cvs - масса (т. е. баги и проблемы хорошо известны), в третьих - в контексте обсуждения - к cvs есть веб-интерфейс (и не один; с исходниками опять же). > Кстати, какое отношение это имеет к задаче управления совместной работой над > документами в учетной системе? Непосредственное. Один из вариантов: достаточно реализовать интерфейс, собственно контролем версий будет заниматься продукт, специально для этого написанный, а не трехколесный велосипед с костылями. > А вот совместную работу двух человек над одним целостным документом, > например накладной, не представляю Кроме накладных, по-Вашему, документов не существует? ОК, вот пример из жизни: есть договор, с которым работают юрист и менеджер одновременно. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2005, 17:52 |
|
Что лучше, блокировать документ пользователем или нет?
|
|||
---|---|---|---|
#18+
guest_20040621> С какой целью? > Кстати, какое отношение это имеет к задаче управления совместной работой над > документами в учетной системе? Непосредственное. Один из вариантов: достаточно реализовать интерфейс, собственно контролем версий будет заниматься продукт, специально для этого написанный, а не трехколесный велосипед с костылями. Аналогия велосипеда с костылями мне почему-то приходит в голову именно по отношению к учетной системе, переделанной из cvs. guest_20040621 > А вот совместную работу двух человек над одним целостным документом, > например накладной, не представляю Кроме накладных, по-Вашему, документов не существует? Существуют, конечно! Но вот если представить одновременную правку платежки двумя людьми, то получится как в анекдоте: - Это правда, что Изя в спортлото тысячу рублей выиграл? - Правда, только не тысячу, а сто. Не в спортлото, а в преф, и не выиграл, а проиграл guest_20040621 ОК, вот пример из жизни: есть договор, с которым работают юрист и менеджер одновременно. Ну, глядя на доступные моему изучению бизнес-процессы, одновременной работы с договорами я не вижу. Поэтапную вижу, а одновременной - нет. Ну можно еще назвать единым документом собственно текст договора плюс приложение, например с указанием цен, но это пример с натяжкой. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2005, 18:06 |
|
Что лучше, блокировать документ пользователем или нет?
|
|||
---|---|---|---|
#18+
> Аналогия велосипеда с костылями мне почему-то приходит в голову именно по отношению > к учетной системе, переделанной из cvs. А кроме "переделывания" вариантов нет? Слово "интеграция" - оно как, не вызывает напряжения? Дружище, давным-давно обычные нормальные _юзеры_ (ни разу не девелоперы) в полный рост используют черепаху (есть такой клиент для Subversion) для своих задач. Новость для Вас? Какие нах велосипеды? Н-да... > Но вот если представить одновременную правку платежки двумя людьми, Я что-то не заметил, что раздел обсуждения называется "программулины для бухгалтерского учета". Плохо читал? ОК, уточняю специально для Вас: для бухгалтерских документов полноценная версионность в принципе не нужна. В силу их 1. природы, 2. примитивности. > Ну, глядя на доступные моему изучению бизнес-процессы, одновременной работы с договорами я не вижу. Вы тАвАриСТЧу mir не родственник, часом? - у того похожая аргументация: я с этим не сталкивался, значит, это никому не нужно. По существу возражения есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2005, 13:18 |
|
Что лучше, блокировать документ пользователем или нет?
|
|||
---|---|---|---|
#18+
Уважаемые! Вы конечно веселые ребята, но прошу не отклоняться от темы "Блокирование документа в информационной системе". Если по существу нечего говорить, лучше промолчать. А то уже какой-то треп пошел. Вывод напрашивается сам собой: "Блокировать". ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2005, 16:12 |
|
Что лучше, блокировать документ пользователем или нет?
|
|||
---|---|---|---|
#18+
guest_20040621> Аналогия велосипеда с костылями мне почему-то приходит в голову именно по отношению > к учетной системе, переделанной из cvs. А кроме "переделывания" вариантов нет? Слово "интеграция" - оно как, не вызывает напряжения? Вызывает сомнение в определенных случаях. Не все можно просто и красиво интегрировать. guest_20040621 > Но вот если представить одновременную правку платежки двумя людьми, Я что-то не заметил, что раздел обсуждения называется "программулины для бухгалтерского учета". Плохо читал? ОК, уточняю специально для Вас: для бухгалтерских документов полноценная версионность в принципе не нужна. В силу их 1. природы, 2. примитивности. Есть великое множество небухгалтерских документов, которым тоже не нужны механизмы одновременной работы. Но лучше спросить у автора исходного топика, какие документы он имел в виду. У меня тоже есть документы, которые могут правиться одновременно, но они сложносоставные и достаточно четко внутри подразделяются на сущности. Т.е. технически (да и логически в контексте БП) их можно рассматривать как объединенную по какому-либо признаку совокупность документов. guest_20040621 > Ну, глядя на доступные моему изучению бизнес-процессы, одновременной работы с договорами я не вижу. Вы тАвАриСТЧу mir не родственник, часом? - у того похожая аргументация: я с этим не сталкивался, значит, это никому не нужно. По существу возражения есть? Не знаю никакого mir. По существу чего? И где я сказал, что это никому не нужно? Возражаю я только от притянутого за уши, неоправданного усложнения системы. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2005, 16:17 |
|
Что лучше, блокировать документ пользователем или нет?
|
|||
---|---|---|---|
#18+
Вариант1 (простой): блокировать, но оставлять возможность просмотра без сохранения. Вариант2 (сложный): блокировать, оставлять возможность редактировать, при сохранениии проверять по timestamp/guid был ли документ изменен другим пользователем, если был показывать новую версию документа в отдельном окне или закладке, вывести диалог с возможностью выбора: сохранить вашу версию, сохранить версию другого пользователя, отмена. Posted via ActualForum NNTP Server 1.2 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2005, 16:19 |
|
Что лучше, блокировать документ пользователем или нет?
|
|||
---|---|---|---|
#18+
iLLerУважаемые! Вы конечно веселые ребята, но прошу не отклоняться от темы "Блокирование документа в информационной системе". Если по существу нечего говорить, лучше промолчать. А то уже какой-то треп пошел. Вывод напрашивается сам собой: "Блокировать". Модераторы тут есть и треп вполне в рамках темы. Но для того, чтобы треп был более по существу, перечисли, пожалуйста, документы, которые имелись в виду. И какие-нибудь особо специфические моменты, если таковые имеются. Тогда можно будет более обоснованно ответить, блокировать или организовывать совместный доступ, да еще и с контролем версий. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2005, 16:22 |
|
Что лучше, блокировать документ пользователем или нет?
|
|||
---|---|---|---|
#18+
У меня тоже есть документы, которые могут правиться одновременно, но они сложносоставные и достаточно четко внутри подразделяются на сущности. Т.е. технически (да и логически в контексте БП) их можно рассматривать как объединенную по какому-либо признаку совокупность документов. Я ввожу в данном контексте понятие "пакет документов". При этом можно блокировать пакет и редактировать весь пакет например в одной форме если интерфейс это позволяет, либо блокировать документ из пакета и работать с каждым документом отдельно. Т.е. получается что пакет это тоже как бы документ, может иметь свою маршрутизацию, можно поставить подписи на весь пакет, но вложенные в него документы могут редактироваться отдельно, при чем к отдельным документам пакета различные пользователи имеют различные права доступа. Posted via ActualForum NNTP Server 1.2 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2005, 16:26 |
|
Что лучше, блокировать документ пользователем или нет?
|
|||
---|---|---|---|
#18+
Роман Дынник Вариант1 (простой): блокировать, но оставлять возможность просмотра без сохранения. Вариант2 (сложный): блокировать, оставлять возможность редактировать, при сохранениии проверять по timestamp/guid был ли документ изменен другим пользователем, если был показывать новую версию документа в отдельном окне или закладке, вывести диалог с возможностью выбора: сохранить вашу версию, сохранить версию другого пользователя, отмена. Всем спасибо, я получил достаточно мнений на свой вопрос. Я пока сам не знаю, что сгодится в моем варианте. Остановлюсь пока на "блокировании", если практика покажет необходимость в другом - нарастим. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2005, 16:38 |
|
Что лучше, блокировать документ пользователем или нет?
|
|||
---|---|---|---|
#18+
Кстати, СУБД случаем у вас не Oracle? А то и изобретать ничего не придется... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2005, 17:19 |
|
Что лучше, блокировать документ пользователем или нет?
|
|||
---|---|---|---|
#18+
> Есть великое множество небухгалтерских документов, которым тоже не нужны > механизмы одновременной работы. С этим никто не спорил. > они сложносоставные и достаточно четко внутри подразделяются на сущности. Не слишком понятна логика перехода от документов к сущностям. Поясните, пожалуйста, какая здесь связь. > Т.е. технически (да и логически в контексте БП) их можно рассматривать как > объединенную по какому-либо признаку совокупность документов. Связанные документы - это imho абсолютно технический вопрос. > Возражаю я только от притянутого за уши, неоправданного усложнения > системы. Внимательно выслушаю Ваши предложения по контролю версий. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2005, 17:22 |
|
|
start [/forum/search_topic.php?author=konst55&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
get settings: |
9ms |
get forum list: |
12ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
148ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 1096ms |
total: | 1393ms |
0 / 0 |