Recently I posted a sample Microsoft Identity Manager Management Agent for Workday HR. Subsequently I also posted about some updates I made to the WorkdayAPI PowerShell Module to enable functionality to specify the time period to return changes for. This post details updating my sample Workday Management Agent to support Delta Synchronisation.
WorkdayAPI PowerShell Module
First up you will need the updated WorkdayAPI PowerShell Module that provides the Get-WorkdayWorkerAdv cmdlet and can take a time period to return information for. Get the updated WorkdayAPI PowerShell Module from here
Update the PowerShell Module on the MIM Sync Server. The module by default will be in the C:\Program Files\WindowsPowerShell\Modules\WorkdayApi folder.
You will need to unblock the new files.
Get-ChildItem 'C:\Program Files\WindowsPowerShell\Modules\WorkdayApi' | Unblock-File Get-ChildItem 'C:\Program Files\WindowsPowerShell\Modules\WorkdayApi\scripts' | Unblock-File
In the updated Management Agent I’m also bringing into MIM additional attributes from the other enhancements I made to the PowerShell Module for HireDate, StartDate, EndDate, Supplier and WorkdayActive. The updates to the Schema.ps1 are shown below.
$obj | Add-Member -Type NoteProperty -Name "HireDate|string" -Value "string" $obj | Add-Member -Type NoteProperty -Name "StartDate|string" -Value "string" $obj | Add-Member -Type NoteProperty -Name "EndDate|string" -Value "string" $obj | Add-Member -Type NoteProperty -Name "Supplier|string" -Value "string" $obj | Add-Member -Type NoteProperty -Name "WorkdayActive|Boolean" -Value $True
The full updated Schema Script is below;
With the Schema Script updated, refresh the Management Agent Schema.
You can then select the new attributes in the Workday MA under Select Attributes.
Then select Ok.
Updated Import Script
The Import Script has a number of changes to handle creating and updating a WaterMark File that is used to store the date stamp of the last run. Also updated in the Import Script is the change to use the Get-WorkdayWorkerAdv cmdlet over the Get-WorkdayWorker cmdlet so that a time period can be specified, and to retrieve the additional attributes we just added to the schema.
- Line 11 for the path and name of the Watermark File you wish to use
- Line 31 for the URI of your Workday Tenant
Executing the Management Agent using a Delta Import Delta Sync Run Profile
After creating a Delta Import Delta Sync Run Profile we can now run a Delta Sync. The following graphic is after seeding the WaterMark file (with the last run time in a format like this 2018-10-29T22:09:08.3628953+00:00), as by default without the WaterMark file being present a Full Import is performed by the MA as it doesn’t have a watermark to base the import time period on.
The changed records in Workday HR are then identified and those records obtained, imported and synchronised via the Management Agent.
Using Delta Synchronisation functionality from Workday HR allows for much quicker synchronsiation from Workday HR to Microsoft Identity Manager.