Habe heute mal ein bisschen mit der c++ API herumgespielt. Interessant fand ich die Klasse LNCalendar. Damit ist es recht einfach, Kalendereinträge in den eigenen oder einen fremden Kalender einzutragen.
#include <lncppapi.h>
#include <iostream.h>
void main ( int argc, char *argv[])
{
char errorbuf[512];
char * server="Comm1/Witte/de";
char * user="Jens Beimer/witte/de";
char* mailfile="mail\\jbeimer.nsf";
char* subject="My appointment";
char * Start="10/02/2005 15:01";
char * End="10/02/2005 19:00";
LNNotesSession s;
LNDatabase db;
LNCalendar Calendar;
LNCalendarEntry Entry;
LNSetThrowAllErrors(true);
try
{
s.Init();
LNDatetimeRange TheDate;
LNDatetime AptBegin ( Start );
LNDatetime AptEnd ( End ) ;
TheDate.SetBegin(AptBegin);
TheDate.SetEnd(AptEnd);
s.GetCalendar(&Calendar, server, mailfile, user);
Calendar.CreateEntry(TheDate, subject, LNCALENTRYTYPE_APPOINTMENT, &Entry);
Entry.Save();
}
catch (LNSTATUS error)
{
LNGetErrorMessage(error, errorbuf);
cout << "Error: " << errorbuf << endl;
}
s.Term();
}
Das Interessanteste daran ist, daß man den erzeugten Eintrag dahingehend untersuchen kann, welche Felder denn mit welchem Wert gefüllt sein müssen. Das könnte dann als Grundlage dienen, eine entsprechende Klasse auch mit LS aufzubauen, um dann bequem Kalendereinträge zu erzeugen. z.B. für einen Gruppenkalender
Schade finde ich es eigentlich, daß als Chair der Ersteller eingetragen wird. Mag im Frontend noch Sinn machen, im Backend weniger.
Leider kann man das auch nicht mehr ( einfach ) ändern. Zwar verfügt die LNCalendarEntry class über die Methode GetOwner; leider aber nicht über eine SetOwner method. Alle anderen Methoden sind Get/set, nur diese eben nicht. Schade.
Leider lassen sich ja die c++ wrapper functions nicht "direkt" wie die API Funktionen ansprechen. Werde morgen mal den wrapper aufdröseln; möglicherweise läßt sich ja mit den gewonnenen Erkenntnissen dann eine Klasse in LS aufbauen. Oder gibt es da schon was fertiges, kostenloses ?