Is it possible to have a User(s) in the User's table without an EMPLID (User ID)?? Asking for a friend...
Background: @We have to switch over to a new HR identity source with a new set of EMPLID numbers...but the new system of record is storing the old EMPLID as LEGACYID. We'd like (to keep from having duplicate user entries) to continue using the LEGACYID as the linkage to heartbeats...but new employees will not have/receive a new LEGACYID, therefore there would be no value for the UserID.
Is this possible? Or are we just going to have to live with the duplicated (and deleted and terminated from the old list) Users?
In my humble opinion, it's absolutely silly to have to live with "deleted" users in your users table, if the "deleted" is invalid.
good question
is this an SQL collector where you have control over the data coming in using a query? if so, I'm just thinking out loud here and seeing if the following might be of use for you or is applicable.
How about using something like the NVL oracle function (I'm sure you there is a non-Oracle SQL equivalent if you are collecting from another database rather than oracle) :
NVL
"NVL lets you replace null (returned as a blank) with a string in the results of a query. If expr1 is null, then NVL returns expr2. If expr1 is not null, then NVL returns expr1."
& map the USER_ID alias with the IG&L USER ID attribute within the collector's config.
The flow of USER ID collection would be:
1. check user to see if he/she has a legacy id (NOT NULL).
2. if user has a legacy id (NOT NULL), set IG&L's user id attribute to legacy id value.
3. if user doesn't have a legacy id (legacy id column IS NULL), collect the IG&L's user id attribute value as the EMPLID value from the HR source.
I believe this mainly revolves on how you manage that legacy id attribute within the HR system where it will be crucial for legacy users to have the legacy id value populated and new users to NOT have it populated (should be null) in order for this to work.