Outlook-Termin in Apex erzeugen » CC13.com
Dienstag, März 27th, 2007 | Author:

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.

Category: Allgemein
You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

One Response

  1. [...] für eine Oracle-Anwendung mal solch einen Fall gehabt und dazu etwas auf meinem Blog hinterlassen: http://www.cc13.com/wordpress_21/?p=56 Für c# funktioniert es imho genauso. Du erzeugst eine .vcs-Datei mit den entsprechenden Einträgen [...]

Leave a Reply » Log in