Ich hab mich mal ein wenig an die COM-Schnittstelle anhand des genannten Beispiels und der Notes-Hilfe versucht.
Ziel war es alle Namen des Notes-Adressbuchs anzeigen zu lassen.
Zunächst habe ich den 7.0.2er Cient auf dem Webserver lokal installiert.
Das Script sieht derzeit so aus:
<html>
<head>
<title>Notes über COM</title>
</head>
<body>
<h2 align="center">Lotus Notes über COM-Schnittstelle ansprechen</h2>
<?
global $myConfig;
# COM Session aufbauen
$session = @new COM( "Lotus.NotesSession" );
if (!$session) {
$this->lotuslog( "Leider konnte keine Verbindung zum Server hergestellt werden");
return false;
}
$session->Initialize();
if ('' == $myConfig->sLotusDB) {
$myConfig->sLotusDB = 'names.nsf';
}
$dbInput = $session->getDatabase( "", $myConfig->sLotusDB );
if( !$dbInput ) {
$this->lotuslog( "Leider wurde die Datenbank für die Verarbeitung nicht gefunden");
return false;
}
$view = $dbInput.GetView("Mail Users");
$viewnav = $view.CreateViewNav();
$pointer = $viewnav.GerFirstDocument();
while ($pointer) {
$doc = $pointer.Document;
$item1 = $doc.GetFirstItem("FullName");
$wert = $item1.Values;
echo "Name: $wert<br>";
$pointer = $viewnav.GetNextDocument;
}
?>
</body>
</html>
Ich hab mich ein wenig schwer getan, den Namen einer View zu finden. Auch weiß nicht, wie die Authentifizierung stattfindet. Soweit ich verstanden habe, wird sich an der lokalen notes.ini orientiert, damit stehen ja Server und Benutzer-ID schonmal fest, aber nicht das Kennwort.
Das Script erzeugt derzeit keine Ausgabe noch eine Fehlermeldung noch sonstwas. Das Script scheint endlos laufen zu wollen. Also Fischen im Trüben.
Vielleicht hat jemand ein einfaches Beispielscript zur Hand? :knuddel: