Die Java-API im Workplace Designer

Create Session

Die benötigte Session wird über die Methode createSession() der Klasse NotesFactory erstellt. Beim Aufruf werden der Name des Servers, der Name des Benutzers und dessen Passwort übergeben. Damit entfällt die Aufforderung des Passworts während der Abarbeitung des Programmcodes

var notesfactory = lotus.domino.NotesFactory;
se = notesfactory.createSession("<Server>","<Username>","<
Password>");

Das Weitere entspricht der üblichen Vorgehensweise – Zugriff auf die Datenbank, Erstellung und Speichern des Dokuments. Listing 3 zeigt den kompletten Programmcode.

document.setStringValue("/Schema_Buch/Status", "Vorhanden");
//Einbinden der Domino Klassen
var notespack = lotus.domino;
//Inhalt des Feldes Vorbestellen (enthält Namen des Interessenten) auslesen
var user = document.getStringValue("/Schema_Buch/Vorbestellen")
if (user!="") {
var notesfactory = notespack.NotesFactory;
try {
se = notesfactory.createSession("<Server>","<username>","password");
//Zugriff auf die mail.box
db = se.getDatabase("","mail.box");
//Dokument erstellen
doc = db.createDocument();
//Feldwerte setzen
doc.replaceItemValue("Form","Memo");
doc.replaceItemValue("Recipients", user);
doc.replaceItemValue("From","WSEMail");
doc.replaceItemValue("Subject","Ihr bestelltes Buch ist verfügbar");
doc.replaceItemValue("Body", _
"Das von Ihnen bestellte Buch wurde abgegeben und ist wieder verfügbar.");
//Mit dem Speichern wird das Dokument automatisch zugestellt.
doc.save(true, true);
//Objektzuweisungen aufheben
doc.recycle();
db.recycle();
se.recycle();
} catch (e) {
e.printStackTrace();
}
}

Alternativ können Sie natürlich auch wieder eine externe Java-Klasse programmieren, welche den eigentlichen Domino-Aufruf realisiert, und diese, wie bereits weiter oben gezeigt, in Ihrer Workplace Komponente verwenden. Diese Variante bietet den Vorteil, dass Änderungen beim Aufruf des Domino Servers möglich sind, ohne dass dies Einfluss auf den Programmcode innerhalb der Komponente hat. Sie müssen lediglich sicherstellen, dass die benutzten Schnittstellen sauber definiert sind und bei Modifikationen an der externen Klasse unverändert bestehen bleiben.