Copytodatabase

makaset

Well-Known Member
14.03.2007
128
0
#1
всем привет! кто подскажет откопал такой код
а он коприует все документы из базы. а мне надо что бы копировался те документы который я выделил во вюхе. и после коприования удалил из текущей базы


Dim nArchDb As New NotesDatabase("arch","arch.nsf")
Dim nSs As New NotesSession
Dim nDb As NotesDatabase
Dim nDoc As NotesDocument
Dim nDocColl As NotesDocumentCollection
Set nDb = nSs.CurrentDatabase
Formula1$={Form="RabDoc"| @AllChildren }'условия отбора
Set nDocColl = nDb.Search(Formula1$,Nothing,0)
Set nDoc = nDocColl.GetFirstDocument
While Not(nDoc Is Nothing)
Call nDoc.CopyToDatabase(nArchDb)
Set nDoc = nDocColl.GetNextDocument(nDoc)
Wend
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 492
367
#2
открываем хэлп...
сморим NotesUIView class
 

savl

Well-Known Member
Lotus team
28.10.2011
2 126
163
#3
В свойствах агента выставить "All Selected Documents", заменить способ получения коллекции в коде
Код:
Dim nArchDb As New NotesDatabase("arch","arch.nsf")
Dim nSs As New NotesSession
Dim nDb As NotesDatabase
Dim nDoc As NotesDocument
Dim nxtDoc as NotesDocument
Dim nDocColl As NotesDocumentCollection
Set nDb = nSs.CurrentDatabase
Set nDocColl = nDb.UnprocessedDocuments
Set nDoc = nDocColl.GetFirstDocument
While Not (nDoc Is Nothing)
Set nxtDoc = nDocColl.GetNextDocument(nDoc)
Call nDoc.CopyToDatabase(nArchDb)
Call nDoc.remove(True) ' аккуратнее с этим
Set nDoc = nxtDoc
Wend
 

savl

Well-Known Member
Lotus team
28.10.2011
2 126
163
#5
Логично)
Потому что копируются только выделенные документы.
Для копирования всех ответных нужен перебор ответных.
Получить ответные можно через doc.Responces, но это ответные первого уровня, если у ответных есть ответные, то надо делать такой же перебор для каждого ответного.
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 492
367
#6
отметка отработанных доков потянет за собой UI (установка процессед - работает долго)
т.о. придем к NotesUIView...
так зачем ваще юзать анпроцессед? :)
второй шаг - это получение чайлдов, ту опять - не нужно Responces, ведь есть NotesViewNavigator и notesView.CreateViewNavFromDescendants
 

savl

Well-Known Member
Lotus team
28.10.2011
2 126
163
#7
lmike
А должна ли архивация(судя по задаче это она) идти вручную?
По мне так нужен шедульный агент по расписанию, а вручную документы только метить к архивированию.
А вот потом бежать агентом по спец вьюхе.
И не удалять в процессе архивирования документы! Только метить к удалению, удалять потом, через сутки. Мало ли сбой какой...
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 492
367
#8
навигатор не помешает в любом раскладе
если метится интерактивно - то и юивью нужен