|
APEX-Kalender in Microsoft Outlook oder Mozilla Thunderbird integrieren
Die Nutzung von Kalendern in APEX-Anwendungen kommt ja recht häufig vor. Hat man
eine Tabelle mit den entsprechenden Informationen und vor allem einer DATE-Spalte,
so ist die Darstellung der Informationen als Kalender eine Sache von wenigen Minuten
(Abbildung 1).
Abbildung 1: Kalender in APEX-Anwendungen
Nun lässt es sich in einem solchen Kalender schon sehr elegant navigieren, aber
die meisten Anwender nutzen Programme wie Microsoft Outlook oder Mozilla Thunderbird mit
dem Lightning-Plugin zur persönlichen Terminplanung - und schon ist die Anforderung
da, die Daten aus dem APEX-Kalender dort anzuzeigen (Abbildung 2).
Abbildung 2: Die Daten aus dem APEX-Kalender: dargestellt in Thunderbird
Wie das geht, erfahren Sie im folgenden in diesem Tipp. Und Sie werden sehen, dass
es denkbar einfach ist. Ausgangsbasis für das Beispiel sei die Tabelle TIPP_KALENDER,
die Sie mit dem SQL-Skript
erstellen können.
Es gibt mehrere Protokolle zum Austausch von Kalenderinformationen; für unsere
Zwecke ist das
iCalendar (ICS)-Format am besten geeignet: Es ist sehr einfach und
die gängigen Programme wie Microsoft Outlook oder Mozilla Thunderbird verstehen es. Ein Ereignis
im iCalendar-Format kann so aussehen (Quelle: Wikipedia - http://de.wikipedia.org/wiki/ICalendar).
Der Bereich VEVENT kann mehrfach vorkommen - man sieht
sofort, dass sich
dieses Format extrem leicht aus einer Tabelle generieren lässt. Dazu wird nichts weiter
als eine PL/SQL-Prozedur benötigt.
Vergeben Sie nun das EXECUTE-Privileg an dieser Prozedur an PUBLIC. Die Experten unter den Lesern
ahnen schon, dass dies an der APEX-Session vorbeigeht - die PL/SQL-Prozedur, die dann direkt per URL aufgerufen wird, ist völlig
losgelöst von einer APEX-Session. In diesem Fall, wo es um das Publizieren "öffentlicher" Informationen geht, kann das aber
akzeptiert werden.
Wenn Sie das PL/SQL Embedded Gateway verwenden, müssen Sie die direkte Verwendung der
Prozedur noch freischalten. Wie das geht, ist im Tipp
Einrichtung und Nutzung des PL/SQL Embedded Gateways genau beschrieben.
Der folgende Code, als DBA ausgeführt, schaltet die Prozedur frei.
Bei Verwendung des Apache Webservers brauchen Sie die Prozedur normalerweise nicht; es sei
denn, in der DAD-Konfiguration ist der Parameter
PlsqlRequestValidationFunction gesetzt; gehen
Sie dann wie oben vor. Das gleiche gilt auch für die Verwendung des APEX Listeners.
Probieren Sie die Funktion dann ganz einfach aus, indem Sie sie mit dem Browser
aufrufen. Bauen Sie die URL wie folgt zusammen: http://{host}:{port}/{dad}/{datenbankschema}.tippical - ein Beispiel könnte also sein: http://server:8080/apex/testit.tippical.
Abbildung 3: Test der PL/SQL-Prozedur und des generierten iCalendar-Formates
Wenn das soweit funktioniert, können Sie als nächstes den Test mit Outlook bzw.
Thunderbird machen.
Das iCalendar-Format kann auch anderweitig genutzt werden. Neben dieser Nutzung zur Publizierung
eines Kalenders sind natürlich andere Nutzungsvarianten denkbar. So ist es denkbar, aus einer
APEX-Anwendung wird per MAIL_MAIL eine Email mit einem Anhang im iCalendar-Format
generiert (APEX_MAIL.ADD_ATTACHMENT)- der Empfänger kann die Veranstaltung dann per
Drag & Drop in seinen Kalender übernehmen. Alles in allem können die Anwender so wesentlich
effizienter mit der APEX-Anwendung arbeiten - denn die Informationen erscheinen dort, wo
die Terminplanung durchgeführt wird.
Zurück zur Community-Seite
|