Hi,
I am working on a solution where we have three import sources (HR-systems) for employees into Identity Manager. All employees have EntryDate and ExitDate, but in at least one of the sources, employees are removed from the HR-feed (csv and native database) when the user is terminated. Therefore, we have to detect if a user either have reached the end-date or is removed from the feed. A user can exist in several HR-systems so we have to check if it is removed from all sources before it is deactivated.
I have extended the Person-table to contain columns for the individual HR-feeds. All three feeds have separate columns for EntryDate, ExitDate, IsInActive and LastSeen. [HRx]LastSeen is populated in the synchronization editor with the current date when the user was last seen in the HR-feed. Currently I have solved the deactivation by setting [HRx]IsInactive based on [HRx]EntryDate and [HRx]ExitDate, as well as check if [HRx]LastSeen is within the last days. If the todays date is not between [HRx]EntryDate and [HRx]ExitDate, and [HRx]LastSeen is older than 1 day, [HRx]IsInActive is set to true. If [HRx]IsInActive is true in all HR-systems for a user, the default IsInActive-field is set to true and the user is deactivated.
This solution works if I can be 100% certain that the HR-feeds are stable. This is unfortunately not true, sometimes the HR-import fails for several days, meaning the LastSeen date will not be updated and ALL users are deactivated.
Are there someone that have a similar setup and have found a better solution? Our system is based on Identity Manager 8.0