Microsoft Exchange-Kalender
Einführung in Microsoft Exchange-Kalender in ConSol CM
Sie können einen Microsoft Exchange-Kalender in ConSol CM integrieren. Der Kalender wird im Web Client im Abschnitt Calendar der Vorgangs-, Kontakt- oder Ressourcenseite, oder auf dem Dashboard angezeigt. Die Benutzer können neue Termine erstellen und vorhandene Termine ansehen und bearbeiten.
Integrieren eines Microsoft Exchange-Kalenders
Führen Sie folgende Schritte durch, um einen Microsoft Exchange-Kalender zu integrieren:
-
Entscheiden Sie, wo der Kalender dargestellt werden soll. Dies kann entweder in einem Objekt sein oder auf dem Dashboard:
-
Aktivieren Sie auf der gewünschten Seite (Vorgang, Person, Firma oder Resource) in der Seitenanpassung den Abschnitt Kalender. Dazu müssen Sie das Attribut state in calendar von hidden auf expanded oder collapsed setzen.
-
Fügen Sie dem Dashboard ein Kalender-Widget hinzu, indem Sie es in widgetsGrid zum Attribut layout hinzufügen.
-
-
Schreiben Sie auf der Seite Skripte der Web Admin Suite ein Kalenderskript (Typ Calendar integration) und referenzieren Sie es in der Seitenanpassung, Attribut calendarInitializationScript von calendar, siehe Schreiben des Kalenderskripts.
-
Wenn die Benutzer die Möglichkeit haben sollen, Termine zu erstellen oder bearbeiten, setzen Sie das Attribut editable von calendar auf true.
Schreiben des Kalenderskripts
Das Kalenderskript muss eine Map mit den Informationen für den Zugriff auf den Microsoft Exchange-Server zurückgeben. Folgende Parameter können im Skript verwendet werden:
-
name
String. Der Name zur Identifizierung der Quelle (noch kein Funktion)
-
color
String. Hintergrundfarbe für Termineinträge im HTML-Farbformat, z. B. red oder #D80000) -
editable
Boolean. Gibt an, ob Termine erstellt, bearbeitet oder entfernt werden können. Wenn nicht gesetzt, wird der Wert aus der Seitenanpassung verwendet (standardmäßig false.Zusätzlich braucht der aktuelle Benutzer Schreibrechte auf das Objekt, in dem der Kalender angezeigt wird, um Termine editieren zu können.
-
access.*
Properties für den Zugriff auf den Kalender:-
access.type
String. Mögliche Werte EXCHANGE (Microsoft Exchange Server), RANDOM (zu Testzwecken zufällig generierte Termine)Für EXCHANGE:
-
access.url
URL. Die URL der .asmx-Datei auf dem Exchange-Server. Diese Datei befindet sich normalerweise im Verzeichnis EWS (Exchange Web Services) und stellt den Exchange Access Web Service zur Verfügung. -
access.username
String. Der Name des technischen Benutzers, mit dem die Anmeldung beim Exchange-Server durchgeführt wird. -
access.password
String. Das Passwort des technischen Benutzers, mit dem die Anmeldung beim Exchange-Server durchgeführt wird. -
access.domain
String. Die Windows-Domäne des Exchange-Servers. Der technische Benutzer muss ein Mitglied dieser Domäne sein. -
access.impersonation
String. E-Mail-Konto eines Exchange-Kalenderbenutzers. Die Anmeldung beim Exchange-Server erfolgt mit dem technischen Benutzer. Danach wechselt der Benutzer mithilfe der Exchange-Serverfunktion Impersonation (Identitätswechsel) zu dem hier angegebenen individuellen Benutzer. Der Kalender des impersonalisierten Benutzers wird angezeigt. Wenn der Name des Benutzers in Exchange und ConSol CM identisch ist, können Sie über die Methode workflowApi.getCurrentEngineer().getName() oder engineerService.current.name den Namen des aktuellen Benutzers an Exchange weitergeben.Die Funktion zum Wechseln der Identität kann nur von einem Konto verwendet werden, dem der Exchange-Administrator die Rolle ApplicationImpersonation erteilt hat. Stellen Sie beim Einrichten dieser Rolle sicher, dass alle Sicherheitsaspekte berücksichtigt werden.
Für RANDOM:
-
access.calendar
Name der Kalenderdatei. Beim zufälligen Kalender werden die erzeugten Termine auf der Festplatte gespeichert. (Die Dateien werden automatisch entfernt, wenn der CM-Server angehalten wird.) Durch die Verwendung des gleichen Namens in der Konfiguration wird sichergestellt, dass der Benutzer den gleichen Satz an Terminen hat.)
-
-
Beispielskript:
return [
name: 'Exchange Source',
'access.type': 'EXCHANGE',
'access.url': 'https://exchange1.server.net/EWS/Exchange.asmx',
'access.username': 'exchange-user',
'access.password':'exchange-password',
'access.domain': 'SSO',
'access.impersonation':'somebody@sso.server.net',
'access.version': '2013'
]
Code-Beispiel 36: Beispiel für Kalenderintegrationsskript
Zusätzlich im Skript verfügbare Variablen:
- Vorgangsseite: ticket
- Kontaktseite: unit
- Ressourcenseite: resource
Konfigurieren des Kalenders
Die Darstellung und das Verhalten des Kalenders kann in der Seitenanpassung angepasst werden. In calendar können Sie folgende Attribute setzen:
- allDaySlot
Boolean. Legt fest, ob das Zeitfenster „Ganztägig“ oben im Kalender angezeigt werden soll. Der Standardwert ist true. - appointmentBackgroundColor
String. Legt die Hintergrundfarbe für alle Termine im Kalender fest. Sie können ein beliebiges CSS-Farbformat verwenden, z. B. #f00, #ff0000, rgb(255,0,0) oder red. - appointmentBorderColor
String. Legt die Rahmenfarbe für alle Termine im Kalender fest. Sie können ein beliebiges CSS-Farbformat verwenden, z. B. #f00, #ff0000, rgb(255,0,0) oder red. - appointmentColor
String. Legt die Hintergrund- und Rahmenfarbe für alle Termine im Kalender fest. Sie können ein beliebiges CSS-Farbformat verwenden, z. B. #f00, #ff0000, rgb(255,0,0) oder red. - appointmentConstraint
String. Beschränkt das Verschieben, Verlängern und Verkürzen von Terminen auf ein bestimmtes Zeitfenster.Mögliche Werte:
- <Termin-ID>
Termine, die verschoben, verlängert oder verkürzt werden, müssen komplett innerhalb von mindestens einem der über die Termin-ID angegebenen Terminen liegen. - businessHours
Termine, die verschoben, verlängert oder verkürzt werden, müssen komplett innerhalb der Geschäftszeiten liegen (standardmäßig Montag-Freitag 09:00-17:00), siehe Attribut businessHours. - <Startzeit>-<Endzeit>;<Wochentage>
Ein benutzerdefiniertes Zeitfenster im gleichen Format wie das Attribut businessHours. Die Wochentage sind optional.
Beispiele: 10:00-18:00; 1,2,3,4 oder 10:00-18:00
- <Termin-ID>
- appointmentDurationEditable
Boolean. Ermöglicht das Editieren der Termindauer über die Änderung der Größe. Der Standardwert ist true. - appointmentOverlap
Boolean. Legt fest, ob sich die Termine im Kalender nach dem Verschieben oder Verlängern überlappen dürfen. Der Standardwert ist true. - appointmentStartEditable
Boolean. Ermöglicht es, die Startzeit eines Termins durch Verschieben zu verändern. Der Standardwert ist true. - appointmentTextColor
String. Legt die Textfarbe für alle Termine im Kalender fest. Sie können ein beliebiges CSS-Farbformat verwenden, z. B. #f00, #ff0000, rgb(255,0,0) oder red. - aspectRatio
String. Legt das Verhältnis von Breite zu Höhe des Kalenders fest. Der Standardwert ist 1.35. - businessHours
String. Hebt bestimmte Zeiträume im Kalender hervor.
Format: <Startzeit>-<Endzeit>;<Wochentage>
Beispiel: 10:00-18:00; 1,2,3,4 (von 10:00 bis 18:00, Montag bis Donnerstag) - calendarEventHandlerScript
String. Enthält den Namen des Skripts, das die Kalenderereignisse steuert. Neben den Standardvariablen des Kontextes, wie ticket, gibt es folgende zusätzliche Variablen:- eventType
enum (Werte: CREATE, UPDATE, DELETE) - appointment
mit Termindaten (uid, subject, location usw.).
Details finden Sie in der Dokumentation.
- eventType
- calendarInitializationScript
String. Enthält den Namen des Skripts, das die Kalenderkonfiguration erzeugt. Wenn der Wert leer ist oder das Skript null zurückgibt, wird der Kalender nicht angezeigt. - contentHeight
String. Gibt die Höhe des Inhaltsbereichs des Kalenders in Pixel an. Standardmäßig ist die Option nicht gesetzt und die Höhe des Kalenders wird anhand des Attributs aspectRatio berechnet. - defaultAllDayAppointmentDuration
String. Die Standarddauer für ganztägige Termine, für die keine Endzeit angegeben ist. Der Standardwert ist 1 (ein Tag). - defaultDate
String. Die initialen Daten, die beim ersten Laden des Kalenders angezeigt werden. Möglich ist ein ISO8601-Datumsstring wie 2014-02-01. - defaultTimedAppointmentDuration
String. Die Standarddauer für nicht ganztägige Termine, für die keine Endzeit angegeben ist. Wenn nicht gesetzt, wird der Standardwert 02:00:00 (2 Stunden) verwendet. Dieses Attribut wirkt sich auch auf die Standarddauer von Terminen bei der Terminerstellung aus. - DefaultView
String. Standardansicht des Kalenders.
Mögliche Werte: month, basicWeek, basicDay, agendaWeek, agendaDay. Der Standardwert ist agendaWeek.
Beispielansichten unter Verfügbare Ansichten. - editable
Boolean. Ob Termine erstellt, verschoben, verlängert und verkürzt werden können. Dieser Wert überschreibt die Quellkonfiguration. Der Standardwert ist false. - firstDay
String. Der Tag, an dem die Woche beginnt. (Sonntag=0, Montag=1, Dienstag=2 usw.). Wenn leer, wird der Wert aus der Sprachumgebung des Browsers verwendet. - forceAppointmentDuration
Boolean. Ein Flag, mit dem die Berechnung eines Terminendes erzwungen werden kann, wenn kein Ende angegeben wird. Der Standardwert ist false. - handleWindowResize
Boolean. Ob die Größe des Kalenders automatisch angepasst werden soll, wenn der Benutzer die Größe des Browser-Fensters verändert. Der Standardwert ist true. - headerCenter
String. Definiert die Buttons und die Überschrift in der Mitte über dem Kalender. Details dazu finden Sie in der Beschreibung von headerLeft. Der Standardwert ist title. - headerLeft
String. Definiert die Buttons und die Überschrift links über dem Kalender. Liste mit durch Kommas oder Leerzeichen getrennten Werten (durch Kommas getrennte Werte werden nebeneinander angezeigt). Der Standardwert ist prev,next today.Mögliche Werte:
- title
Text für den aktuellen Monat/Woche/Tag. - prev
Button, um im Kalender zum vorherigen Monat/Woche/Tag zu blättern. - next
Button, um im Kalender zum nächsten Monat/Woche/Tag zu blättern. - prevYear
Button, um im Kalender zum letzten Jahr zu blättern. - nextYear
Button, um im Kalender zum nächsten Jahr zu blättern. - today
Button, um im Kalender zum aktuellen Monat/Woche/Tag zu blättern. - <Name der Ansicht>
Button, mit dem eine der verfügbaren Ansichten des Kalenders geladen wird (eine Beschreibung der verfügbaren Ansichten finden Sie unter defaultView).
Die Kopfzeile wird nicht angezeigt, wenn alle drei header-Attribute (headerCenter, headerLeft, headerRight) leer sind.
- title
- headerRight
String. Definiert die Buttons und die Überschrift rechts über dem Kalender. Details dazu finden Sie in der Beschreibung des Attributs headerLeft. Der Standardwert ist month,agendaWeek. - height
String. Gibt die Höhe des gesamten Kalenders (einschließlich Kopfzeile) in Pixel an. Standardmäßig ist die Option nicht gesetzt und die Höhe des Kalenders wird anhand des Attributs aspectRatio berechnet. - hiddenDays
String. Schließt bestimmte Wochentage aus der Anzeige aus. Durch Kommas getrennte Liste der Wochentagsindizes (Beispiel: '1,3,5'). Jeder Index beginnt mit der Null (Sonntag=0) und umfasst die Werte 0 bis 6. - lazyFetching
Boolean. Legt fest, wann die Termine abgerufen werden sollen. Es ist sinnvoll, dieses Attribut auf false zu setzen, wenn am Kalender des Benutzers viele externe Änderungen vorgenommen werden. Der Standardwert ist true. - maxTime
String. Legt die Endzeit fest, die (ausschließlich) angezeigt wird, auch wenn der Benutzer ganz nach unten gescrollt hat. Der Standardwert ist 24:00:00. - minTime
String. Legt die Startzeit fest, die angezeigt wird, auch wenn der Benutzer ganz nach oben gescrollt hat. Der Standardwert ist 00:00:00. - nextDayThreshold
String. Wenn die Endzeit eines Termins an einem anderen Tag liegt, muss der Termin mindestens bis zu dieser Zeit dauern, damit er an diesem Tag angezeigt wird. Der Standardwert ist 09:00:00 (09:00). Dies betrifft nur Termine, die nicht als ganztägige Termine konfiguriert sind, aber trotzdem den ganzen Tag ausfüllen. Ganztägige Felder kommen in den Kalenderansichten month, basicDay und basicWeek und in ganztägigen Zeitfenstern vor. - readable
Boolean. Legt fest, ob der Benutzer die Kalendereinträge sehen kann. Setzen Sie den Wert auf true, um die Kalendereinträge sichtbar zu machen, oder auf false, wenn der Benutzer die Kalendereinträge nicht sehen soll. Im letzteren Fall wird das Widget immer noch angezeigt. Nur verfügbar, wenn der Kalender als Kalender-Widget auf dem Dashboard angezeigt wird. - rightToLeftMode
Boolean. Zeigt den Kalender von rechts nach links an. Der Standardwert ist false. - scrollTime
String. Legt fest, wie weit der scrollbare Bereich am Anfang heruntergescrollt wird. Der Standardwert ist 06:00:00 (6:00). - slotAppointmentOverlap
Boolean. Legt fest, ob Termine sich in der Kalenderansicht überlappen sollen. Der Standardwert ist true. - slotDuration
String. Das Intervall für die Anzeige von Zeitfenstern. Der Standardwert ist 00:30:00 (30 Minuten). - snapDuration
String. Das Zeitintervall, bei dem sich ein Termin beim Verschieben an das Zeitraster der Kalenderansicht anheftet. Diese Einstellung wirkt sich auch auf die Genauigkeit der Zeitauswahl aus. Der Standardwert ist slotDuration. - state
String. Der Sichtbarkeitsmodus dieses Bereichs, mögliche Werte sind [expanded, collapsed, collapsed_and_preload, hidden]. Der Standardwert ist expanded. Nur verfügbar, wenn der Kalender auf der Vorgangs-, Kontakt- oder Ressourcenseite angezeigt wird. - weekNumbers
Boolean. Legt fest, ob die Nummer der Woche im Kalender angezeigt werden soll. Der Standardwert ist true. - weekends
Boolean. Legt fest, ob die Spalten für den Samstag und Sonntag in der Kalenderansicht enthalten sein sollen. Der Standardwert ist true.
Siehe http://fullcalendar.io/docs für weitere Details.
Konfigurieren des Verhaltens nach Kalenderereignissen
Sie können das Verhalten nach folgenden Ereignissen im Skript, das im Attribut calendarEventHandlerScript von calendar referenziert ist, definieren:
- Erstellen eines Termins (Ereignistyp CREATE)
- Bearbeiten eines vorhandenen Termins (Ereignistyp UPDATE)
- Entfernen eines vorhandenen Termins (Ereignistyp DELETE)
Es sind folgende Variablen verfügbar:
-
ticket
Der aktuelle Vorgang (nur Kalender auf Vorgangsseiten) -
unit
Der aktuelle Kontakt (nur Kalender auf Kontaktseiten) -
resource
Die aktuelle Ressource (nur Kalender auf Ressourcenseiten) -
eventType
Die Art des Events, mögliche Werte sind: CREATE, UPDATE oder DELETE. -
appointment
Das Terminobjekt (Klasse com.consol.cmweb.server.common.model.calendar.AppointmentVo, die Verfügbarkeit der Eigenschaften hängt von Exchange-Servertyp und -version ab).Grundlegend:
-
subject
String. Betreff des Termins. -
startDate
Datum. Startdatum und -zeit des Termins. -
endDate
Datum. Enddatum und -zeit des Termins. -
allDayEvent
Boolean. Definiert, ob ein Termin ein ganztägiges Ereignis ist, d. h. den ganzen Tag oder mehrere Tage lang dauert. -
location
String. Ort des Termins. -
meeting
Boolean. Ist true, wenn der Termin eine Besprechung (mit eingeladenen Teilnehmern) ist. -
cancelled
Boolean. Gibt an, ob der Termin als abgesagt markiert ist. -
recurring
Boolean. Gibt an, ob der Termin Teil einer Terminserie ist. -
busyStatus
Mögliche Werte sind FREE, TENTATIVE, BUSY, OUT_OF_OFFICE, WORKING_ELSEWHERE oder NONE. -
body
String. Inhalt des Termins. Das Format hängt von der Property bodyType ab. -
bodyType
Format des Termininhalts. Mögliche Werte sind TEXT, HTML oder NONE
Erweitert:
-
uid
String. Eindeutige Identifikation eines Termin auf dem Exchange-Server. -
start
Startdatum und -zeit im joda-Format -
end
Enddatum und -zeit im joda-Format -
timeZone
Zeitzone des Termins im joda-Format (nötig, um ganztägige Termine in unterschiedlichen Zeitzonen korrekt anzuzeige)
-