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 ?


Das Schwampel

Ebenso wie Reinhold Messner sich einst aufmachte, den Jeti zu finden, bemühen sich in Deutschland derzeit Tausende Möchtegern-Forscher darum, die Existenz des häufig als Fabelwesen eingestuften “Schwampel” endgültig zu beweisen. Doch was ist das für ein Tier, das momentan derart omnipräsent durch alle Medien geistert und binnen weniger Stunden in nahezu jeder Kaffeeküche dieser Republik zum Top-Gesprächsthema avancierte?
ZYN! klärt auf.


GIF und BMP mit Lotus Script erstellen

Guido Purper hat auf OpenNTF eine Lotus Script Klasse veröffentlicht, mit der es möglich ist, on the fly GIF und BMP Dateien zu erzeugen.

“I have developed this class to present statistical data in visual form (as graphs) and send them to some people automatically.
You can create 256-color images on-the-fly from within Notes, attach or embedd the images to HTML/MIME documents and send them to other people. This is not a “Paint” application, there is no way of interaction. This is a class to create images by Lotus script e.g. from an agent.” (Guido Purper, Januar 2005)

Damit lassen sich aus den Dokumenten einer Datenbank Statistiken erstellen, plattformunanbhängig und ohne zusätzliche Programme. Es kommt pures Lotus Script zum Einsatz. Durch die Verwendung spezieller Lotus Script Befehle ist die Klasse nur unter ND 6 verwendbar.

OK, das ist noch nicht so sonderlich schön geworden, aber mit ein bisschen Ã?bung lassen sich durchaus beeindruckende Ergebnisse erzielen.


Excel Datei ohne Excel erstellen

Programme zum Exportieren von Daten aus einer Lotus Notes Anwendung heraus gibt es viele. Alle diese Programme setzen voraus, daÃ? Excel auf dem Rechner, der die Exportdatei erzeugt auch installiert ist. Was macht man aber, wenn auf dem Rechner Excel nicht installiert ist oder der Export gar auf einem Server im Hintergrund laufen soll ? Was wenn die erzeugte Datei evtl. auch noch von älteren Versionen gelesen werden soll ?
Ein Format, welches Excel schon seit der Version 2.1 verwendet und welches auch noch mit Excel 2003 gelesen und verarbeitet werden kann ist BIFF2.1 ( Binary File Format )

Read More


Alle Dokumente einer Kategorie löschen

Hmm, warum kann ich eigentlich nicht einfach eine Kategorie markieren und bei Betätigung der “Entf” – Taste werden alle Dokumente der ausgewählten Kategorie gelöscht ? … Notes seitig passiert da rein gar nichts; noch nicht einmal eine Fehlermeldung wird auf den Bildschirm gezaubert. Es sei denn, man programmiert so etwas halt selber, aber die Boardmittel …


Adressbücher konsolidieren

Seit gut 5 Jahren verrichtet ein Tool bei mir im Unternehmen seinen Dienst; bei mir ist es fast schon in Vergessenheit geraten.
Durch einen Thread im deutschen Notes Forum musste ich mich aber noch einmal damit beschäftigen.

Ich verwende DWFSYNC, um Daten aus unterschiedlichen Adressbüchern in ein zentrales Organisationsverzeichnis zu synchronisieren.
Was unterscheidet die Synchronisation von der Replikation ? Dazu der Text aus der Hilfe.

Replication is the process of making two databases essentially identical.
In its simplest form, replication propogates additions, modifications and deletions in both directions between two data sources.

Synchronization is the process of propogating additions, modifications and deletions in one direction between a master database, called a source, to a target database.

Offenbar ist die Konfiguration des Tools aber nicht so einfach. Daher habe ich einmal eine Konfiguration vorbereitet, die die Quellen “Source 1” und “Source 2” in der Datenbank “Target” zusammenfasst.
Grundlage der Quellen und des Ziels ist die Schablone pernames.ntf.

DWFSYNC kann grundsätzlich jede Art von Daten behandeln ( ausgenommen Richtext ).
@Formulas können beim Füllen von Feldern verwendet werden.

DWFSYNC unterstützt ADD, UPDATE und DELETE von Datensätzen. Alles in Allem ein recht mächtiges Tool. Auf jeden Fall sollte man sich die, zugegebenermaÃ?en recht dürftigen, Hilfe-Dokumente einmal genauer ansehen.

DOWNLOAD