• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

проблемы с документами

  • Автор темы Автор темы nadezdaMP
  • Дата начала Дата начала
Omh
не знаю точно, может вы мне обьясните?=)
просто в хелпе во всех примерах используются.
знаю только тчо в лотусе лучше вместо str$ использовать Сstr(str)
 
nadezdaMP
Используйте inview.AutoUpdate = false, чтобы во время работы скрипта "индекс следующего" не уменьшался, а был старым.

Другой вариант, который пригодится вам, когда вы будете не удалять из папки, а удалять из базы
Код:
	While Not indoc Is Nothing
Set nextdoc = inview.GetNextDocument(indoc)
' делаем любые действия с документом indoc, в том числе уничтожающие сам объект 
Set indoc = nextdoc
Wend
 
Коллеги, подскажите где я не прав, так как проблема как раз та, что обсуждается в этой ветке. Агент перебирает документы в папке, должен их после полезной работы раскладывать по папкам, но из имеющегося количества документов обрабатывается половина. Я всё сделал в соответствии с постом #22 от Divankin - не работает... Помогите pls советом.
Код:
Sub Initialize
Dim s As NotesSession
Dim db As NotesDatabase
Dim dc As NotesView
Dim doc As NotesDocument
Dim docNext As NotesDocument

Set s = New NotesSession
Set db = s.CurrentDatabase
Set dc = db.GetView(con_LN_In_Folder)

dc.Resortview "Date", True
dc.Autoupdate = False

Set doc = dc.GetFirstDocument

While Not doc Is Nothing
Set docNext = dc.GetNextDocument(doc)
Call SaveAttachment(Doc, attachmentObject, rtiLog)
Delete doc
Set doc = docNext
Wend
End Sub

Sub SaveAttachment(parDoc As NotesDocument, parAttachment As Variant, parLog As NotesRichTextItem)
Call parAttachment.ExtractFile("SomePath")
parDoc.PutInFolder("folder2")
parDoc.RemoveFromFolder("folder1")
End Sub
 
Вобщем дальнейшие исследования показали, что, не смотря на AutoUpdate = False, вьюха тем не менее обновляется каким-то образом (то ли FrontEnd приложением, то ли общим каким-то процессом Domino), так что этот способ не может быть надёжным по определению. А мне именно важно обработать все документы и именно в том порядке, как они следуют во вьюхе. Поэтому пришлось обойти это следующим способом.
Код:
Sub Initialize
Dim s As NotesSession
Dim db As NotesDatabase
Dim dc As NotesView
Dim doc As NotesDocument

Dim listDoc List As NotesDocument

Set s = New NotesSession
Set db = s.CurrentDatabase
Set dc = db.GetView(con_LN_In_Folder)
dc.Autoupdate = False

Set doc = dc.GetFirstDocument

intCount = 1

While Not doc Is Nothing
Set listDoc(intCount) = doc		
Set doc = dc.GetNextDocument(doc)
intCount = intCount + 1 
Wend	

ForAll docTemp In listDoc
Call SaveAttachment(docTemp, attachmentObject, rtiLog)
Delete docTemp
End ForAll
End Sub

Sub SaveAttachment(parDoc As NotesDocument, parAttachment As Variant, parLog As NotesRichTextItem)
Call parAttachment.ExtractFile("SomePath")
parDoc.PutInFolder("folder2")
parDoc.RemoveFromFolder("folder1")
End Sub
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab