Verbalizer: Updated code using MSAgent to read e-mail aloud

After receiving years of email, feedback, and support for my first published article on SearchDomino, Using MSAgent to vocally/audibly read e-mail aloud, I ( = Brian Downs ) discovered that implementing the code on a Win2000 system required more than a few changes, and I thought I might share that updated and commented code with all my good friends here.

What this code does is to hijack Clippy….ah, err… I mean, utilize Microsoft Agent (MSAgent), to audibly read any text string fed to it aloud. Having no need to display the agents’ animation, we send Clippy to the netherregions of negative coordinates, enabling users to hear the agents’ “voice” without subjecting them to MSAgents’ animation.

Insofar as MSAgent is automatically installed with every modern Windows OS, its a pretty sure thing that this code *should* run on nearly all Wintel boxes in your organization. You may need to reorient the location of the “Merlin.acs” file to match your configuration, though.

Additionally, beyond the code and the Merlin.asc location, there is one last piece necessary for this to operate — an MSAgent object must be placed on the form on which the code is to run. Select whitespace on your form, and select ‘Create/Object’ in Designer. Switch the first option from ‘Object’ to ‘Control’, and in the Object TYpe selection list search out the “Microsoft Agent Control 2.0”, which will place a small icon representing the object. You can hide this object using the Text Properties box.

As in my original post, you’ll need to cobble together your own @ReplaceSubstring and @Contains scripts; SearchDomino has more than a few posts concerning both. And, as before, I’m still searching for a more elegant means of determining where a response post ends and its quoted original begins; currently, we’re testing for a “—-forwards” string, but I’d be pleased if anyone might suggest a better way.

Read More

Control e-mail with Domino Mail Rules

Using Domino Mail Rules and Passwords, you can control how e-mail is sent to a large number of recipients and protect inboxes from unwanted messages.

1. Create a Group named ej: “Mail Password” and add your own name to the member list.
2. In the Internet address field put the password followed by your domain — Ej:
3. Save the group document.
4. Create a Domino Mail Rule in the Configuration document with this content.
5. If “To or CC” is All Company and “BCC” is not – don’t accept the message.

via searchdomino

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 ( , ws.CurrentView.ViewName ) > 0 Then
     Redim Preserve FNames ( i ) As String
     FNames ( i -1 ) =
     i = i +1
   End If
 End Forall

For i = 0 To ( Ubound ( FNames ) - 1 )
   Msgbox FNames  ( i )
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.


Guide to the Notes/Domino Out of Office

Part 1: Out of Office Design and Features

This document, the first in a series of four, describes in detail the design features and behavior of the Lotus Notes/Domino Out of Office functionality, answering these questions: 1. Out of Office terminology: What are some frequently used terms to describe the Out of Office functionality? 2. What does it do (and not do)? 3. Where is the Out of Office functionality located? 4. How does a Hide When formula affect when you see the Out of Office options in the Notes client? 5. How does the Out of Office functionality work? –What happens when you click the Enable button? –What happens each time the Out of Office agent runs? 6. How does the Out of Office functionality work with local replicas?

Part 2: ACL Access Level and its impact on the Out of Office behavior

The access level that a mail file owner has in the Access Control List (ACL) of his or her mail database impacts the configuration and behavior of the Out of Office functionality in Lotus Notes/Domino. This document, the second in a series of four, describes the Out of Office functionality with respect to each allowable database access level, examining the LotusScript code differences among the following: –Manager access –Designer access –Editor access (available with Notes/Domino version 6.0)

Part 3: Configuration of the Out of Office

For the Out of Office feature to work properly, certain settings in the Server document and Notes databases must be configured. This document, the third in a series of four, describes in detail all the settings necessary to configure the Lotus Notes/Domino Out of Office, relative to each ACL access level. This document, intended for Domino administrators, is a checklist of all these necessary configuration settings.

Part 4: Out of Office in Domino Web Access (iNotes)

This document, the final of a series of four, describes the Out of Office feature with respect to the Domino Web Access (formerly iNotes Web Access) client, outlining the basic differences between using the feature when in the Notes client as opposed to a Web browser.