не запускается агент на After New Mail Has Arrrived

Статус
Закрыто для дальнейших ответов.

Gor

Well-Known Member
#1
Суть вопроса такова.
Написал агента который должен изменять Subject во всех письмах которые приходят в Inbox, причём после того как пришло новое письмо.
Вот агент -
В Document selection - выставлен Folder в который приходят письма

Initialize в агенте -
Код:
Sub Initialize
Dim As NotesDatabase
Set db = s.CurrentDatabase
Dim view As NotesView
Dim doc As NotesDocument


Set doc = view.GetFirstDocument
While Not (doc Is Nothing)
'Call doc.RemoveFromFolder("($Inbox)")
doc.subject = "ff"
Call doc.Save(True,True)
Set doc = view.GetNextDocument(doc)
Wend
End sub
В свойствах агента его запуск выставлен на событие (Event)
Событие выставлено как - After new mail has arrrived
Галка Enable в свойствах стоит

Когда посылаю письмо в базу оно приходит, но Subject не меняется.

Заметил ещё одну вещь - если событие вытавлено(Event) как Before new mail arrives и при этом код
тот же самый он отрабатывается!!!! но единственно не меняет Subject в последнем пришедшем письме.(тк событие Before new mail arrives).

Ещё небольшое замечание агент отрабатывается на событии After new mail has arrrived если его вручную запускать...

Так почему же на событие After new mail has arrrived агент не запускается автоматически?! Может опять галка какая ни-ть или ещё что то?
 
E

Elena Nefedova

Гость
#5
Так почему же на событие After new mail has arrrived агент не запускается автоматически?! Может опять галка какая ни-ть или ещё что то?
Просто After new mail has arrrived отрабатывает раз во сколько-то там минут. Подождите сколько-то - он и отработает сразу для всех новых писем.
Это не баг, а так задумано...
 

GROMILA

Well-Known Member
08.04.2004
297
0
41
Минск
#6
В свойствах агента его запуск выставлен на событие (Event)
Событие выставлено как - After new mail has arrrived
Галка Enable в свойствах стоит
Настрой права доступа:
1. Подписать сервером
2. Указать от имени кого будет выполняться агент (Run on behalf of)


Когда посылаю письмо в базу оно приходит, но Subject не меняется.
Трассируй
Отладка серверного агента методом трассировки

Код:
	On Error Goto label_ErrorHandler
Dim agentLog As New NotesLog("Agent log")

Call agentLog.OpenAgentLog	' Начало трассировки

...

' Трассирвка
Call agentLog.LogAction("Обрабатывается письмо с темой " & doc.Subject(0))
...

label_Quit:	
Call agentLog.Close	' завершение трассировки
Exit Sub

label_ErrorHandler:	
Call agentLog.LogAction("Agent Error (" & Str(Err) & "): " & Error$)
Resume label_Quit

Как просмотреть лог?
1. В Дизайнере открыть окно со списком агентов
2. Стать на нужнй агент (Выделить, но не открывать)
3. Меню [Agent\Log...] или в контекстном меню выбрать [Log...]
 

Constantin A Chervonenko

Well-Known Member
Lotus team
#7
Просто After new mail has arrrived отрабатывает раз во сколько-то там минут. Подождите сколько-то - он и отработает сразу для всех новых писем.
Сударыня, тут вы не правЫ. По умолчанию (конечно, их мог кто-то изменить..) мыльный агент стартует в течение минуты после прихода почты.
Вот агент по Новому/Обновленному док-ту - от 5 мин до 30 (опять-же - по умолчанию)

Настрой права доступа:
1. Подписать сервером
2. Указать от имени кого будет выполняться агент (Run on behalf of)
Подписант мыльного агента должен:
1. Иметь права доступа к данной базе (и конкретному документу)
2. Иметь право выполнять фоновые агенты данного сорта на данном сервере (см. закладку Security в док-те Server)
3. Иметь ПЯ на данном сервере, точнее HomeServer=данный сервер

Последний пункт специфичен именно для PostMail -агента
 
Статус
Закрыто для дальнейших ответов.