Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Wiesel am 18.10.07 - 11:02:44

Titel: Bestimmte Dokumente in Col per Script
Beitrag 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
Titel: Re: Bestimmte Dokumente in Col per Script
Beitrag von: klaussal am 18.10.07 - 11:13:18
Die Select-Formel der Ansicht ändern ?
Titel: Re: Bestimmte Dokumente in Col per Script
Beitrag von: bikerboy am 18.10.07 - 11:16:04
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.
Titel: Re: Bestimmte Dokumente in Col per Script
Beitrag von: koehlerbv am 18.10.07 - 11:16:57
Nein, sondern die Property UnprocessedDocuments der NotesDatabase class verwenden, um markierte Dokumente abzugreifen.

Bernhard
Titel: Re: Bestimmte Dokumente in Col per Script
Beitrag von: bikerboy am 18.10.07 - 11:19:19
@Kohlerbv :

hmm war ich wieder zu schnell und hab das mit den markierte Dokumente überlesen.
Titel: Re: Bestimmte Dokumente in Col per Script
Beitrag von: Wiesel am 18.10.07 - 11:32:27
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!