iCalendar
Dieser Adapter erzeugt aus einem adapterspezifischen XML-Dokument ein iCalendar-Ereignis gemäß RFC 5545 oder konvertiert ein iCalendar-Textdokument in ein XML-Dokument. Zudem kann ein POP/SMTP-Adapter dynamisch parametriert werden, sodass im Anhang einer E-Mail ein iCalendar-Ereignis (z. B. eine Termineinladung) versendet wird.
Beispiel: Im Demosystem X4 Experience finden Sie den Beispielprozess iCalendarAdapter.wrf
zur Verwendung des Adapters.
Eigenschaften (Properties)
| Bestimmt, welche Operation der Funktions-Adapter durchführt Mögliche Werte:
Diese Operation wird mit dem nächsten Release abgekündigt. |
Parameter
| Hauptklasse des Adapters (nicht verändern!) Mögliche Werte:
|
| Dateiname des E-Mail-Anhangs mit dem iCal-Kalenderelement (für die Operation Mögliche Werte: Beliebiger gültiger Dateiname |
Statuswerte
| Die Operation wurde erfolgreich ausgeführt. |
| Die Operation ist aufgrund eines technischen Fehlers fehlgeschlagen. |
Abhängigkeiten
Dieser Adapter hat Abhängigkeiten zu folgenden Bibliotheken:
ical4j-1.0.jar
backport-util-concurrent-3.1.jar
icalendar.jar
Operation: iCal to XML
Mit der Operation iCal To XML
lässt sich ein gültiges iCal-Textdokument in XML konvertieren.
Input
Für die Operation iCal To XML
erwartet der Adapter ein beliebiges gültiges iCal-Textdokument.
Output
Für die Operation iCal To XML
gibt der Adapter ein XML-Dokument aus, das sämtliche Termin-Informationen enthält (siehe Beschreibung der Input-Struktur bei der Operation XML To iCal
).
Operation: XML to iCal
Mit der Operation XML To iCal
lässt sich eine adapterspezifische XML-Struktur in ein iCalendar-Textdokument konvertieren.
Input
Der Adapter erwartet ein Input-XML-Dokument gemäß folgendem Muster:
<iCalendarData>
<!-- E-Mail-Metadaten: Nur relevant, wenn der Adapter ein iXmap
für den POP/SMTP Adapter erzeugen soll -->
<mail>
<from><!--E-Mail-Adresse des Absenders--></from>
<to><!--E-Mail-Adressen der Empfänger durch Semikolons (";") getrennt--></to>
<cc><!--E-Mail-Adressen der CC-Empfänger durch Semikolons getrennt--></cc>
<bcc><!--E-Mail-Adressen der BCC-Empfänger durch Semikolons getrennt--></bcc>
<subject><!--Betreff--></subject>
</mail>
<prodId><!--Programm-ID, das die iCalendar-Daten erzeugt hat--></prodId>
<!-- Veröffentlichungsart gemäß RFC 2446 (S.73)
z. B. "REQUEST": Besprechungsanfrage;
"PUBLISH": rein informative Terminveröffentlichung -->
<method><!--Veröffentlichungsart--></method>
<timezoneId><!--Beliebige Zeitzonen-ID von ical4j, z. B. Europe/Berlin--></timezoneId>
<!-- Ereignis: siehe RFC 2445 S. 51 -->
<vevent>
<uid><!--Global eindeutige ID für die iCalendar-Komponente (ggf. automatisch erzeugt)--></uid>
<organizer>
<name><!--Name des Organisators--></name>
<mail><!--E-Mail-Adresse des Organisators--></mail>
<!-- zusätzliche Parameter je nach iCalendar-Eigenschaft
(nur für Experten) -->
<parameters>
<parameter>
<name><!--Parametername--></name>
<value><!--Parameterwert--></value>
</parameter>
</parameters>
</organizer>
<!-- Teilnehmer: (von MS Outlook nur teilweise unterstützt) -->
<!-- Outlook verwendet stattdessen die Empfängerdaten der E-Mail -->
<attendees>
<attendee>
<name><!--Name des Teilnehmers--></name>
<mail><!--E-Mail des Teilnehmers--></mail>
<!-- Teilnehmerinformationen; siehe RFC 2445 S. 28 -->
<role><!--REQ-PARTICIPANT, OPT-PARTICIPANT oder NON-PARTICIPANT--></role>
<partStat><!--Teilnahmestatus (bei Antwort): ACCEPTED, DECLINED ...--></partStat>
<askForResponse><!--Antwort anfordern: true oder false--></askForResponse>
<!-- zusätzliche Parameter je nach iCalendar-Eigenschaft
(nur für Experten) -->
<parameters>
<name><!--Parametername--></name>
<value><!--Parameterwert--></value>
</parameters>
</attendee>
</attendees>
<startTime timezoneId="Europe/London"><!--Startzeitpunkt (DATE oder DATE-TIME)-->
</startTime>
<endTime><!--Endzeitpunkt des Termins (DATE oder DATE-TIME)--></endTime>
<!-- Wenn ein Termin geändert wird: 0-n; wird bei
jeder Änderung um 1 erhöht -->
<sequence><!--Sequenz: 0-n--></sequence>
<priority><!--Priorität von 1-9 (1=höchste Priorität, 0=keine Priorität)--></priority>
<summary><!--Titel des Termins--></summary>
<description><!--Beschreibungstext des Termins--></description>
<location><!--Ort--></location>
<status><!--Status des Termins: CONFIRMED, TENTATIVE ...--></status>
<!-- Hinweis: MS Outlook kann Termine mit gesetzten
Elementen "rrule" und "exrule" nicht verarbeiten! -->
<rrule><!--Wiederholungsregel--></rrule>
<exrule><!--Ausnahmen der Wiederholungsregel--></exrule>
<!-- siehe RFC 2445 S.66 -->
<!-- Löst zu einem bestimmten Zeitpunkt eine Aktion aus;
kann nur in "vevent" und "vtodo2" verwendet werden -->
<valarm>
<!-- siehe RFC 2445 S.70 -->
<trigger>
<value><!--Zeitangabe, deren Typ von Element "type" abhängt--></value>
<type><!--Zeitangabentyp: DURATION (Standard), DATE-TIME oder DATE--></type>
<!-- wenn dieses Element "true" enthält und als Typ "DURATION"
gewählt ist, dann wird das Element "value" relativ zum
Endzeitpunkt der übergeordneten Komponente betrachtet,
andernfalls relativ zum Startzeitpunkt -->
<relativeToEnd>Relative Angabe: true oder false--></relativeToEnd>
</trigger>
<!-- siehe RFC 2445 S.69 -->
<action><!--DISPLAY--></action>
<repeat><!--Anzahl an Wiederholungen des Alarms--></repeat>
<!-- Zeitabstand zwischen den Alarmen, wenn "repeat" größer 0
ist (hier 30 Sekunden) -->
<duration><!--PT30S--></duration>
<summary><!--Titel der Alarmmeldung--></summary>
<description><!--Beschreibung der Alarmmeldung--></description>
<!-- Optional: Definition von "attendees" und "otherProperties"
(Struktur wie in "vevent") -->
</valarm>
<categories>
<!-- 1-n Kategorien, zu denen der Termin gehören soll -->
<category><!--Kategoriename--></category>
</categories>
<!-- Sonstige Properties (nur Properties, die für
diese Komponente definiert sind) -->
<otherProperties>
<property>
<name><!--Eigenschaftsname--></name>
<value><!--Eigenschaftswert--></value>
<parameters>
<parameter>
<name><!--Parametername--></name>
<value><!--Parameterwert--></value>
</parameter>
</parameters>
</property>
</otherProperties>
</vevent>
<!-- Aufgabe: siehe RFC 2445 S.54 -->
<vtodo>
<due timezoneId="US-Eastern"><!--Endzeitpunkt im Format YYYYMMDDThhmmss--></due>
<duration><!--Dauer - nicht gemeinsam mit Element "due" verwenden--></duration>
<!-- Hier können zusätzlich alle Elemente aus "vevent" außer "endTime"
verwendet werden. -->
</vtodo>
<!-- Journal: siehe RFC 2445 S.55 -->
<vjournal>
<!-- Alle Elemente aus "vevent" außer: "sequence", "priority",
"location", "endTime" und "valarm" -->
</vjournal>
<!-- Belegt/Frei: siehe RFC 2445 S.57 -->
<vfree_busy>
<uid>(siehe Element vevent)</uid>
<organizer><!--siehe Element "vevent"--></organizer>
<attendees><!--siehe Element "vevent"--></attendees>
<startTime><!--siehe Element "vevent"--></startTime>
<endTime><!--siehe Element "vevent"--></endTime>
<duration><!--Dauer - nicht gemeinsam mit Element "endTime" verwenden--></duration>
<comment><!--Kommentartext--></comment>
<otherProperties><!--siehe Element "vevent"--></otherProperties>
</vfree_busy>
<otherProperties><!--siehe Element "vevent"--></otherProperties>
</iCalendarData>
Output
Für die Operation XML To iCal
gibt der Adapter ein entsprechendes iCalendar-Textdokument aus.
Operation: Create iXmap for E-Mail Adapter
Diese Operation wird mit dem nächsten Release abgekündigt.
Mit der Operation Create iXmap for E-Mail Adapter
lässt sich eine iXmap-XML-Struktur mit Parameterwerten und dem iCal-Ereignis als E-Mail-Body ausgeben, die zum dynamischen Parametrieren eines POP/SMTP-Adapters dient; siehe X4 Developer Guide – Dynamische Prozesse über iXmap.
Input
Für die Operation Create iXmap for E-Mail Adapter
erwartet der Adapter die gleiche Input-XML-Struktur wie bei Operation XML To iCal
.
Zusätzlich kann jedoch das Wurzel-Element als erstes Kindelement ein Element <mail>
enthalten, in dem für jeden Parameter, der beim POP/SMTP-Adapter dynamisch gesetzt werden soll, ein gleichnamiges Element inklusive Wert definiert werden kann:
<iCalendarData>
<mail>
<!-- für jeden zu setzenden Parameter -->
<Parametername 1><!--Wert 1--></Parametername 1>
<Parametername n><!--Wert n--></Parametername n>
</mail>
<!-- Termindaten -->
</iCalendarData>
Output
Für die Operation Create iXmap for E-Mail Adapter
gibt der Adapter ein iXmap-XML-Dokument aus, das zum dynamischen Parametrieren eines POP/SMTP-Adapters dient; siehe X4 Developer Guide – Dynamische Prozesse über iXmap.
Damit die Prozess-Engine die iXmap-Struktur jedoch als solche erkennt, muss dieses XML-Dokument erneut via XSL transformiert werden. Dabei genügt eine Identitätstransformation. Ein darauf folgender POP/SMTP-Adapter wird dann dynamisch mit den im Input-XML-Dokument angegebenen Werten parametriert.
<iXmap>
<Return>
<!-- für jeden gesetzten Parameter -->
<Parametername 1><!--Wert 1--></Parametername 1>
<Parametername n><!--Wert n--></Parametername n>
</Return>
</iXmap>