Exchange Ressource Sync

Synchronisation von Exchange-Ressourcen mit ROOMS-Ressourcen.

Voraussetzungen

Globale Parameter

Folgende Einstellungen müssen unter Einstellungen → System → Globale Parameter gesetzt sein:

ParameterWert
Exchange Ressource Sync enabledtrue

Legacy backSyncService

Für klassische Windows-Service-Setups mit EWS-Ressourcen-Sync wird zusätzlich weiterhin backSyncService verwendet:

<AddInstance
  Key="backSyncService"
  PluginType="Garaio.Products.Rooms.Core.WindowsServices.BaseServiceSession,Garaio.Products.Rooms.Core"
  PluggedType="Garaio.Products.Rooms.Core.WindowsServices.BackSyncService.BackSyncServiceSession,Garaio.Products.Rooms.Core" />

Für Graph-Subscription-Management, EWS-Subscription-Management und andere bereits migrierte Hintergrundjobs ist dagegen keine separate pushSubscriberServiceSession-Aktivierung mehr nötig.

Ressource konfigurieren

Unter Einstellungen → Ressourcen → Bearbeiten werden die einzelnen Ressourcen für die Synchronisation eingerichtet:

FeldBeschreibung
E-Mailmuss auf die primäre SMTP-Adresse der Exchange-Ressource gesetzt werden
Sync-ModusEWS1, EWS2, O365 oder Microsoft365
Sync-URLnur bei EWS1, EWS2, O365 relevant
Ist Sync-Mastersteuert das Verhalten bei Konflikten

Ist Sync-Master

Falls eine Buchung in Exchange nicht für ROOMS verfügbar ist (z. B. wegen bestehender Buchung oder Sperrzeit), wird die ROOMS-Buchung nicht erstellt und eine Fehler-E-Mail versendet.

Ist Sync-MasterVerhalten
Aktiviertdie Raumbuchung wird auch auf der Exchange-Seite entfernt bzw. der Teilnehmer wird aus der ROOMS-Buchung entfernt
Deaktiviertder Termin bleibt in Exchange bestehen, es wird lediglich eine Fehler-E-Mail ausgelöst

EWS vs Graph bei Ressourcen

  • EWS1, EWS2, O365 synchronisieren Ressourcen über EWS
  • Microsoft365 synchronisiert Ressourcen über Graph
  • Ressourcen laufen bei Microsoft365 praktisch app-basiert - ein Enduser-Consent-Flow wie bei Personen ist dafür nicht vorgesehen

Limitationen

EinschränkungBeschreibung
Nur eine Ressource pro TerminBei einem Outlook-Termin darf immer nur eine synchronisierte Ressource hinzugefügt oder eingeladen werden
Add-in: Ressource nicht manuell einladenWird über das Add-in eine synchronisierte Ressource gebucht, darf sie nicht zusätzlich als Teilnehmer hinzugefügt werden
Kein direkter Zugriff auf Exchange-KalenderTermine sollen nicht direkt auf der Ressourcenmailbox erstellt werden; die Synchronisation ist auf den ROOMS-Flow ausgerichtet

Es wird empfohlen, Benutzenden keinen direkten Zugriff auf die Exchange-Ressourcen-Mailboxen zu gewähren.

Buchungsrichtlinien der Exchange-Ressource (Booking Policies)

Exchange-Raumressourcen verarbeiten Buchungsanfragen automatisch (AutomateProcessing: AutoAccept). Die Ressource entscheidet anhand von Buchungsrichtlinien (Booking Policies), ob sie eine Anfrage annimmt oder ablehnt.

Wichtige Parameter

ParameterBeschreibungAuswirkung auf Serien
AllowRecurringMeetingsob wiederkehrende Termine erlaubt sind$false → alle Serien werden abgelehnt
BookingWindowInDaysmaximaler Buchungszeitraum in die ZukunftSerie wird abgelehnt, wenn Termine ausserhalb des Fensters liegen
EnforceSchedulingHorizonob BookingWindowInDays erzwungen wird$true → Termine ausserhalb des Fensters werden abgelehnt
MaximumConflictInstancesmaximale Anzahl Konflikte in einer Seriewird der Wert überschritten, lehnt Exchange die gesamte Serie ab
ConflictPercentageAllowedmaximal erlaubter Konfliktanteil in %Überschreitung → gesamte Serie wird abgelehnt
MaximumDurationInMinutesmaximale Dauer eines einzelnen TerminsEinzeltermine über dem Limit werden abgelehnt

Auswirkung auf Serien mit Konflikten

ROOMS kann Konflikte in einer Serie intern auflösen, z. B. durch Umbuchung einzelner Termine auf alternative Räume. Die Serie wird jedoch weiterhin an die Exchange-Ressource synchronisiert. Dort bestehen die Konflikte weiterhin auf Mailbox-Ebene.

Aktuelle Einstellungen auslesen

Connect-ExchangeOnline
Get-CalendarProcessing -Identity "raum@domain.ch" | Format-List

Einstellungen anpassen

Set-CalendarProcessing -Identity "raum@domain.ch" -MaximumConflictInstances 5 -ConflictPercentageAllowed 25