Weil ich es immer mal wieder gebraucht habe und es vielleicht auch Anderen so geht, zeige ich hier kurz, wie man in Apex einen Outlook-Termin (VCS-Datei) erzeugen kann.
Es reicht, auf einer leeren Seite einen Prozess „Before Header“ anzulegen und diesen mit folgendem Code zu füllen:
declare v_titel varchar2(100); v_begin date; v_end date; v_description varchar2(512); v_ort varchar2(100); begin v_titel := 'Titel des Termins'; v_description := 'Nähere Beschreibung des Termins'; v_begin := to_char('27.03.2007', 'YYYYMMDD'); v_end := to_char('28.03.2007', 'YYYYMMDD'); v_ort := 'Location des Termins'; -- -- Falls in der Beschreibung Leerzeilen u.ä. enthalten sind, -- müssen diese vorher umgewandelt werden -- v_description := replace(v_description,chr(13),'=0D=0A'); v_description := replace(v_description,chr(10)); owa_util.mime_header('application/hbs-vcs', FALSE); htp.p('Content-Disposition: attachment; filename="termin.vcs"'); owa_util.http_header_close; htp.prn('BEGIN:VCALENDAR' || chr(13) || CHR(10)); htp.prn('PRODID;ENCODING=QUOTED-PRINTABLE:Termin' || chr(13) || CHR(10)); htp.prn('VERSION:1.0' || chr(13) || CHR(10)); htp.prn('BEGIN:VEVENT' || chr(13) || CHR(10)); htp.prn('TZ:-1' || chr(13) || CHR(10)); htp.prn('DTSTART:' || v_begin || chr(13) || CHR(10)); htp.prn('DTEND:' || v_end || chr(13) || CHR(10)); htp.prn('LOCATION;ENCODING=QUOTED-PRINTABLE:Ort ' || v_ort || chr(13) || CHR(10)); htp.prn('DESCRIPTION;ENCODING=QUOTED-PRINTABLE:' || v_description || chr(13) || CHR(10)); htp.prn('SUMMARY:' || v_titel || chr(13) || CHR(10)); htp.prn('END:VEVENT' || chr(13) || CHR(10)); htp.prn('END:VCALENDER' || chr(13) || CHR(10)); htmldb_application.g_unrecoverable_error := true; end;
Nun ruft man diese Seite per Button oder Link auf. Für den Link habe ich mir einen kleinen Briefumschlag gemalt und als Symbol hinterlegt. Statt der festen Werte im Script kann man auch per SELECT die Werte dynamisch aus einer Tabelle holen. Ich habe sie hier nur für das Beispiel fest vorbelegt.
Pingback: Outlook-Termin versenden | hilpers