Domino 9 und frühere Versionen > ND7: Entwicklung
Agent zur Archivierung
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