DMS in Essen, Outline, Archivierung und GDPdU

In dieser Woche findet in Essen die DMS2005 statt. die DMS2005 ist Europas gröÃ?te, hochspezialisierte Messe zum Thema Unternehmensweite Elektronische Informations- und Dokumentenverarbeitung, begleitet durch eine ebenfalls dreitägige Fachkonferenz.

Ich habe mich dort für meinen Arbeitgeber zum Thema GDPdU konforme Archivierung von Lotus Notes Dokumenten bei verschiedenen Anbietern umgesehen. Resumee; alle Anbieter konnten mit dem Thema umgehen. Der Eine besser, der Andere nicht so gut.

Alle besichtigten Anbieter konnten einzelne oder mehrere Dokumente aus der Maildatei in ein Archiv ( Non-Notes ) archivieren. Dabei konnten die Dokumente vollständig oder auch nur die darin enthaltenen Attachments archiviert werden. ( Dublettenprüfung ! )

So weit, so gut. Durch die Bank weg konnten ALLE eine Sache nicht. Das Archivieren kompletter Ordnerstrukturen mit allen in dieser Struktur enthaltenen Dokumenten. Niemand hatte auch nur ansatzweise eine Idee, wie das zu realisieren ist.
Soll ich also wirklich alle Dokumente in einer gewachsenen Ordnerstruktur Ordner für Ordner ins Archiv schieben ? Kann ja wohl nicht sein. Grund genug, sich einmal Gedanken darüber zu machen, ob das Unvermögen der Anbieter mit technischer Unmöglichkeit zu erklären ist.

Betrachten wir einmal die abgebildete Ordnerstruktur. Der übergeordnete Ordner ist â??SAPâ?. Es müssen also alle Ordner ermittelt werden, die sich unterhalb dieses â??WurzelOrdnersâ? befinden.
Lotus Notes enthält zwar zwei Klassen: â??NotesOutlineâ? und â??NotesOutlineEntryâ?. Man könnte glauben, man käme mit den Methoden dieser Klassen ans Ziel. Weit gefehlt, die helfen uns bei dieser Aufgabe nicht weiter.

Der Tip von Frank im Deutschen Notes Forum brachte Licht ins Dunkel. @ViewTitle könnte weiter helfen. @ViewTitle lässt sich aber nicht in LotusScript verwenden, also muss die Idee entsprechend umgesetzt werden.

Der folgende Code zeigt schon das Endergebnis der weiteren Ã?berlegungen:

Sub Initialize
 Dim s As New NotesSession
 Dim ws As New NotesUIWorkspace
 Dim i As Integer
 i = 1
 Forall v In s.CurrentDatabase.Views
   If Instr ( v.name , ws.CurrentView.ViewName ) > 0 Then
     Redim Preserve FNames ( i ) As String
     FNames ( i -1 ) = v.name
     i = i +1
   End If
 End Forall

For i = 0 To ( Ubound ( FNames ) - 1 )
   Msgbox FNames  ( i )
 Next
End Sub

Das Konstrukt â??ws.CurrentView.ViewNameâ? ist nichts anderes als @ViewTitle. Und das ist auch schon das ganze â??Geheimnisâ?. Der Rückgabewert repräsentiert den ausgewählten Ordner. Um jetzt auch noch alle Unterordner zu ermitteln, lesen wir zunächst alle Ansichten und Ordner der Datenbank aus ( â??s.CurrentDatabase.Viewsâ? ) und vergleichen jeden Eintrag mit dem retVal aus â??ws.CurrentView.ViewName â??. Bei einem Treffer schreiben wir das Ergebnis in die Variable FNames.

FNames enthält am Ende der ForAll-Schleife alle Unterordner des Wurzelordners und den Wurzelordner selbst.
Jetzt ist es nur noch ein kleiner Schritt, die Einträge in FNames dazu zu verwenden, entsprechende NotesDocumentCollections zu erstellen und die Docs in den Collections ins Archiv zu schaufeln.

Liebe Aussteller; so schwer ist das doch gar nicht, oder ?

2 thoughts on “DMS in Essen, Outline, Archivierung und GDPdU

  1. Hallo,

    super Script!

    Aber was ist, wenn mehrere Ordner / Ansichten den gleichen Namen haben? Funktioniert das Script dann trotzdem korrekt?

    Beispiel:

    2007\Januar

    2008\Dezember
    2008\Januar

    2008\Dezember

    Wenn ich dann im Ornder 2008\Januar stehe, “erkennt” das Script dann, dass ich NICHT im Ordner 2007\Januar stehe, obwohl der Unterordner genau so heißt?

    Christoph

  2. Korrektur:

    Es muss natürlich

    2007\Januar

    2007\Dezember
    2008\Januar

    2008\Dezember

    heißen.

    Christoph

Comments are closed.