Не выполняется агент

  • Автор темы fvoice
  • Дата начала
F

fvoice

#1
Создал агента, Shared, Trigger - On Sheldue, Run on behalf of - указал себя, Runtime security - 3, Default Access - All Readers and Above, в теле использую NotesSession и NotesDocumentCollection.

В результате агент должен удалить помеченные документы из БД.

Когда агент запускаю я он срабатывает и удаляет документы, а когда кто-то другой, документы не удаляются, хотя:
Код:
If Agent.Run = 0 Then
Print "Agent DelMarkedDocs run"
Else
Print "Agent DelMarkedDocs did not run"
End If
выводит "Agent DelMarkedDocs run"

Тело:
Код:
	Dim s As New NotesSession
Dim dc As NotesDocumentCollection

Set dc = s.CurrentDatabase.Search({form = "Deleted"},Nothing,0)

Call dc.RemoveAll(True)
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#2
А ты имеешь право подписывать Run on behalf of агенты? Обычно при сохранении выдается предупреждение. Или нажми "Test" в списке агентов.
 
K

K-Fire

#3
Так агент по расписанию выполняется, или его запускает руками юзер?
Если по расписанию - добавь в тело агента месседжбокс, лучше даже 2, типа что "агент запущен", "агент закончил работу". И смотри лог потом.

Если он не запускается вообще - то может быть такая проблема: в момент времени должно запускаться больше агентов чем на сервере запущено агент менеджеров, в результате какие-то агенты просто не стартуют. Надо либо поменять время первого запуска - например поставить не 7:00 а 7:24, или на сервере больше агент менеджеров пускать.
 
D

D!m@n

#4
Очевидно, что агент запускается, но на удаление документов прав ему почему-то не хватает...
 
F

fvoice

#5
А ты имеешь право подписывать Run on behalf of агенты? Обычно при сохранении выдается предупреждение. Или нажми "Test" в списке агентов.
Да имею, тест проходит нормально.

Для: K-Fire
Посмотрел лог, пишет "You are not authorized to perform this operation"

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

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#6
Для: fvoice
Для верности подпиши сервером. И убери Run on behalf.
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#8
Для: fvoice
Запускаешь Администратор, ищешь базу и подписываешь. :)
 
F

fvoice

#9
убрал Run on behalf, подписал, та же печенька вылазит :)

"You are not authorized to perform this operation"

сделал запуск от имени сервера, не помогает..
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#10
Для: fvoice
В ACL у сервера, которым подписал, необходимые права есть?
 
F

fvoice

#11
Для: Medevic
Да для этой БД, право удалаять документы есть только у меня и у сервера, остальные же пользователи не могут удалять документы.

Еще кое что: когда агент запускается по расписанию он без затруднений удаляет доки, может что то я не правильно в свойствах проставил?
 
F

fvoice

#13
Для: Medevic
Спасибо, теперь работает! +1

Если не тяжело что означает noteID$ в параметрах RunOnServer (Инглиш знаю, просто не пойму?
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#14
<!--QuoteBegin-fvoice+3:09:2007, 15:38 -->
<span class="vbquote">(fvoice @ 3:09:2007, 15:38 )</span><!--QuoteEBegin-->Если не тяжело что означает noteID$ в параметрах RunOnServer (Инглиш знаю, просто не пойму?
[snapback]77111" rel="nofollow" target="_blank[/snapback]​
[/quote]
NoteID документа (notesDocument.NoteID). Потом в агенте можно получить этот документ методом notesDatabase.GetDocumentByID.