Domino - Welten verkleben mit Perl

von Arnd Koch,
assono GmbH, Standort Kiel,

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/

Fachbeitrag IBM Domino JavaScript Java Entwicklung

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

Sie wollen eine individuelle Lösung? Kontaktieren Sie uns

Weitere interessante Artikel

Sie haben Fragen oder möchten eine Demo anfordern?

Wenn Sie mehr über unsere Angebote erfahren möchten, können Sie uns jederzeit kontaktieren. Gerne erstellen wir eine individuelle Demo für Sie.

Wir verwenden Ihre Daten, um Sie einmalig per E-Mail zu kontaktieren. Wir geben Ihre Daten nicht an Dritte weiter. Siehe: Datenschutzhinweise
assono GmbH

Standort Kiel (Zentrale)
assono GmbH
Lise-Meitner-Straße 1–7
24223 Schwentinental

Standort Hamburg
assono GmbH
Bornkampsweg 58
22761 Hamburg

Telefonnummern:
Zentrale: +49 4307 900 407
Techn. Hotline: +49 4307 900 403
Vertrieb: +49 4307 900 402

E-Mail-Adressen:
kontakt@assono.de
bewerbung@assono.de