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 Entwicklung JavaScript Java

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

IBM Cognos Analytics 11.0.9 (R9)

IBM Cognos Analytics 11.0.9 (R9)

Erst Mitte November hatten wir über Neuerung in der Version 11.0.8 gebloggt. Knapp ein Monat später veröffentlicht IBM die Version 11.0.9 … Mehr

von
Filip Meyer
,

Sie haben Fragen? Wir sind für Sie da.

Wenn Sie mehr über unsere Angebote erfahren möchten, können Sie uns jederzeit kontaktieren. Sie können uns auf verschiedene Weisen für eine unverbindliche Erstberatung erreichen:

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