Web application
The Dime.Scheduler Exchange plugin website allows you to monitor all the traffic from Dime.Scheduler to Exchange and back.
The Dime.Scheduler Exchange plugin website is usually installed on the same web server as the Dime.Scheduler planning application but with a different port number. Check with your system administrator for the correct URL.
Between Exchange itself and Dime.Scheduler is a façade - or a management application if you will - that shows the status of the connection between the two. It gives the administrator an overview of the appointments that have been sent to Exchange and can intervene when an error has occurred.
Authentication
Plugins such as this one have a simple authentication and authorization mechanism. Local forms accounts are used to secure the system.
Views
The Dime.Scheduler Exchange plugin website supports administrators in monitoring the status of the connection between Dime.Scheduler and you guessed it, Exchange. It is therefore a management and reporting tool that helps administrators in diagnosing issues and provides tools for resolving them.
Appointments
The appointments view shows the list of appointments that have been processed by the Exchange plugin. In this view, you can consult some of its properties, along with the status of the transactions.
By default the records are sorted in descending order by the date of the last transaction. To change the sorting order, click on any of the column headers. To search for a specific value (e.g. all transactions belonging to a specific job), click on the filter icon and enter a filter criteria. Use the filter icon again to clear any filter criteria.
Click on the magnify button in the first column to enter the details section.
The details section shows change tracking information and identification values for the Exchange application. Below this information on the 'last activity' tab you see the list of transactions and their status. On the MBOC Settings tab you see the connection details towards the Exchange application that were used.
Transactions
The transactions view is similar to the appointments view, except that it's a flat list rather than a table grouped per appointment.
Events
This page links appointments from Dime.Scheduler to events in Exchange. These connections are crucial to update the calendars in Exchange.
Resources
This page manages the resources who are tracked by the Dime.Scheduler Exchange connector.
Administrators can create and update resources and set their preferences.
When a resource is created in the connector, a user account will be created automatically for that user, so that he can change the following preferences:
- Enabled
- Filter appointments by 'Show as' status (Free, Busy, Office, Out of Office)
- Filter appointments by 'Sensitivity' (Normal, Personal, Private, Confidential)
The confirmed flag is only available to the administrator and indicates whether the user has confirmed his user account, as to prevent sending out multiple invitation e-mails.
Besides the default create and update operations, administrators can:
- Create MS Graph API Subscriptions, that is to create registrations for the webhooks, which have a maximum lifetime of 2 days
- Synchronize all tracked appointments
- Import resources from Dime.Scheduler
- Get the deltas from the MS Graph API
None of these actions are mandatory because they are executed regularly, according to the interval as specified in the setup.
Note that resources cannot be removed from the Dime.Scheduler Exchange connector as this would jeopardize data integrity and would expose the connector to inserting duplicate appointments in Dime.Scheduler.
Error Tracking
The error tracking view shows transactions that were not successfully sent to Exchange. You can change sorting of the records and set filters as in the History list. In the details section you can inspect the reason for the error and change the MBOC Settings - if necessary - to resend the transaction to Exchange.
All transactions can be archived or resent to Exchange at once by using the "Archive All" and "Retry All" buttons after selecting the records.
Logs
The logging view shows all the messages logged by the Dime.Scheduler Exchange application and allows you to detect any issues.
Status
The status screen, accessible via the link at the bottom-right of any page gives you an indication of the connection with the Dime.Scheduler Exchange plugin Windows Service.
Recurring jobs
Many of the capabilities exposed in the web application are backed by automatic and scheduled background worker jobs:
- Retry failed transactions from Dime.Scheduler to Exchange
- Renew Microsoft Graph API subscriptions
- Retrieve delta's from the Microsoft Graph API Delta API
- Import resources from Dime.Scheduler
- Synchronize the tracked and mapped appointments
All but the first item in this list are also available in a useful dashboard subapplication. If the bidirectional Exchange connector is enabled, the /dashboard
page will be available.
This page allows you to monitor the jobs and their status.
If necessary, you can even fire the jobs manually.
Automatic retry
If, for any reason, a transaction fails, it will appear automatically in the error list. In this view you may choose to attempt to retry the transaction and if needed, change the MBOC settings. Since Dime.Scheduler 2020.1.0, a timer job will do this automatically. Any transaction with the 'Failed' status will be queried and executed.
This is an opt-in feature. By default, the CRON expression is empty. This is configurable though. Head to the appsettings.json
file of Exchange website and look for the RetryJobCronExpression
configuration item. The accepted value looks like gibberish but in fact it is a CRON expression. For instance, the value "*/15 * * * *"
means "At every 15th minute". As long as you adhere to the CRON syntax, any value can be used here.
Microsoft Graph API Subscription renewal
The bidirectional synchronization mechanism relies on subscriptions or webhooks, if you will. If an event in the calendar is updated, all subscribers to this event will be notified. However, such a subscription is limited in time, so it needs to be refreshed at regular intervals. This is the scope if this job: to renew the subscriptions to keep the two-way synchronization alive.
This too is an opt-in feature. By default, the CRON expression is empty. This is configurable though. Head to the appsettings.json
file of Exchange website and look for the RenewSubscriptionCronExpression
configuration item. The accepted value looks like gibberish but in fact it is a CRON expression. For instance, the value "*/15 * * * *"
means "At every 15th minute". As long as you adhere to the CRON syntax, any value can be used here.
Event delta
The event delta job fetches incremental changes of the resources' calendars from the Microsoft Graph API and synchronizes these manipulations with Dime.Scheduler.
Import resources from Dime.Scheduler
The 'Exchange Integration Enabled' flag in Dime.Scheduler has a profound impact on the Exchange connector. Not only is it responsible for pushing data to the calendars from Dime.Scheduler to Exchange, it is also in charge of kicking off the process in the opposite direction. This job imports the resources that should be subjected to the two-way synchronization, adds them to the list and invites the owner of the mailbox to grant consent and set his synchronization preferences.
Synchronize tracked appointments
Appointments that have been processed before, and are therefore tracked by the Exchange connector, can be refreshed using this job, to make sure that the two systems are in sync with each other. In ideal circumstances, this job would result in no changes at all but due to the nature of the integration of the two applications, it's better to be safe than sorry and have a third line of synchronization available.