Hello,
Currently we have an HR source that is set up with the Web Services Connector. I have been tasked with fixing an issue with SailPoint UID generation. We are currently using the SamAccountName as the UID for SailPoint. This issue I am addressing is that we have user ID conflicts due to our primary HR source (Workday) generates the UID to pass to IdN. I have addressed this so that it does not create a new ID if an ID is found in one of the connected systems. But when removing the connected systems from the transform I am now running into the issue where the same UID is being generated for like named accounts.
I am trying to come up with a way to create a UID that is only used 1 time and would iterate if a conflict is found for SecZetta. I have tried a couple of things and it failed. And returned a null value for UID. I have a felling that I am going to need a rule to calculate a UID for SecZetta or even a Workflow in SecZetta to accomplish this.
My end goal is to make the design of this a simple as possible to ensure subtilty while being easy to maintain or change if the need ever comes up. Any suggestion on how I can achieve this end goal?
Original Transform:
{
"id": "REMOVED",
"name": "Transform - FirstValid - getUID",
"type": "firstValid",
"attributes": {
"values": [
{
"attributes": {
"attributeName": "user_name",
"sourceName": "ServiceNow"
},
"type": "accountAttribute"
},
{
"attributes": {
"attributeName": "sAMAccountName",
"sourceName": "Active Directory"
},
"type": "accountAttribute"
},
{
"attributes": {
"attributeName": "USERID",
"sourceName": "Workday"
},
"type": "accountAttribute"
},
{
"attributes": {
"values": [
{
"attributes": {
"input": {
"attributes": {
"input": {
"attributes": {
"values": [
{
"attributes": {
"attributeName": "personal_first_name",
"sourceName": "SecZetta"
},
"type": "accountAttribute"
},
{
"attributes": {
"attributeName": "personal_first_name",
"sourceName": "SecZetta Collaborator"
},
"type": "accountAttribute"
}
]
},
"type": "firstValid"
},
"begin": -1,
"end": 1
},
"type": "substring"
}
},
"type": "lower"
},
{
"attributes": {
"input": {
"attributes": {
"input": {
"attributes": {
"input": {
"attributes": {
"values": [
{
"attributes": {
"attributeName": "personal_last_name",
"sourceName": "SecZetta"
},
"type": "accountAttribute"
},
{
"attributes": {
"attributeName": "personal_last_name",
"sourceName": "SecZetta Collaborator"
},
"type": "accountAttribute"
}
]
},
"type": "firstValid"
},
"padding": "|",
"length": 5
},
"type": "rightPad"
},
"begin": -1,
"end": {
"attributes": {
"index": {
"attributes": {
"input": {
"attributes": {
"input": {
"attributes": {
"values": [
{
"attributes": {
"attributeName": "personal_last_name",
"sourceName": "SecZetta"
},
"type": "accountAttribute"
},
{
"attributes": {
"attributeName": "personal_last_name",
"sourceName": "SecZetta Collaborator"
},
"type": "accountAttribute"
}
]
},
"type": "firstValid"
},
"padding": "|",
"length": 5
},
"type": "rightPad"
},
"substring": "|"
},
"type": "indexOf"
},
"value": "#if ($index == -1) 5 #else $index #end"
},
"type": "static"
}
},
"type": "substring"
}
},
"type": "lower"
},
{
"attributes": {
"workday": {
"attributes": {
"values": [
{
"attributes": {
"attributeName": "USERID",
"sourceName": "Workday"
},
"type": "accountAttribute"
},
"NO_WORKDAY_ACCOUNT"
]
},
"type": "firstValid"
},
"value": "#if($workday == \"NO_WORKDAY_ACCOUNT\")91#{else}0#end"
},
"type": "static"
}
]
},
"type": "concat"
}
]
},
"internal": false
}
Updated Transform:
{
"id": "REMOVED",
"name": "ADWDSZ - FirstValid - getUID",
"type": "firstValid",
"attributes": {
"values": [
{
"attributes": {
"attributeName": "USERID",
"sourceName": "Workday"
},
"type": "accountAttribute"
},
{
"attributes": {
"attributeName": "USERID",
"sourceName": "Workday Test Data"
},
"type": "accountAttribute"
},
{
"attributes": {
"values": [
{
"attributes": {
"input": {
"attributes": {
"input": {
"attributes": {
"values": [
{
"attributes": {
"attributeName": "personal_first_name",
"sourceName": "SecZetta"
},
"type": "accountAttribute"
},
{
"attributes": {
"attributeName": "personal_first_name",
"sourceName": "SecZetta Collaborator"
},
"type": "accountAttribute"
}
]
},
"type": "firstValid"
},
"begin": -1,
"end": 1
},
"type": "substring"
}
},
"type": "lower"
},
{
"attributes": {
"input": {
"attributes": {
"input": {
"attributes": {
"input": {
"attributes": {
"values": [
{
"attributes": {
"attributeName": "personal_last_name",
"sourceName": "SecZetta"
},
"type": "accountAttribute"
},
{
"attributes": {
"attributeName": "personal_last_name",
"sourceName": "SecZetta Collaborator"
},
"type": "accountAttribute"
}
]
},
"type": "firstValid"
},
"padding": "|",
"length": 5
},
"type": "rightPad"
},
"begin": -1,
"end": {
"attributes": {
"index": {
"attributes": {
"input": {
"attributes": {
"input": {
"attributes": {
"values": [
{
"attributes": {
"attributeName": "personal_last_name",
"sourceName": "SecZetta"
},
"type": "accountAttribute"
},
{
"attributes": {
"attributeName": "personal_last_name",
"sourceName": "SecZetta Collaborator"
},
"type": "accountAttribute"
}
]
},
"type": "firstValid"
},
"padding": "|",
"length": 5
},
"type": "rightPad"
},
"substring": "|"
},
"type": "indexOf"
},
"value": "#if ($index == -1) 5 #else $index #end"
},
"type": "static"
}
},
"type": "substring"
}
},
"type": "lower"
},
{
"attributes": {
"workday": {
"attributes": {
"values": [
{
"attributes": {
"attributeName": "USERID",
"sourceName": "Workday"
},
"type": "accountAttribute"
},
"NO_WORKDAY_ACCOUNT"
]
},
"type": "firstValid"
},
"value": "#if($workday == \"NO_WORKDAY_ACCOUNT\")91#{else}0#end"
},
"type": "static"
}
]
},
"type": "concat"
}
]
},
"internal": false
}