[gelöst] Aus Navision Kalendereinträge erzeugen

13. Oktober 2008 16:28

Hallo zusammen,

ist es möglich aus Navision eine E-Mail zu generieren, die bei den Adressaten einen Kalendereintrag
in Outlook erzeugt?

Danke schonmal!

MfG
Zuletzt geändert von F11 am 28. Oktober 2008 15:03, insgesamt 1-mal geändert.

Re: Aus Navision Kalendereinträge erzeugen

13. Oktober 2008 18:09

Hi F11,

ja du kannst sowohl eine E-Mail aus Navision heraus gerzeugen und verschicken als auch einen Outlook-Kalendereintrag erzeugen.

Zu der E-Mail: Hier stehen dir die Codeunits 397 (Mail) und 400 (SMTP Mail) zur Verfügung. Wie du eine E-Mail über die Codeunit 400 verschickst ist hier ausführlich beschrieben. Vielleicht hilft dir das.

Einen Outlook-Kalendereintrag könnte so erstellt werden:

Code:
IF ISCLEAR(olApplication) THEN
  IF NOT CREATE(olApplication) THEN
    ERROR('Outlook nicht gefunden');

olNamespace := olApplication.GetNamespace('MAPI');
olFolder := olNamespace.GetDefaultFolder(9);

olAppointmentItem := olFolder.Items.Add(1);
olAppointmentItem.Subject := 'Testkalendereintrag';
olAppointmentItem.Start := DATI2VARIANT(TODAY, 000000T);
olAppointmentItem."End" := DATI2VARIANT(TODAY, 000000T);
olAppointmentItem.AllDayEvent(TRUE);  // Ganztägig
olAppointmentItem.Body('Test Test');
olAppointmentItem.BusyStatus(3);    // 3 = Abwesend
olAppointmentItem.Save;

IF NOT ISCLEAR(olApplication) THEN
  CLEAR(olApplication);

In diesem Beispiel wird ein ganztägiger Termin erzeugt. Variablen sind so anzulegen wie es die Abbildung im Anhang zeigt.

Gruß, Marc
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: Aus Navision Kalendereinträge erzeugen

13. Oktober 2008 18:15

Sehe gerade, dass ich noch was in deinem Beitrag übersehen habe...

Um den Kalendereintrag bei mehreren Leuten zuhinterlegen könntest du zum Beispiel
Code:
olAppointmentItem.Recipients
nutzen.

Jedoch fragt Outlook dann beim Ausführen des C/AL-Codes nach, ob auf das persönliche Adressebuch zugegriffen werden darf. Etwas unschön...

Gruß, Marc

Re: Aus Navision Kalendereinträge erzeugen

17. Oktober 2008 10:17

Hi Marc,

danke für deine Antwort. Mit dem verschicken von E-Mails über die CU 400 habe ich mich schonmal beschäftigt.

Sehe ich richtig, dass für das Erzeugen von Kalendereinträgen auf die lokale Outlook Installation des Rechners zurückgegriffen wird, auf dem den Code ausführe? Beim verschicken über die CU 400 ist es gerade schön, dass die Mail direkt über einen SMTP Server geht und sich nicht über Outlook verschickt.

Gibt es diese Möglichkeit auch fürs Verschicken von Kalendereinträgen?

Gruß,
F11

Re: Aus Navision Kalendereinträge erzeugen

20. Oktober 2008 02:10

F11 hat geschrieben:Sehe ich richtig, dass für das Erzeugen von Kalendereinträgen auf die lokale Outlook Installation des Rechners zurückgegriffen wird, auf dem den Code ausführe?

Ja, genau so ist es.

F11 hat geschrieben:Beim verschicken über die CU 400 ist es gerade schön, dass die Mail direkt über einen SMTP Server geht und sich nicht über Outlook verschickt. Gibt es diese Möglichkeit auch fürs Verschicken von Kalendereinträgen?

Bestimmt, da Outlook beim Verschicken von Besprechungsanfragen auch E-Mail nutzt. Schick dir doch mal eine Besprechungsanfrage an ein Mail-Konto, welches du mit einem Mail-Programm abrufst, was Outlook-Besprechungsanfragen nicht kennt. So siehst du wie die E-Mail "in Wahrheit" aussieht und kannst diese evtl. selbst erstellen und dann über die Codeunit 400 veschicken.

Gruß, Marc

Re: Aus Navision Kalendereinträge erzeugen

21. Oktober 2008 08:42

So, ich habs rausgefunden.

Code:
BEGIN:VCALENDAR
PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
VERSION:2.0
METHOD:REQUEST
BEGIN:VTIMEZONE
TZID:Europe/Berlin
X-LIC-LOCATION:Europe/Berlin
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=3
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=10
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
CREATED:20081021T062943Z
LAST-MODIFIED:20081021T063009Z
DTSTAMP:20081021T063009Z
UID:a28a5af8-0fdb-4207-b825-d335607bbcf2
SUMMARY:TITEL
ORGANIZER;RSVP=TRUE;CN=SENDERNAME;PARTSTAT=ACCEPTED;ROLE=CHAIR:
 mailto:test@test.de
ATTENDEE;RSVP=TRUE;CN=EMPFÄNGERNAME;PARTSTAT=NEEDS-ACTION;
 ROLE=REQ-PARTICIPANT:mailto:EMPFÄNGEREMAIL
DTSTART;TZID=Europe/Berlin:20081021T090000
DTEND;TZID=Europe/Berlin:20081021T180000
DESCRIPTIONBESCHREIBUNG
SEQUENCE:0
END:VEVENT
END:VCALENDAR


So sieht der Code in einem Kalendereintrag aus. Man muss einfach eine ".ics" Datei erstellen, welche diesen Text, mit den entsprechenden Parametern, enthält.

Das wars ... danke für den Tipp Marc.