Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/109: Рейтинг темы: голосов - 109, средняя оценка - 4.60
dos
1

Агент и профайлы

13.10.2009, 10:44. Показов 19825. Ответов 12
Метки нет (Все метки)

Имеется документ (профайл), который править может только пользователь с правами менеджера. Но существует вероятность, что потребуется данная возможность для пользователя с правами автор. Поэтому сохранение документа (профайла) осуществляется агентом. Но столкнулись с такой проблемой, что изменения профайла отображаются пользователю только после переоткрытия клиента. Как можно решить данную проблему?
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.10.2009, 10:44
Ответы с готовыми решениями:

Трабла, агент неправильно изменяет другой агент
Ситуация: есть у меня мега агент, который занимается настройкой сервера, проверяет что в системе...

Java-агент Vs Ls-агент — кто быстрее?
Бэк-агента можно написать как на лс, так и на яве. Кто-нибудь обладает достоверной информацией,...

Хитрозамудренный агент.
Суть агента: Есть БД, назовем ее - "Задачи" в которой хранятся ссылки на документы в других...

Не выполняется агент
Создал агента, Shared, Trigger - On Sheldue, Run on behalf of - указал себя, Runtime security - 3,...

12
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
13.10.2009, 10:48 2
Не использовать профайлы.
0
0 / 0 / 0
Регистрация: 20.10.2008
Сообщений: 271
13.10.2009, 10:56 3
Цитата Сообщение от Medevic
Не использовать профайлы.
Дельный совет ;)
0
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 2,219
13.10.2009, 11:01 4
Профайлы кэшируются. Если нужно взять не из кэша, то можно так:
Set Doc = db.GetProfileDocument("ProfileName", "UserName")
Set Doc = db.GetDocumentByUNID(Doc.UniversalID)
0
dos
13.10.2009, 12:20 5
Цитата Сообщение от nvy
Профайлы кэшируются. Если нужно взять не из кэша, то можно так:
Set Doc = db.GetProfileDocument("ProfileName", "UserName")
Set Doc = db.GetDocumentByUNID(Doc.UniversalID)
Я использую формулы
lProjectCode:=@GetProfileField("DbProfile"; "PrfDbPrjCode");
Вставляется старое значение
0 / 0 / 0
Регистрация: 08.02.2007
Сообщений: 206
13.10.2009, 13:08 6
Если я не ошибаюсь, где-то ToxaRat приводил код "правильного" сохранения профайла. Смысл в том, чтобы старый профильный документ удалить, скопировав все его поля в новый.
0
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 2,219
13.10.2009, 13:14 7
Можно попробовать создать в профиле вычисляемое поле "UNID" с формулой @DocumentUniqueID и получать поля из профиля формулой вида:
@GetDocField(@GetProfileField("имя профиля"; "UNID"); "имя поля"). Но это будет работать медленне, чем @GetProfileField
0
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
13.10.2009, 14:08 8
doc
а зачем вы всё это затеяли?
задача изначально какая? :o


Если я не ошибаюсь, где-то ToxaRat приводил код "правильного" сохранения профайла. Смысл в том, чтобы старый профильный документ удалить, скопировав все его поля в новый.
было такое



Можно попробовать создать в профиле вычисляемое поле "UNID" с формулой @DocumentUniqueID и получать поля из профиля формулой вида:
@GetDocField(@GetProfileField("имя профиля"; "UNID"); "имя поля"). Но это будет работать медленне, чем @GetProfileField
я сейчас пошел еще дальше ;)
всё "системное" храню в иконке базы, так же как ИБМовцы, нотеИД у неё постоянное поэтому трабл нету и она не кешируется
0
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 2,219
13.10.2009, 15:08 9
Цитата Сообщение от ToxaRat
я сейчас пошел еще дальше :o
всё "системное" храню в иконке базы, так же как ИБМовцы, нотеИД у неё постоянное поэтому трабл нету и она не кешируется
А разве иконка - не элемент дизайна? В таком случае нужны как минимум дизайнерские права на изменение в ней чего либо.
0
dos
13.10.2009, 15:24 10
Цитата Сообщение от ToxaRat
а зачем вы всё это затеяли?
задача изначально какая?
Имеется 2 базы.
В сопраженной базе имеется профайл, некоторые поля которого берут свое значение из документа текущей базы.
Но если править документ текущей базы я разрешить пользователям могу, то напрямую давать доступ править профайл в сопряженной базе не хочется, т.к. приходится предоставлять права как Manager. Поэтому переносом значений полей из документа текущей базы в профайл сопряженной занимается агент, у которого есть все права. Но его изменения во второй базе видны пользователю после переоткрытия документа.


Цитата Сообщение от nvy
@GetDocField(@GetProfileField("имя профиля"; "UNID"); "имя поля"). Но это будет работать медленне, чем @GetProfileField
Данный подход не помогает. Приходится открывать профайл вручную и пересохранять, тогда работает.
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 2,219
13.10.2009, 15:45 11
Цитата Сообщение от doc
Данный подход не помогает. Приходится открывать профайл вручную и пересохранять, тогда работает.
Смысл в том, чтобы сохранить unid профайла в поле, а сделать это можно разными способами, хотя бы так
profiledoc.ReplaceItemValue("UNID", profiledoc.UniversalId)
Если профайл не создаётся динамически, то это вообще однократная операция.
0
dos
13.10.2009, 18:21 12
Цитата Сообщение от nvy
Смысл в том, чтобы сохранить unid профайла в поле, а сделать это можно разными способами
Агент сохраняет в данном полу UNID, но все же пользователь не видит изменений, даже этого поля UNID пока не пересохранит профайл (если Пользователь Manager) или не переоткроет клиент.
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 2,219
13.10.2009, 20:00 13
Цитата Сообщение от doc
Агент сохраняет в данном полу UNID, но все же пользователь не видит изменений, даже этого поля UNID пока не пересохранит профайл (если Пользователь Manager) или не переоткроет клиент.
Профайл один или их много? Они "живут" постоянно или создаются агентом? Если профайлы постоянные, то достаточно один раз прописать в них UNID и перезагрузить Лотус, потом всё будет работать как надо.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.10.2009, 20:00

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Java агент
я написал агент, который берет параметры из профайла - селективную формулу и имя поля, затем по...

Агент по расписанию
Необходимо чтобы агент запускался три раза в день. Я выбрал "More then once a day", выставил "Run...

Java - агент
Проблема с использованием i-text (написанной на java тулзе для формирования pdf-документов) ...

Шедулерный агент
Запускаю агента ночью на сервере, утром смотрю в лог вижу ерор - Error creating product object...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.