[gelöst] Zugriff auf Outlook-Kalendereinträge aus BC14

7. Juni 2021 16:03

Heyho,

ich habe eine Funktion in BC, mit der ich in Outlook einen Kalendereintrag erstellen kann. Das klappt soweit ganz gut. Allerdings stellt sich jetzt die Frage, wie man zu einem späteren Zeitpunkt auf GENAU DIESEN Kalendereintrag zugreifen kann, um beispielsweise das Datum zu ändern oder den Eintrag aus Outlook zu löschen. Gibt es hier eine Möglichkeit?

FG
Thomas
Zuletzt geändert von ThomasFerstl am 11. Juni 2021 15:50, insgesamt 1-mal geändert.

Re: Zugriff auf Outlook-Kalendereinträge aus BC14

8. Juni 2021 17:20

Hallo,

eine direkt Lösung habe ich leider nicht.

Man sollte aber wohl nach dem speichern des Appointments dessen ID holen können. Über
Code:
outlookAppItem.GlobalAppointmentID

Um später mit dieser ID das Appointment wieder zu laden und bearbeiten zu können. Vielleicht über
Code:
outlookNamespace.GetItemFromID()



https://stackoverflow.com/questions/638 ... -appointme

Beste Grüße, ich hoffe es hilft ein Stück weit.

Re: Zugriff auf Outlook-Kalendereinträge aus BC14

11. Juni 2021 15:46

Vielen Dank für Deine Antwort. Dein Tipp mit Namespace.GetItemFromID hat mir sehr geholfen, auch wenn es mit GlobalAppointmentID leider nicht funktioniert hat.

Letztlich funktioniert es bei mir wie folgt:

Anlegen eines Kalendereintrags:
Code:
olItemType := olItemType.olAppointmentItem;

olApplication := olApplicationClass.ApplicationClass();
olAppointment := olAppointmentClass;

olAppointment := olApplication.CreateItem(olItemType);
olAppointment.Subject := 'Testeintrag';
olAppointment.Body := 'Testtext';
// olAppointment.Location := 'Ort';

// Set the start date
olAppointment.StartUTC := CREATEDATETIME(TODAY,180000T);
// End date
olAppointment.EndUTC := CREATEDATETIME(TODAY,183000T);

olAppointment.ReminderSet := TRUE;
olAppointment.ReminderMinutesBeforeStart := 15;
olAppointment.ReminderPlaySound := TRUE;
olAppointment.Save();

gtxAppointmenEntryID := olAppointment.EntryID;


Ändern des Kalendereintrags
Code:
olApplication := olApplicationClass.ApplicationClass();
olAppointment := olAppointmentClass;

olNamespace := olApplication.GetNamespace('MAPI');
olAppointment := olNamespace.GetItemFromID(gtxAppointmenEntryID,NonInitializedVariant);
// Die Variant-Variable ist notwendig, weil die GetItemFromID-Methode mit zwei Parametern aufgerufen werden muss: EntryID und StoreID - Die StoreID ist dabei optional

olAppointment.Subject := 'Geänderter Testeintrag';
olAppointment.Body := 'Testtext';
// olAppointment.Location := 'Ort';

// Set the start date
olAppointment.StartUTC := CREATEDATETIME(TODAY,183000T);
// End date
olAppointment.EndUTC := CREATEDATETIME(TODAY,190000T);

olAppointment.ReminderSet := TRUE;
olAppointment.ReminderMinutesBeforeStart := 15;
olAppointment.ReminderPlaySound := TRUE;
olAppointment.Save();


Verwendete Variablen:
Code:
gtxAppointmenEntryID : Text;

olApplication : DotNet "'Microsoft.Office.Interop.Outlook, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'.Microsoft.Office.Interop.Outlook.Application" RUNONCLIENT;
olApplicationClass : DotNet "'Microsoft.Office.Interop.Outlook, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'.Microsoft.Office.Interop.Outlook.ApplicationClass" RUNONCLIENT;
olAppointment : DotNet "'Microsoft.Office.Interop.Outlook, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'.Microsoft.Office.Interop.Outlook.AppointmentItem" RUNONCLIENT;
olAppointmentClass : DotNet "'Microsoft.Office.Interop.Outlook, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'.Microsoft.Office.Interop.Outlook.AppointmentItemClass" RUNONCLIENT;
olItemType : DotNet "'Microsoft.Office.Interop.Outlook, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'.Microsoft.Office.Interop.Outlook.OlItemType" RUNONCLIENT;
olNamespace : DotNet "'Microsoft.Office.Interop.Outlook, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'.Microsoft.Office.Interop.Outlook.NameSpace" RUNONCLIENT;
NonInitializedVariant : Variant;
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: [gelöst] Zugriff auf Outlook-Kalendereinträge aus BC14

11. Juni 2021 16:22

Cool freut mich - gefühlt kommt das demächst noch auf mich zu.