Autor Thema: Dokumente in eine andere DB kopieren  (Gelesen 4039 mal)

Offline widmaier

  • Aktives Mitglied
  • ***
  • Beiträge: 153
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
    • meine Domino Homepage
Dokumente in eine andere DB kopieren
« am: 09.08.03 - 07:45:20 »
Hallo, gibt es einen Agenten, der 1 - x markierte Dokumente von einer Datenbank mit Ordnern und Kategorien in eine andere Datenbank kopiert. Sie sollten dort in den gleichen Ordnern oder den gleichen Kategorien landen und falls nicht vorhanden erstellen.

Sollte jemand sowas schon einmal gemacht haben, bitte posten!

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re:Dokumente in eine andere DB kopieren
« Antwort #1 am: 09.08.03 - 08:09:27 »
guck dir mal die Archivfunktion in der MailDB an. Da ist alles drin, was du brauchst
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline widmaier

  • Aktives Mitglied
  • ***
  • Beiträge: 153
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
    • meine Domino Homepage
Re:Dokumente in eine andere DB kopieren
« Antwort #2 am: 09.08.03 - 08:45:35 »
Hallo eknori,

ich bin deinem Rat gefolt und habe den Agent "gewählte Dokumente archivieren" kopiert und das script? oder klasse? common. Funktioniert schon fast so wie es soll. Es verschiebt nämlich die Dokumente. Es soll aber kopieren! Hast du mir da noch einen Tip?

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Dokumente in eine andere DB kopieren
« Antwort #3 am: 09.08.03 - 10:13:55 »
... ich habe in meinem LS-Tutorial auf meiner Homepage eine kleine Beispielfunktion zur Archivierung unter "Dokumente | Archivierung" - dort den .Remove auskommentieren...

http://www.anton-tauscher.de

... ich werte alle Dokumente nach Status aus - das kann man natürlich auch auf eine Ansicht begrenzen...

'# View initialisieren, dann

Set doc = view.GetFirstDocument
While not doc Is Nothing
    ' # ... dein Code zur Archivierung...
    Set doc = view.GetNextDocument( doc )
Wend

ata

Grüßle Toni :)

Offline widmaier

  • Aktives Mitglied
  • ***
  • Beiträge: 153
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
    • meine Domino Homepage
Re:Dokumente in eine andere DB kopieren
« Antwort #4 am: 09.08.03 - 14:35:06 »
Hallo ata, sorry, aber so gut bin ich nicht. Programmieren ist nicht so meine Stärke! Kannst du helfen?

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Dokumente in eine andere DB kopieren
« Antwort #5 am: 09.08.03 - 15:16:16 »
... gib mir nähere Infos, dan schau ich mal, was ich für dich machen kann...

ata
Grüßle Toni :)

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re:Dokumente in eine andere DB kopieren
« Antwort #6 am: 09.08.03 - 15:17:48 »
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

« Letzte Änderung: 09.08.03 - 15:20:17 von eknori »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline widmaier

  • Aktives Mitglied
  • ***
  • Beiträge: 153
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
    • meine Domino Homepage
Re:Dokumente in eine andere DB kopieren
« Antwort #7 am: 09.08.03 - 16:10:54 »
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.

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re:Dokumente in eine andere DB kopieren
« Antwort #8 am: 09.08.03 - 16:17:29 »
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.
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Axel_Janssen

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 769
Re:Dokumente in eine andere DB kopieren
« Antwort #9 am: 09.08.03 - 17:11:44 »
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
... design patterns are abstract designs that help identify the structure and elements involved in a specific design solution. From this, a concrete implementation can be produced.
Kyle Brown

Offline widmaier

  • Aktives Mitglied
  • ***
  • Beiträge: 153
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
    • meine Domino Homepage
Re:Dokumente in eine andere DB kopieren
« Antwort #10 am: 09.08.03 - 18:45:36 »
Hallo eknori, die einfache Aktion habe ich als erstes gebaut. Der nimmt aber icht die Ordnerstruktur mit, sondern kopiert in "Alle Dokumente".

@Axel, deiner Ausführung kann ich nicht folgen. Ich bin nicht der Programmierer, also bitte unterster Level.

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Dokumente in eine andere DB kopieren
« Antwort #11 am: 09.08.03 - 21:58:50 »
... in der Methode von mir werden die Dokumente von A nach B verschoben, aber eben keine Ordnerstrukturen - also ich denke mal Eknorie's weg ist der am meisten versprechende...

... nur den Agenten zu verwenden scheint nur die halbe Wahrheit zu sein. Aber auch in der Mail-DB ist das ja nicht alles, was man zur Archivierung unternimmt. Zuvor muß die Archivierung ja noch administriert werden. Ich vermute mal, daß hier der Hund begraben liegt - wenn die Hitze mal endlich ein Ende nimmt werde ich mir die undokumentierten Dinger mal vornehmen - noch ist es zu heiß...

... schönes WE...

ata
Grüßle Toni :)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz