Onload + Agent

  • Автор темы Hedg
  • Дата начала
H

Hedg

#1
Чего хочетсься собственно:

Что бы при просмотре нового документа, в документе фиксировалась дата и время просмотра, и пользователь потом не отмазывался, что в глаза не видел этот документ.
Пользователь имеет права автора.

Планировал это сделать через событие формы Onload и агента, но как передать агенту UNID текущего документа в качестве параметра???
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#2
Для: Hedg
Зачем агент? Поставь в PostOpen сохранение документа. Но, имхо, это коряво. Конфликтов наплодишь кучу. А тем более с агентом.
Я бы сделал, чтобы при открытии документа создавались (респонсы) документы-логи. С именем автора и текущем временем. Потом в отдельном (встроенном) представлении их смотришь.

<!--QuoteBegin-Hedg+8:08:2007, 17:31 -->
<span class="vbquote">(Hedg @ 8:08:2007, 17:31 )</span><!--QuoteEBegin-->но как передать агенту UNID текущего документа в качестве параметра???
[snapback]74778" rel="nofollow" target="_blank[/snapback]​
[/quote]
В пареметре метода (notesAgent или notesAgent.RunOnServer) передаешь notesDocument.NoteID.
В агенте получаешь его notesAgent.ParameterDocID и методом notesDatabase.GetDocumentByID находишь документ.
 

Kee_Keekkenen

Well-known member
05.09.2006
639
4
#3
логичнее было бы в queryclose тогда уж писать код о сохранении инфы о дате и пользователе..
 
F

fvoice

#4
ИМХО queryclose продвинутый пользователь ребутом обойдет :)

Я бы сделал, чтобы при открытии документа создавались (респонсы) документы-логи. С именем автора и текущем временем. Потом в отдельном (встроенном) представлении их смотришь.
в этом логе можно хранить полную историю действий пользователя над документом,а в embedded view отображать допустим только признак, что пользователь просмотрел документ, ну и дату первого просмотра..

К минусам можно отнести несколько дополнительных строк кода при загрузке документа и на порядок большее количество документов в БД.
 
G

Guest

#5
На форме документа создать поле, в которое помещать данные о пользователе, который открыл документ (прописать это в квариоупен, ведь задача стоит отловить тех, кто просматривал, поэтому именно в квариоупен а не в квариклоуз), если же еще и время надо определить и дату, то я бы посоветовал создать БД с логами и туда записывать полную информацию, так как поле пришлось бы все равно чистить, потому что объемы информации, содержащиеся в поле, ограничены.
 
H

Hedg

#6
Задача состоит только в том, чтобы зафикисровать момент когда пользователь открыл впервые документ, пусть даже на просмотр.
 
R

Ronchik

#7
<!--QuoteBegin-Ерюков Алексей+9:08:2007, 08:23 -->
<span class="vbquote">(Ерюков Алексей @ 9:08:2007, 08:23 )</span><!--QuoteEBegin-->На форме документа создать поле, в которое помещать данные о пользователе, который открыл документ
[snapback]74810" rel="nofollow" target="_blank[/snapback]​
[/quote]

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

Вариант с логами в виде ответов хорош не спорю но через месяц в базе будет куча хлама.....

Отдельную базу это очень хорошо сам делал можно так-же и не для одной бд использовать , её плюс в том что уровень доступа пользователей в этой базе по умолчанию можно ставить депозитора, а так-же ловить в логах любые события которые нужно
 

morpheus

скриптописец
07.08.2006
3 915
1
#8
Для: Hedg
Зделать отдельную базу логов - доступ для всех автор/редактор или для особо извращённых - депозитор
Приоткрытии докумета - в этой базе создавать докуметик с именем и временем, для этого в тек. базе хватит и автора.
человек открыл докумет - в другой базе логов создалась запись - вуаля

Sub Postopen(Source As Notesuidocument)
Source.Document.UniversalID
....
 
H

Hedg

#9
Для: Morpheus
А не будет ли громоздко, ещё тулить одну базу дла такого простого действия, мне нужно только один раз зафиксировать, что пользователь его видел.
По воводу респонсов, что то я дуплю, как заставить Embedded VIew показывать респонсы текущего открытого документа, как формулу отбора строить????
 
G

Guest

#10
Во вьюхе, во вью селекшн сделать SELECT form = "form1" & @IsResponseDoc. По поводу созданной БД логов что то не понял: зачем вообще туда пользователей пускать? Или речь была не об этом??? Ведь пользователям вовсе не обязательно знать, что за ними следят :)
 
H
#11
Для: Ерюков Алексей
Гениальный ответ, где делать я знаю, я спросил как
 

morpheus

скриптописец
07.08.2006
3 915
1
#12
<!--QuoteBegin-Ерюков Алексей+9:08:2007, 09:30 -->
<span class="vbquote">(Ерюков Алексей @ 9:08:2007, 09:30 )</span><!--QuoteEBegin-->По поводу созданной БД логов что то не понял: зачем вообще туда пользователей пускать? Или речь была не об этом??? Ведь пользователям вовсе не обязательно знать, что за ними следят
[snapback]74825" rel="nofollow" target="_blank[/snapback]​
[/quote]
господа вы что???? кто сказал что пользователь будет знать про эту базу???? он в ней депозитор - может только внести инфу,он её даже не откроет! просто наспост опен документа агетом создасться запись
И кто сказал что пользователь догадаеться что о нём следят?????

зачем такая база - да в ней можо любые логи делать. просто патом выставить значение в настройках реплики - удалять не исполь*цензура*мые более 30 дней документы
 
R

Ronchik

#13
<!--QuoteBegin-Hedg+9:08:2007, 09:16 -->
<span class="vbquote">(Hedg @ 9:08:2007, 09:16 )</span><!--QuoteEBegin-->А не будет ли громоздко, ещё тулить одну базу дла такого простого действия, мне нужно только один раз зафиксировать, что пользователь его видел.
[snapback]74823" rel="nofollow" target="_blank[/snapback]​
[/quote]
Её можно будет использовать не только для одной бд.....и не только просмотри ловить
 
G

Guest

#14
<!--QuoteBegin-Hedg+9:08:2007, 10:32 -->
<span class="vbquote">(Hedg @ 9:08:2007, 10:32 )</span><!--QuoteEBegin-->Для: Ерюков Алексей
Гениальный ответ, где делать я знаю, я спросил как
[snapback]74826" rel="nofollow" target="_blank[/snapback]​
[/quote]
А разве я не написал как? Вроде должно работать... Попробую еще раз
Код:
 SELECT form = "form1" & @IsResponseDoc
где form1 нужная вам форма...

<!--QuoteBegin-Morpheus+9:08:2007, 10:38 -->
<span class="vbquote">(Morpheus @ 9:08:2007, 10:38 )</span><!--QuoteEBegin-->господа вы что???? кто сказал что пользователь будет знать про эту базу???? он в ней депозитор - может только внести инфу,он её даже не откроет! просто наспост опен документа агетом создасться запись
И кто сказал что пользователь догадаеться что о нём следят?????

зачем такая база - да в ней можо любые логи делать. просто патом выставить значение в настройках реплики - удалять не исполь*цензура*мые более 30 дней документы

[snapback]74827" rel="nofollow" target="_blank[/snapback]​
[/quote]
Значит я просто Вас не понял. Зато на мычание пользователя по поводу того, что он в глаза не видел этот документ, можно будет привести веские аргументы. Правда, если честно, все равно не помогает - эти самые пользователи все равно твердят что ничего не делали, даже если им сказать когда и во сколько они были замечены :)
 

morpheus

скриптописец
07.08.2006
3 915
1
#15
<!--QuoteBegin-Ерюков Алексей+9:08:2007, 09:58 -->
<span class="vbquote">(Ерюков Алексей @ 9:08:2007, 09:58 )</span><!--QuoteEBegin-->даже если им сказать когда и во сколько они были замечен
[snapback]74834" rel="nofollow" target="_blank[/snapback]​
[/quote]
а єто уже решаеться внутриконторніми приказами и порядками. Простоу каждого должен біть свой ИД и длинній пароль, и пусть патом доказівает что єто не от его имени создан логовый документ


<!--QuoteBegin-Hedg+9:08:2007, 09:16 -->
<span class="vbquote">(Hedg @ 9:08:2007, 09:16 )</span><!--QuoteEBegin-->По воводу респонсов, что то я дуплю, как заставить Embedded VIew показывать респонсы текущего открытого документа, как формулу отбора строить????
[snapback]74823" rel="nofollow" target="_blank[/snapback]​
[/quote]
Формула отбора построена Ерюков Алексей
Код:
SELECT form = "form1" & @IsResponseDoc
НО первый КАТЕГОРЕЗИРОВАНЫЙ столбец в этом виде долже создержать UNID парента (гл.документа)
далее на форме во встроеном виде , выбираете в закладке ShowSingleCategry - просто прописываете имя поля в котором содержиться унид текущего документа, или сразу формулу!
ShowSingleCategry - дает возможность отображдать во встроенных категоризированных видах только одну категорию ( та которая записана формулой в этой ShowSingleCategry опции )
 
G

Guest

#16
Про первый столбец - это понятно, а вот
<!--QuoteBegin-Morpheus+9:08:2007, 11:06 -->
<span class="vbquote">(Morpheus @ 9:08:2007, 11:06 )</span><!--QuoteEBegin-->ShowSingleCategry - дает возможность отображдать во встроенных категоризированных видах только одну категорию ( та которая записана формулой в этой ShowSingleCategry опции )
[snapback]74838" rel="nofollow" target="_blank[/snapback]​
[/quote]
не могли бы пояснить? Для чего это нужно и будет ли работать без этого?
 
F

fvoice

#17
не могли бы пояснить? Для чего это нужно и будет ли работать без этого?
без этого будет отображать все документы, попадающие под формулу отбора, а так он группирует только ответы текущего документа и отображает соответственно ответы только к текущему документу.

Попробуйте создать такое вью и просто открыть его(не в документе), вам сразу станет все понятно..
 
H
#19
Что-то я запутался окочательно.

Главный док создаётся по форме "first"
Респонс по форме "log"

В форме "first" есть поле UNID в которое пишется UNID документа
В форме "log" есть поле ParentUNID в которое пишется UNID документа-родителя

Теперь как составить формулу для Embedded View в документе по форме "first". Склько не бьюсь ничего у меня не отображается в Embedded View
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#20
Для: Hedg
Select form = "log"
В свойствах представления убрать галку с "Show response documents in a hierarchy".
Создать первую категоризированную колонку со значением @Text(ParentUNID).
На форме "first" во встроенном представлении в "Show Single Category" прописать @Text(UNID).