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:

  1. 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.

    image-20240310-232250.png

     

  2. 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.

    image-20240310-232432.png

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 https://kodenu.atlassian.net/wiki/spaces/CSFIP/pages/797999193 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

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
1 - Failed (see Gateway logs for details)

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.