Domino - Welten verkleben mit Perl

von Arnd,
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 HCL Domino JavaScript Java Entwicklung

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

Sie haben Fragen?

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
Vertrieb: +49 4307 900 402

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