Domino - Welten verkleben mit Perl

von Thomas, assono GmbH, Standort Kiel, 20.08.2009

Wenn man Notes/Domino und Perl in einem Satz erwähnt, werden die meisten (zumindest die, die beides kennen) sicher sofort an OLE-Automatisierung denken, aber es geht auch anders.

So kann man mit dem Perlmodul "Inline::Java" die Java-Schnittstellen des Domino-Servers nutzen und so die Stärken von Perl und Java kombinieren.
Gerade wenn man mal ein kleines Tool für zwischendurch benötigt, ist Perl hier sehr nützlich - im Hintergrund verrichtet natürlich immer noch Java die Arbeit.

Das folgende Perl-Programm listet alle Datenbanken im Datenbankverzeichnis des Domino-Servers auf und gibt jeweils einige Informationen aus (Replik-ID, Datenbanktitel, Pfad & Dateiname):

1 #! /usr/bin/perl


2


3
use strict;


4
use warnings;


5
use Inline (


6
Java => 'STUDY',


7
CLASSPATH => 'NCSO.jar', # NCSO.jar des domino servers



muß im classpath stehen



8
STUDY => ['lotus.domino.NotesFactory'],


9
AUTOSTUDY => 1


10
);


11


12


13
my $session;


14
my $dbdirectory;


15
my $database;


16


17
eval{


18
$session = lotus::domino::NotesFactory->createSession("servername", "user", "password");


19
$dbdirectory
= $session->getDbDirectory("");


20


21
##


22
# kleiner stolperstein in der funktion "getFirstDatabase" :


23
# "datenbanken suchen" muß im serverdokument für http-clients aktiviert werden:


24
#


25
# http://ianconnor.blogspot.com/2007/07/diiop-notesexception-server-access.html


26
#


27
$database
= $dbdirectory->getFirstDatabase($dbdirectory->{DATABASE});


28
};


29
# prüfen ob eine exception geworfen wurde


30
if($@){


31
die($@->toString()) if(ref($@)); # fehler in java


32
die($@); # oder in perl


33
}


34
# informationen für alle datenbanken im dbdirectory ausgeben


35
while(ref($database)){


36
eval{


37
print "[".$database->getReplicaID()."] : "


.
$database->getTitle()." -> "


.
$database->getFilePath()."\n";


38
$database = $dbdirectory->getNextDatabase();


39
};


40
if($@){


41
warn($@->toString()) if(ref($@));


42
die($@);


43
}


44
}


45

46
# am schluß noch aufräumen


47
$dbdirectory->recycle();


48
$session->recycle();





Links:

http://strawberryperl.com/

http://search.cpan.org/~patl/Inline-Java-0.52/

Thomas Bahn

Thomas Bahn

Diplom-Mathematiker, IT-Spezialist & Speaker auf Fachkonferenzen

Thomas Bahn ist Mitgründer und Geschäftsführer der assono GmbH. Seit mehr als 20 Jahren berät er erfolgreich Unternehmen aus ganz Deutschland rund um das Thema Software und Digitalisierung. Insbesondere in den Bereichen HCL Notes und Domino (ehemals IBM) als auch bei aktuellen, unternehmensrelevanten KI-Themen wie Chatbots kennt er die neusten Entwicklungen und weiß, wie diese sich gewinnbringend für Unternehmen einsetzen lassen. Aufgrund seines Expertenwissens ist Thomas Bahn regelmäßiger Sprecher auf nationalen und internationalen Fachkonferenzen.

Fachbeitrag Entwicklung HCL Domino Java JavaScript

Sie haben Fragen zu diesem Artikel? Kontaktieren Sie uns gerne: blog@assono.de

Sie haben Interesse an diesem Thema?

Gerne bieten wir Ihnen eine individuelle Beratung oder einen Workshop an.

Kontaktieren Sie uns

Weitere interessante Artikel