Domino 9 und frühere Versionen > Entwicklung

Dokumente in eine andere DB kopieren

<< < (2/3) > >>

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