Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Wiesel am 18.10.07 - 11:02:44
-
Hallo!
Ich möchte einen Agenten per Script erstellen, in dem ich markierte Dokument in ein Archiv üertragen kann.
Ich habe bisher nur ganze Ansichten in eine Collection gepackt und die Dokumente dann kopiert und gelöscht.
Aber wie mache ich dass, wenn ich nur bestimmte Dokumente kopieren und löschen möchte?
Hier mal mein bisheriges Script:
Sub Archivierung ()
Dim S As New NotesSession
Dim DB As NotesDatabase
Dim Doc As NotesDocument
Dim View As NotesView
Dim Col As NotesDocumentCollection
Dim strArchivDB As String
Dim strArchivPfad As String
Dim x As Variant
Set DB = S.CurrentDatabase
Set Doc = DB.GetProfileDocument("(DBProfil)")
'Profil Dokument auslesen
strArchivDB = Doc.dbServerArchiv(0)
strArchivPfad = Doc.dbDateiArchiv(0)
Dim ArchivDB As New NotesDatabase(strArchivDB,strArchivPfad)
Set View = DB.GetView("(Archiv)")
Set Doc = View.GetFirstDocument
'Dokumente kopieren
Do Until Doc Is Nothing
Call Doc.CopyToDatabase(ArchivDB)
Set Doc = View.GetNextDocument(Doc)
Loop
'Dokumente löschen
Set Col = View.GetAllDocumentsByKey("bearbeitet")
Call Col.RemoveAll(True)
End Sub
Danke und Gruß,
Wiesel
-
Die Select-Formel der Ansicht ändern ?
-
Hmmm es ergeben sich doch ein paar Fragen für mich ?
1. Wo baust du hier ne Collection ?
2. Wann setzt du das Feld "bearbeitet"
3. Haben die Dokumente ein bestimmtes Kriterium ? Also nen bestimmtes Feld das bestimmt gesetzt ist , wenn ja dann mach doch ne DB.Search mit entsprechender Suchformel und kopier die Dinger dann in dein Archiv.
-
Nein, sondern die Property UnprocessedDocuments der NotesDatabase class verwenden, um markierte Dokumente abzugreifen.
Bernhard
-
@Kohlerbv :
hmm war ich wieder zu schnell und hab das mit den markierte Dokumente überlesen.
-
Bernhard, ich wusste ich kann mich auf Dich verlassen ;)
Genau das habe ich gesucht und es klappt wie am Schnürchen:
Sub Archivierung ()
Dim S As New NotesSession
Dim DB As NotesDatabase
Dim Doc As NotesDocument
Dim col As NotesDocumentCollection
Dim strArchivDB As String
Dim strArchivPfad As String
Set DB = S.CurrentDatabase
Set col = DB.UnprocessedDocuments
Set Doc = DB.GetProfileDocument("(DBProfil)")
'Profil Dokument auslesen
strArchivDB = Doc.dbServerArchiv(0)
strArchivPfad = Doc.dbDateiArchiv(0)
Dim ArchivDB As New NotesDatabase(strArchivDB,strArchivPfad)
Set Doc = col.GetFirstDocument()
'Dokumente kopieren
Do Until Doc Is Nothing
Call Doc.CopyToDatabase(ArchivDB)
Set Doc = col.GetNextDocument(Doc)
Loop
'Dokumente löschen
Call Col.RemoveAll(True)
End Sub
DANKE!