Domino 9 und frühere Versionen > ND6: Entwicklung
Agent für Archivierung
koehlerbv:
Da steckt aber eine ganz, ganz grosse böse Falle drin: Wenn der Agent mal aus einem einen Grunde nicht läuft, dann bleiben eigentlich zu archivierende Dokumente in der Datenbank drin.
Die Selektionsformel müsste also heissen:
SELECT ArchivDatum >= @Today
HTH,
Bernhard
sja:
Hallo Harry, Bernhard,
herzlichen Dank für eure Hilfe.
Die Ansicht hatte ich schon mit folgender Auswahlformel
SELECT (ProjektAktiv = "inaktiv")&(DatumArchiv <= @Today)|@AllChildren
In dieser Ansicht sind alle Hauptdokumente mit den Antwortdokumenten bis zum aktuellen Datum und die alle mussen archiviert werden.
DatumArchiv >= @Today wäre falsch.
Ich versuche jetzt der Agent zu codieren und zu testen und schreibe dann meine Code und Testergebnisse.
Ich hatte einfach Probleme mit User Interface für LS Agent: wuste nicht wie soll man zu den defaulten Abschnitten (Options. Declarations, Initialize und Terminat) weitere Abschnitte (Funktionen und Prozeduren) hinzufügen. Jetzt weiss ich es. Vielleicht für jemanden wird die Information auch hilfreich:
man fügt in einen freien Beriech eines bereits bestehenden Abschnitts einfach einen neuen Funktionskopf od. Prozedurkopf ein und drückt die Enter-Taste. Meiner Meinung nach, man kann nicht intuitiv dazu kommen.
Grüsse
Sofia
sja:
also meinen Versuch sieht so aus (ich habe nur copy in Archiv Datenbank ausprobiert, deliete noch nicht ):
Abschnitt (Declarations)
Dim VEC As NotesViewEntryCollection
Dim ve As NotesViewEntry
Dim view As NotesView
Dim db As NotesDatabase
Dim db2 As NotesDatabase
Dim doc As NotesDocument
Abschnitt Initialize
Sub Initialize
Dim s As New NotesSession
Set db = s.CurrentDatabase
Set view =db.getview("archiv")
Set VEC = view.AllEntries
Set ve = VEC.GetFirstEntry()
Set db2 = New NotesDatabase( "", "ARCHIV.nsf" )
While Not (ve Is Nothing)
Set doc = ve.Document
Call doc.CopyToDatabase(db2)
'Call VEC.DeleteEntry(ve)
'Set ve = VEC.GetFirstEntry()
Set ve = VEC.getNextEntry(ve)
Wend
End Sub
Ergebnisse:
der Agent wurde ausgeführt, die Hauptdokumente und entsprechende Antwortdokumente wurden in der Archiv-Datenbank kopiert
Doch funktioniert das richtig. Jetzt probiere ich mit delete.
Sofia
sja:
also meinen Agent sieht so aus:
Dim VEC As NotesViewEntryCollection
Dim ve As NotesViewEntry
Dim view As NotesView
Dim db As NotesDatabase
Dim db2 As NotesDatabase
Dim doc As NotesDocument
Sub Initialize
Dim s As New NotesSession
Set db = s.CurrentDatabase
Set view =db.getview("archiv")
Set VEC = view.AllEntries
Set ve = VEC.GetFirstEntry()
Set db2 = New NotesDatabase( "", "archiv.nsf" )
While Not (ve Is Nothing)
Set doc = ve.Document
Call doc.CopyToDatabase(db2)
doc.Remove(True)
Set ve = VEC.getNextEntry(ve)
Wend
End Sub
Ich habe ihn getestet und er funktioniert. Die Hauptdokumente mit den entsprechenden Antwortdokumenten mit dem Datum vor und gleich ToDay wurden in die Archiv-Datenbank kopiert und aus der Projekt-Datenbank gelöscht. Jetzt verstehe ich nicht, warum soll solchen Agent 1.000 EURO kosten. Oder das, was ich gemacht habe, ist falsch und man kann das nicht verwenden?
Also, wenn es richtig ist und für jemand kann das auch zur Hilfe sein, werde ich mich freuen.
Wenn es falsch ist, werde ich sehr dankbar, wenn man mich korrigiert (da ich nur Frischling bin).
Vielen Dank für Hilfe
Sofia
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln