Авто сохранение вложений из входящих писем на сетевой диск

Wanderer

Well-Known Member
Lotus team
23.03.2006
409
18
37
Москва
#1
Наверное, плохо искал, но не удалось найти здесь подходящей темы с решением...
Нашел код по сохранению вложений:
Код:
Sub Initialize 
Dim session As New NotesSession 
Dim db As NotesDatabase 
Dim doc As NotesDocument 
Dim dc As NotesDocumentCollection 
Dim rtitem As Variant 
Dim attachname As String 
Dim filename As String 
Dim body As NotesRichTextItem 
Dim emphasize As NotesRichTextStyle 

Set db = session.CurrentDatabase 
Set dc = db.UnprocessedDocuments 
Set doc = dc.GetFirstDocument 
Set rtitem = doc.GetFirstItem( "Body" ) 

If ( rtitem.Type = RICHTEXT ) Then 
Forall obj In rtitem.EmbeddedObjects 
If ( obj.Type = EMBED_ATTACHMENT ) Then 
Set emphasize = session.CreateRichTextStyle 
emphasize.Bold = True 
emphasize.NotesColor = COLOR_RED 
Set body = doc.GetFirstItem("Body") 
Call rtitem.AddNewLine( 2 ) 
Call body.AppendStyle(emphasize)		 
attachname = obj.source 
Call obj.ExtractFile
( "\\
QDSWJDE1AMstarUnProcessed\" 
& attachname ) 

Call rtitem.AddNewLine( 2 ) 
Call rtitem.AppendText(( "Your file was 
downloaded to\
\QDSWJDE1AMstarUnProcessed 
as filename: " ) & 
attachname) 
Call doc.Save( False, True ) 

End If 
End Forall 
End If 
End Sub
Для теста строчку Call obj.ExtractFile ( "\\QDSWJDE1AMstarUnProcessed\"& attachname ) заменил на Call obj.ExtractFile ( "C:\App\"& attachname )
Обнаружил, что агент на сервере не выполняет требуемые действия. Запустил ручками агент из Дизайнера (Run) - выдало ошибку Type Mismatch. Пропустил через дебаггер - ошибка выдается на строке:
Forall obj In rtitem.EmbeddedObjects

1й вопрос: что не так в этом коде?
2й вопрос: может есть у кого рабочий скрипт для агента по расписанию для авто сохранения аттачментов на сет.диске?
 

Wanderer

Well-Known Member
Lotus team
23.03.2006
409
18
37
Москва
#4
Спасибо за подсказку. Добавил проверку на наличие вложения, добавил цикл перебора всех отобранных документов (а то отрабатывало только первый док) - все работает.