Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: schroederk am 15.02.07 - 14:24:07

Titel: Kalendereintrag per PHP und COM erzeugen
Beitrag von: schroederk am 15.02.07 - 14:24:07
Hallo,

ich versuche über die COM-Schnittstelle einen Kalendereintrag in einer Mail-DB zu erzeugen.
Es werden und sollen auch nur Einträge vom Typ 'Event' erzeugt werden.

Das klappt auch schon prima, solange es sich bei diesem Event nur um einen Tag handelt.

$startdate = "19/03/2007";
$starttime = "04:00:00";
$enddate = "19/03/2007";
$endtime = "20:00:00";

$dstart = $session->createDateTime($startdate." ".$starttime);
$item = $doc->replaceItemValue("CalendarDateTime", $dstart);

Bei einem mehrtägigen Event hab ich aber Schwierigkeiten das Feld 'CalendarDateTime' zu füllen.

Hier muss ja jedes Datum/Zeit des Events in CalendarDateTime eingetragen werden.
In BVB-Beispielen im Internet wird hierfür ein Array gefüllt.

Wenn ich nun ein Array übergebe
$test[0] = $session->createDateTime("19/03/2007 04:00:00");
$test[1] = $session->createDateTime("20/03/2007 04:00:00");
$test[2] = $session->createDateTime("21/03/2007 04:00:00");
$item = $doc->replaceItemValue("CalendarDateTime", $test);

dann scheint der Befehl in einer Endlosschleife zu landen und der Notes-Client, sofern auf dem Webserver gestartet, beendet sich ohne Fehlermeldung.
Möchte ich nun die DB mit dem Client wieder öffnen, wird zunächst eine Konsistenzprüfung durchgeführt, die etwas länger dauert aber anschließend werden die Einträge korrekt angezeigt. Offenbar von Notes korrigiert.

Ich vermute, dass die Funktion replaceItemValue nicht das Ende/Größe des Arrays erkennt und daher endlos läuft?
Habs auch schon mit $test = array() und mit array_push() versucht, aber dasselbe Ergebnis.

Wie könnte ich denn den String aufbauen, damit dieser korrekt eingetragen wird?




Titel: Re: Kalendereintrag per PHP und COM erzeugen
Beitrag von: flaite am 15.02.07 - 15:44:46
something completly different, aber ist es eigentlich so schwierig aus PHP einen HTTP GET oder POST request gegen einen Domino Agenten zu erzeugen?
Hab wenig Erfahrung mit PHP, aber es gibt doch cURL: http://de.php.net/manual/de/ref.curl.php
In dem Notes Agenten kannst du dann sowohl für HTTP-GET als auch für HTTP-Post die Parameter auslesen und der Notes Agent führt dann damit die gewünschten Aktionen auf Domino Seite aus.

Vielleicht einfacher als diese COM Geschichte?
Das fällt natürlich aus, wenn du in die Notes DB keine Agenten hinzufügen darfst oder auf dem Server der Datenbank läuft der HTTP Task nicht. Wenn du das darfst, ist das mit hoher Wahrscheinlichkeit die einfachere Architektur für deine Aufgabe.


Gruß Axel
Titel: Re: Kalendereintrag per PHP und COM erzeugen
Beitrag von: schroederk am 15.02.07 - 15:52:38
Die ganze Sache soll/muss ohne Agenten laufen.

An sich ist die COM-Geschichte relativ trivial, wenn man mal den Ansatz hat.
Es gibt fast für alles Attribute oder Methoden.

Nur dieses CalendarDateTime ist tricky, da es sich beim Datentyp laut Designer-Hilfe um eine
Variante des Typs Date handelt.

Titel: Re: Kalendereintrag per PHP und COM erzeugen
Beitrag von: schroederk am 26.02.07 - 09:45:19

Bin leider noch immer an dem Problem, diesen mehrtägigen Kalendereintrag über php/com zu realisieren.

Hab im Notes6-Forum auf der Webseite von lotus.com ein Beispiel unter VisualBasic gefunden.
Lotus-Forum (http://www-10.lotus.com/ldd/nd6forum.nsf/55c38d716d632d9b8525689b005ba1c0/de35e8041aa85616852570af0030f01a?OpenDocument)

Leider lässt sich dieses Beispiel nicht 1zu1 nach php umsetzen. VB arbeitet hier mit Arrays und die
Array-Übergabe funktioniert unter php leider nicht.

Gibts vielleicht noch andere Adressen, wo ich vielleicht jemanden finden könnte, der bereits Erfahrung mit php und com hat?

Titel: Re: Kalendereintrag per PHP und COM erzeugen
Beitrag von: schroederk am 07.03.07 - 07:39:55
Hallo,

kann mir vielleicht jemand sagen, wie ich eventuell den Inhalt des Feldes CalendarDateTime sozusagen binär auslesen kann?

Vielleicht kann ich ja auf die Art und Weise umgekehrt das Feld wieder korrekt befüllen, in dem ich die "Zeichenkette" entsprechend erzeuge?