Domino 9 und frühere Versionen > ND7: Entwicklung

Agent zur Archivierung

<< < (2/2)

oxyd21:
Das "Zusammenborgen" von Code, den man nicht versteht ist immer ein bischen ungünstig.    ;)


--- Zitat ---... als NotesDatabase zu gebrauchen sind ...
--- Ende Zitat ---
Was liegt da näher, als die NotesDatabase-Klasse zu studieren?

notesDatabase.Open( server$, dbfile$ )

VG, Michael

ascabg:
@MarkusL

Also nochmal.

GetProfileDocument liefert Dir ein Objekt der Klasse NotesDocument zurueck. Willst Du jetzt Werte aus diesem Profil auslesen muss Du Dich mit der Klasse NotesDocument beschaeftigen.

Will also heissen.
Wert aus dem Feld fuer den Server = NotesDocument.GetItemValue("Feld fuer Server")(0)
Wert aus dem Feld fuer die Db = NotesDocument.GetItemValue("Feld fuer Db")(0)

Also NICHTS mit 2 NotesDocuments.

Und bitte nochmal.
Lies Dir in der Designer-Hilfe die angegebenen Klassen und Methoden dieser Klassen genau durch.
Hier findest Du auch genuegend Beipspiele, wie Du Werte aus Profil-Dokumenten auslesen kannst und weiterverareitest.


Andreas

MarkusL:
Hallo zusammen,

ich habe es geschafft. Vielen Dank an alle Helfer.
Und hier nochmal der fertige Code für alle:

Sub Initialize
   '##############################################################################
   'Archiviert die Dokumente in die copyDb, wenn diese den Status "erledigt" haben.
   '##############################################################################   
   
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim confDoc As NotesDocument   
   Dim copyDb As NotesDatabase   
   Dim dc As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim nextdoc As Notesdocument
   Dim wert As Variant
   
   Set db = session.CurrentDatabase
   
   ' Das Konfigurationsdokument holen
   Set confDoc = db.GetProfileDocument("Konfiguration")
   
   ' Die Feldwerte Server und Datenbank auslesen
   sServer = confDoc.Server(0)
   sDb = confDoc.Datenbank(0)
   
   ' Die Archivdatenbank instanzieren
   Set copyDb = session.GetDatabase(sServer,sDb)
   
   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(copyDb)               
      '## 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,

Na hoffentlich wird in der Applikation, in der Du diese kleine Arcivierung eingebaut hast, nicht mir Antworten auf Dokumente herumgespielt.

Und wenn doch, dass wird beim Setzen des Status im Hauptdokument, dieser Status gleich mit auf die Antwortdokumente uebertragen.


Andreas

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln