Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Агент и права доступа к БД
Форум программистов > Базы данных и администрирование > Lotus > Lotus - Программирование
Oksana
Добрый день!

Есть две БД. К первой БД у пользователя права доступа - автор, ко второй читатель.

Пользователь создает (изменяет) документ в первой БД, эти измения влекут за собой изменеия во второй БД, к которой у пользователя права читателя.

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

Как правильно реальзовать эту задачу?
Medevic
Нужно подписать сервером или пользователем с правами.
Oksana
Цитата(Medevic @ 5:08:2008, 12:09 ) *
Нужно подписать сервером или пользователем с правами.

Агент подписан мной, у меня полные админские права.
Medevic
Как запускается агент? Нужно запускать на сервере методом notesAgent.RunOnServer.
Oksana
Цитата(Medevic @ 5:08:2008, 12:39 ) *
Как запускается агент? Нужно запускать на сервере методом notesAgent.RunOnServer.

раньше не использовала, туплю-с... blink.gif
скопировала из хелпа код, подставила имя своего агента, выдает Success, но фактически ни чего не происходит.

1. This agent runs the agent named "Agent to be run LotusScript."
Sub Initialize
Dim s As New NotesSession
Dim db As NotesDatabase
Dim agent As NotesAgent
Set db = s.CurrentDatabase
Set agent = db.GetAgent("Agent to be run LotusScript")
If agent.RunOnServer = 0 Then
Messagebox "Agent ran",, "Success"
Else
Messagebox "Agent did not run",, "Failure"
End If
End Sub
Medevic
А что должно быть?
Oksana
Цитата(Medevic @ 5:08:2008, 13:50 ) *
А что должно быть?

ну дак результат работы агента, в частности должны быть изменены несколько полей в док-те в той БД что у пользователя права читателя, а текущий документ должен изменить статус.
Medevic
В этом случае нужно вызывать метод с параметром RunOnServer([noteID$]). В агенте получить нужный документ и обработать его. Посмотри в хелпе, там пример есть.
Oksana
Цитата(Medevic @ 5:08:2008, 14:41 ) *
В этом случае нужно вызывать метод с параметром RunOnServer([noteID$]). В агенте получить нужный документ и обработать его. Посмотри в хелпе, там пример есть.

так я именно этот пример из хелпа и использовала unsure.gif
чем дальше, тем меньше понимаю blink.gif
Medevic
В хелпе два примера. Смотри второй.
Oksana
Цитата(Medevic @ 5:08:2008, 15:06 ) *
В хелпе два примера. Смотри второй.

Спасибо, получилось rolleyes.gif
Честно скажу, до конца еще не осознала как smile.gif
у меня впереди еще несколько подобных агентов rolleyes.gif
Constantin A Chervonenko
Ты где агент запускала? На станции? Тогда он выполняется с твоими правами (кем-бы он не был подписан). Права подписанта (и того, "от чьего имени") начинают играть при запуске агента на сервере, т.е. по расписанию/по new or modified/и - agent.RunOnServer
Oksana
Цитата(Constantin A Chervonenko @ 8:08:2008, 03:27 ) *
Ты где агент запускала? На станции? Тогда он выполняется с твоими правами (кем-бы он не был подписан). Права подписанта (и того, "от чьего имени") начинают играть при запуске агента на сервере, т.е. по расписанию/по new or modified/и - agent.RunOnServer

У меня все получилось тем способом, что подсказал Medevic. На рабочих местах пользователей агент работает. Спасибо smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.