Onload + Agent

Тема в разделе "Lotus - Программирование", создана пользователем Hedg, 8 авг 2007.

  1. Hedg

    Hedg Гость

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

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

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

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    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 находишь документ.
     
  3. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    логичнее было бы в queryclose тогда уж писать код о сохранении инфы о дате и пользователе..
     
  4. fvoice

    fvoice Гость

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

    в этом логе можно хранить полную историю действий пользователя над документом,а в embedded view отображать допустим только признак, что пользователь просмотрел документ, ну и дату первого просмотра..

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

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

    Hedg Гость

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

    Ronchik Гость

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

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

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

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

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

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: Hedg
    Зделать отдельную базу логов - доступ для всех автор/редактор или для особо извращённых - депозитор
    Приоткрытии докумета - в этой базе создавать докуметик с именем и временем, для этого в тек. базе хватит и автора.
    человек открыл докумет - в другой базе логов создалась запись - вуаля

    Sub Postopen(Source As Notesuidocument)
    Source.Document.UniversalID
    ....
     
  9. Hedg

    Hedg Гость

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

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

    Hedg Гость

    Для: Ерюков Алексей
    Гениальный ответ, где делать я знаю, я спросил как
     
  12. morpheus

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

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    <!--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 дней документы
     
  13. Ronchik

    Ronchik Гость

    <!--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]
    Её можно будет использовать не только для одной бд.....и не только просмотри ловить
     
  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]
    А разве я не написал как? Вроде должно работать... Попробую еще раз
    Код (Text):
     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]
    Значит я просто Вас не понял. Зато на мычание пользователя по поводу того, что он в глаза не видел этот документ, можно будет привести веские аргументы. Правда, если честно, все равно не помогает - эти самые пользователи все равно твердят что ничего не делали, даже если им сказать когда и во сколько они были замечены :)
     
  15. morpheus

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

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    <!--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]
    Формула отбора построена Ерюков Алексей
    Код (Text):
    SELECT form = "form1" & @IsResponseDoc
    НО первый КАТЕГОРЕЗИРОВАНЫЙ столбец в этом виде долже создержать UNID парента (гл.документа)
    далее на форме во встроеном виде , выбираете в закладке ShowSingleCategry - просто прописываете имя поля в котором содержиться унид текущего документа, или сразу формулу!
    ShowSingleCategry - дает возможность отображдать во встроенных категоризированных видах только одну категорию ( та которая записана формулой в этой ShowSingleCategry опции )
     
  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]
    не могли бы пояснить? Для чего это нужно и будет ли работать без этого?
     
  17. fvoice

    fvoice Гость

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

    Попробуйте создать такое вью и просто открыть его(не в документе), вам сразу станет все понятно..
     
  18. Гость

    ааа теперь ясно... Спасибо!
     
  19. Hedg

    Hedg Гость

    Что-то я запутался окочательно.

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

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

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

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Для: Hedg
    Select form = "log"
    В свойствах представления убрать галку с "Show response documents in a hierarchy".
    Создать первую категоризированную колонку со значением @Text(ParentUNID).
    На форме "first" во встроенном представлении в "Show Single Category" прописать @Text(UNID).
     
Загрузка...
Похожие Темы - Onload Agent
  1. Gottalent
    Ответов:
    0
    Просмотров:
    196
  2. garrick
    Ответов:
    2
    Просмотров:
    385
  3. anna
    Ответов:
    32
    Просмотров:
    1.887
  4. lmike
    Ответов:
    12
    Просмотров:
    1.025
  5. Amfion
    Ответов:
    6
    Просмотров:
    943

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