in reply to Accessing a Lotus Notes Database
I am trying to write a script that will take a name off the command line and return the internet email address as stored in the company global address book in Lotus Notes. The following script will loop through all records and print out the data, which I can redirect to a temp file for grep'ing later, but I would like to look it up realtime. I saw the @dblookup function in Lotus, but wasn't successful at running it via perl. Any ideas? Your help is greatly appreciated.
use strict;
use English;
use warnings;
use vars qw($opt_d $opt_v);
use Getopt::Std;
use Win32::OLE;
# Open the email database in Lotus Notes
# (To use another person's email database, switch to
# their userid in Notes before running this program)
my $notes = Win32::OLE->new('Notes.NotesSession')
or die "Can't open Lotus Notes";
my $database = $notes->GetDatabase("LNSERVER","names.nsf");
#my $database = $notes->GetDatabase("","names.nsf");
# Verify the server connection
print "Connected to ", $database->{Title},
" on ", $database->{Server}, "\n";
# Loop over all of the folders
foreach my $viewname (GetViews($database)) {
# Get the object for this View
print "Checking folder $viewname...\n";
my $view = $database->GetView($viewname);
# Get the first document in the folder
my $num = 1;
my $doc = $view->GetFirstDocument;
next unless $doc;
GetInfo($num, $doc);
# Get the remaining documents in the folder
while ($doc = $view->GetNextDocument($doc)) {
$num++;
GetInfo($num, $doc);
}
}
sub GetInfo
{
my ($num, $doc) = @_;
my $FirstName = $doc->{'FirstName'}->[0];
my $LastName = $doc->{'LastName'}->[0];
my $MiddleInitial = $doc->{'MiddleInitial'}->[0];
my $email = $doc->{'ShortName'}->[0];
$email .= '@uhc.com';
print "$FirstName $MiddleInitial $LastName\t$email\n";
}
sub GetViews {
return ("People");
}
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Accessing a Lotus Notes Database
by diotalevi (Canon) on Dec 30, 2002 at 21:23 UTC |