Hallo,
ich möchte über die COM-Schnittstelle nach Dokumenten in einem Kalender suchen.
Genauer gesagt, alle Einträge, die einen bestimmten Text im Body enthalten.
In einem Test-Script möchte ich mir einfach alle gefundenen Einträge anzeigen lassen:
Offenbar ist $entry aber leer, als ob nichts gefunden wurde?
Suche ich auf diese Art eigentlich richtig? Wird der komplette Kalendereintrag durchsucht oder ev. nur Titel?
(Im Beispiel sollte aber der Eintrag im Titel gefunden werden)
$session = new COM( "Lotus.NotesSession" );
$session->Initialize('Passwort');
$db = $session->getDatabase( "11.11.11.11", "mail\testdatenbank.nsf", false );
$view = $db->getView( "Calendar" );
$keys = "Test-Eintrag";
$dc = $view->getAllEntriesByKey($keys,false);
$entry = $dc->GetFirstEntry();
while (is_object($entry)) {
$field = $doc->GetFirstItem( "Body" );
$body = $field->text;
echo "Body: $body<br/>";
$entry = $dc->getNextEntry($entry);
}
Ich habs mal mit FTSearch probiert und finde sogar den ersten Satz.
Nur bekomme ich eine Fehlermeldung, beim Versuch, auf den nächsten Satz zu springen.
Fatal error: Uncaught exception 'com_exception' with message 'Error [0x8002000e] Unzulässige Parameteranzahl.
variant->GetNextDocument() #1 {main}
Hier der Code:
$db->UpdateFTIndex(True);
$numDocs = $view->FTSearch("FIELD Body CONTAINS Testeintrag", 10);
if ($numDocs <> 0) {
echo "gefundende Dokumente: $numDocs<br/>";
$doc = $view->GetFirstDocument();
for ($i = 0; $i < $numDocs; $i++) {
$field = $doc->GetFirstItem( "StartDateTime" );
$calbegin = $field->text;
echo "Beginn: $calbegin<br>";
$field = $doc->GetFirstItem( "EndDateTime" );
$calende = $field->text;
echo "Beginn: $calende<br>";
$field = $doc->GetFirstItem( "AppointmentType" );
$numtyp = $field->text;
switch ($numtyp) {
case 0:
$typ = "Appointment";
break;
case 1:
$typ = "Anniversary";
break;
case 2:
$typ = "Event";
break;
case 3:
$typ = "Meeting";
break;
case 4:
$typ = "Reminder";
break;
}
echo "Typ: $typ<br>";
$field = $doc->GetFirstItem( "Body" );
$mistfeld = $field->text;
echo "Body: $mistfeld<br>";
$doc = $view->GetNextDocument();
}
} else {
echo "<hr>Nichts gefunden!!!<hr>";
}