Domino 9 und frühere Versionen > Entwicklung
Dokumente in eine andere DB kopieren
ata:
... gib mir nähere Infos, dan schau ich mal, was ich für dich machen kann...
ata
eknori:
Die Archivierung über den bereits vorhandenen Agenten zu machen, war zwar auf der einen Seite sinnvoll, da hier ja auch die Ordner entsprechend in der Zieldatenbank angelegt werden. Ich war der Meinung, daß das in LS ohne Schnick und Schnack gemacht wird. Jetzt habe ich mir den Agenten mal angesehen. Ich hoffte irgendwo das doc.remove zu finden, das man dann lediglich auskommentieren müsste und dann läuft das so, wie du dir das gewünscht hast.
ABER: es gibt in dem Agenten zwei unkommentierte Methoden der NotesDatabase Klasse
- ArchiveNow ( collection as NotesCollection , Optional policy as ?? )
- ArchiveDestinations
Habe das dann flugs mal ausprobiert
Sub Click(Source As Button)
Dim s As New NotesSession
Dim db As NotesDatabase
Set db = s.CurrentDatabase
Dim policyList As Variant
policyList = db.ArchiveDestinations
Msgbox policyList(0)
End Sub
... liefert die eingestellte Archivierungs Policy zurück.
und
db.archiveNow ( col )
archiviert alle Dokumente einer NotesDocumentCollection.
Das heißt dann aber auch, daß sich der Agent nicht umbauen läßt, da das remove in der Methode enthalten ist
zu archiveNow() gibt es hier noch infos
http://www-10.lotus.com/ldd/46dom.nsf/Search?SearchView&Query=archivenow&SearchOrder=0&Start=1&Count=100
eknori
widmaier:
Hallo eknori, hallo ata, erst einmal danke für eure Hilfe. Ich will euch noch einmal genau erzählen, was mein Problem ist.
Ich habe 2 Datenbanken. Beide sind aus der Schablone Dokumenten Library Notes und WEB. In DB1 werden alle möglichen Dokumente eingestellt, von denen eine Auswahl in DB2 übergeben werden, auf welche ein anderer Zugriff hat. Es soll nicht mit Author/Reader Felder realisiert werden, sondern tatsächlich über 2 getrennte DB´s. Ich hoffe, ich habe es einigermassen verständlich gemacht.
eknori:
baue bir mal einen Agenten - einfache Aktion - in Datenbank kopieren. Ich bin mir nicht sicher, aber ich glaube, da wird die Struktur auch mit übetragen.
Axel_Janssen:
weiß nicht, ob ich dich richtig verstehe und hoffe ich drücke mich einigermaßen verständlich aus:
Dies ist der Ansatz eines zu Fuß-Vorschlags.
Das mit der Auswahl an Dokumenten hab ich nicht drin. Geht glaub ich über NotesDatabase.Unprocessed Documents.
Die Idee ist, daß du vor dem kopieren in die andere Datenbank "aufzeichnest" welche Dokumente in welchen Foldern liegen.
Dafür iterierst du über alle Folder und darin über alle Dokumente. Du speicherst dann den Foldernamen und die UniversalID des Dokuments in einer Datenstruktur. Beide Werte sind einfach durch ein # getrennt.
Diese Wertepaare kommen alle in einen dynamischen Array dataDocsAndFolders().
Nach dem kopieren kannst du dann möglicherweise mit diesen aufgezeichneten Daten die alte Struktur wieder herstelln ???
nur sone Idee.
--- Code: ---Sub Initialize
Dim sessionThis As New NotesSession
Dim dbThis As NotesDatabase
Dim varAllViews As Variant
Dim dataDocsAndFolders () As String
Dim indexArray As Integer
Dim strDocsAndFoldersItem As String
indexArray = -1
Set dbThis = sessionThis.currentDatabase
varAllViews = dbThis.Views
Forall x In varAllViews
If x.isFolder Then
Set doc = x.getFirstDocument
Do Until doc Is Nothing
indexArray = indexArray + 1
Redim Preserve dataDocsAndFolders(indexArray) As String
strDocsAndFoldersItem = x.Name + "#" + doc.UniversalID
dataDocsAndFolders(indexArray) = strDocsAndFoldersItem
Set doc = x.getNextDocument(doc)
Loop
End If
End Forall
Forall y In dataDocsAndFolders
Msgbox y
End Forall
End Sub
--- Ende Code ---
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln