Domino 9 und frühere Versionen > ND7: Entwicklung

Agent zur Archivierung

(1/2) > >>

MarkusL:
Hallo zusammen,

ich habe mir dank einiger Einträge hier einen Agenten zusammenkopiert, der in einer Notes-DB alle erledigten Dokumente in eine andere DB verschiebt. Das funktioniert auch. (Danke an alle Helfer in diesem Forum).

Jetzt möchte ich noch ein Schmankerl einbauen.
Im Profildokument der aktiven DB sind in den Feldern "Server" und " ArchivDB" der Server und die Archiv-DB variabel hinterlegt. Wie bekomme ich den Agenten dazu, diese Felder auszulesen und zu verarbeiten?
LotusScript ist mir im Moment noch etwas zu hoch (ich arbeite daran) und ich habe in der Hilfe nichts gefunden.

Danke für Eure Hilfe


Sub Initialize
   '##############################################################################
   'Archiviert die Dokumente in die angegebene arcdb, wenn diese den Status "Archiv" haben.
   '##############################################################################   
   
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim arcdb As New NotesDatabase("Server" , "ArchivDB")
   Dim dc As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim wert As Variant
   Dim nextdoc As notesdocument
   
   Set db = session.CurrentDatabase
   Set dc = db.AllDocuments
   Set doc = dc.GetFirstDocument
   
   Do Until doc Is Nothing
      Set nextdoc = dc.getnextdocument(doc)
      '## Hier das Feld angeben welches das Kriterium zum Archivieren enthalten soll     
      wert = doc.GetItemValue("Status")
      '## Hier den Wert angeben den das oben angegebene Feld enthalten soll zum archivieren
      If wert(0) = "erledigt" Then
         Call doc.CopyToDatabase(arcdb)               
         '## folgenden Befehl rausnehmen, wenn das archivierte Dok nicht in der Quell-DB gelöscht werden soll !!         
         Call Doc.Remove( True )     
      End If
      Set doc = nextdoc
   Loop
   
End Sub   

ascabg:
Hallo,

Das hier sollte eigentlich als Stichwort helfen.

NotesDatabase.GetProfileDocument bzw.
NotesDatabase.GetProfileDocumentCollection


Andreas

MarkusL:
Hallo zusammen,

nach langer Zeit habe ich nochmal mit dem Problem beschäftigt.
Die beiden Felder kann ich im Profildokument auslesen. Nur leider nicht zusammensetzen und als DB verwenden.
Hier nochmal mein Code:

Sub Initialize
   '##############################################################################
   'Archiviert die Dokumente in die angegebene arcdb, wenn diese den Status "erledigt" haben.
   '##############################################################################   
   
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim archiv As NotesDatabase
   Dim dc As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim srv As NotesDocument
   Dim arcdb As NotesDocument
   Dim wert As Variant
   Dim nextdoc As notesdocument
   
   Set db = session.CurrentDatabase
   Set srv = db.GetProfileDocument("Konfiguration","Server")   
   Set arcdb = db.GetProfileDocument("Konfiguration","Datenbank")
        ' und hier weiß ich nicht weiter: archiv =
   Set dc = db.AllDocuments
   Set doc = dc.GetFirstDocument
   
   Print "Archivierung der erledigten Dokumente in die Archiv-Datenbank"
   Do Until doc Is Nothing
      Set nextdoc = dc.getnextdocument(doc)
      '## Hier das Feld angeben welches das Kriterium zum Archivieren enthalten soll     
      wert = doc.GetItemValue("Status")
      '## Hier den Wert angeben den das oben angegebene Feld enthalten soll zum archivieren
      If wert(0) = "erledigt" Then
         Call doc.CopyToDatabase(archiv)               
         '## folgenden Befehl rausnehmen, wenn das archivierte Dok nicht in der Quell-DB gelöscht werden soll !!         
         Call Doc.Remove( True )     
      End If
      Set doc = nextdoc
   Loop
   
End Sub   

ascabg:
Nur so als Hinweis.

Das GetProfileDocument liefert Dir ein Objekt der Notes-Klasse NotesDocument zurueck.

Und dieses NotesDocument kannst Du dann verwenden wie jedes andere Objekt dieser Klasse auch.
NotesDocument.GetItemValue()

Alles weitere findest Du in der Hilfe, wie auch das Auslesen von Werten aus einem Profile-Dokument.


Andreas

P.S.:
Das Profile fuer die Archiveinstellungen heisst nicht "Konfiguration" sondern "archive profile"

MarkusL:
Hallo Andreas,

mein Problem ist, dass ich nicht weiß (und es auch nicht finde), wie ich die beiden NotesDocuments "srv" und "arcdb" so zusammenfüge, dass Sie in der "Variablen" "archiv" als NotesDatabase zu gebrauchen sind. Mit "archiv" wird dann die Datenbank geöffnet, in welche die Dokumente verschoben werden sollen.

Dein P.S. verstehe ich nicht. In meiner selbstgebauten Datenbank heißt das Profildokument "Konfiguration". Aus diesem bekomme ich meine Werte.

Gruß Markus

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln