6. Create a Calendar Roster Mapping
To create a Calendar Roster Mapping, an Administrator should first log into the Ignition Gateway and navigating to Config → Outlook Calendar Sync → Add New Mapping. This page will show a list of existing mappings, as well as an interactive form to add a new mapping.
Step 1 - Select an On-Call Roster
Begin by selecting an On-Call Roster from the drop-down menu that you would like the module to automatically keep in-sync with an Outlook Calendar.
Step 2 - Select a User Source
On-Call Rosters are populated with users from an existing User Source configured on the Gateway. From the drop-down menu, select the User Source that contains the users that will be added to calendar events, and therefore added onto an On-Call Roster.
Step 2b - Select Mapping Method
If you selected a non-Azure AD User Source (i.e any existing/built-in User Source, such as an internal directory, database, Active Directory, etc.), you will need to select a Mapping Method, which tells the plugin how to match an attendee on an Outlook calendar event with a user in Ignition. There are two Mapping Methods to choose from:
Like-for-Like: The full User Principal Name (UPN) of an Outlook calendar event’s attendee(s) must match the full username in the Ignition User Source. So if Bob Smith, with a User Principal Name of bsmith@contoso.com, is an attendee on an Outlook calendar, the plugin will look for a username of bsmith@contoso.com in the Ignition User Source. If it matches identically, Bob Smith will be added to the On-Call Roster; if it doesn’t exist, he will not be added to the On-Call Roster.
Username-Only: Only the username portion of the User Principal Name (UPN) will be pulled from an Outlook calendar event’s attendee(s). So if Sue Perkins, with a User Principal Name of sperkins@contoso.com, is an attendee on an Outlook calendar, the plugin will look for a username of sperkins in the Ignition User Source. If it matches on “sperkins” only, Sue Perkins will be added to the On-Call Roster; if it doesn’t exist, or if it exists as sperkins@contoso.com, she will not be added to the On-Call Roster.
Step 3 - Azure Active Directory API Details
If you selected a non-Azure AD User Source (i.e any existing/built-in User Source, such as an internal directory, database, Active Directory, etc.), you will need to provide API credentials for the Microsoft Graph API. Refer to the steps contained in 2. Creating App Registration in Azure to obtain the Client ID, Client Secret, and Tenant ID values. Then click Retrieve Users to pull in a list of all users within the Azure tenant.
If you selected an Azure AD User Source, you will have already configured these values during the creation of that User Source and the module will use those when connecting to the Microsoft Graph API. In this case, proceed to the next step.
Step 4 - Select an Outlook Mailbox
Select the user or mailbox that owns or has access to the Calendar that on-call events will be placed into. For example, if a Shared Mailbox existed in Office 365 called SanitationSCADA@contoso.com that had all events/assignments on its primary Calendar, you would select it from the drop-down.
Alternatively, if a user BobSmith@contoso.com had access to a Shared or Resource calendar called “Water Treatment On-Call”, you would select BobSmith@contoso.com from this list.
Step 5 - Select an Outlook Calendar
After selecting a User in the previous step, a drop-down will appear that contains a list of all Calendars that said user has access to. Select the Calendar that contains events and attendees that you would like synchronized to the On-Call Roster you selected in the first step.
Step 6 - Enabling Tag Diagnostics
By default, the module writes all diagnostic data to the Ignition Gateway log which can be accessed by navigating to Status → Diagnostics → Logs. By enabling Tag Diagnostics, the module can also write basic diagnostic data to the following tags:
Tag Name | Description | Values |
---|---|---|
LastSync_Added | The number of users added to an On-Call Roster during the last synchronization. | (variable) |
LastSync_Removed | The number of users removed from an On-Call Roster during the last synchronization. | (variable) |
LastSync_Unchanged | The number of users that remained untouched on an On-Call Roster during the last synchronization. | (variable) |
LastSync_Result | The status code of the last synchronization. | 0 - Successful |
LastSync_Time | The timestamp of the last synchronization. | (variable) |
LastSync_Message | The success or failure details regarding the last synchronization. | (variable) |
If enabled, you will need to specify the Tag Provider and the folder path where the five tags will be created under. The folder and tags will be created upon saving the new mapping.
Step 7 - Confirmation
Verify that all the selections made in the previous steps are correct before reading the acknowledgement. If you would like to proceed with the creation of the mapping, click Create & Start Synchronization. As long as the module’s Enable Synchronization setting is enabled, the initial synchronization will begin immediately and continue indefinitely at the frequency specified in the module’s Sync Frequency setting.