Saviynt unveils its cutting-edge Intelligence Suite products to revolutionize Identity Security!
Click HERE to see how Saviynt Intelligence is transforming the industry.
Saviynt Copilot Icon

Concat Two Dyn Attrs in User Create Form to Generate Username, Displayname, systemUserName

Srikanth
New Contributor
New Contributor
We are working on requirement of user create form and have some fields that will be entered for user creation.
 
Couple of them are FN and LN fields.
 
Based on FN and LN fields, we have to generate username, displayname and system user name values dynamically at runtime on the form itself, not after submission.
 
Meaning, if I enter "Maximilian" in FN and "Beispielname" in LN , then my names should be as follows -
 
Note - we have to let the user choose the username, displayname , system user name from dropdowns and then these values should be unique, meaning we have to validate them against existing user's username , dis name, systemusername.
 
The length of these values should be max of 13 chars too, not more
 
Combinations which we have to generate are as follows -
 
Example: "X_" or "ADM_".
The fictitious employee "Maximilian" (firstname) "Beispielname" (lastname) would then look like this (first rule): "MBeispielname".
 
If the user now gets a separate Admin-Account this would be “ADM_ MBeispielname” name (17 characters length). 
We have even longer prefixes. That's why the limitation of the names is 13 characters. So a "normal" employee account (without prefix) can never be longer than 13 characters. 
So any prefix can be added. In this case the "X_". The reason behind this concept is the maximum length of the Active Directory samaccountnames. It may only be a maximum of 20 characters.
 
X_<1. char of firstname><max 12 chars of lastname>
Example: MBeispielname
 
If already exists, then:
X_<whole firstname (max length 13)><"whole" lastname (13-length of firstname=max length of lastname)>
Explanation: If the firstname has 13 characters, no lastname will be written, because 13-13=0
Example: MaximilianBei
 
If already exists, then:
X_<12 chars of lastname><1. char of firstname>
Example: BeispielnameM
 
If already exists, then:
X_<"whole" lastname (13-length of firstname=max length of lastname><whole firstname  (max length 13)>
BeiMaximilian
 
If already exists, then:
X_<1. char of firstname><max 10 chars of lastname><random number to digits>
Example: MBeispielna18
 
Apprecite if someone can let me know is this possible in saviynt ?
1 REPLY 1

rushikeshvartak
All-Star
All-Star

Create 4 Dynamic attributes

  1. Account Type (Admin/Normal)
  2. First Name
  3. Last Name
  4. Login Name

Query for Login Name 

select case when $accounttype='Normal' and length($firstname)>1 and length($lastname)>13 then 

concat(SUBSTRING($firstname,1,1),SUBSTRING($lastname,1,length($lastname))) end as id from dual

 

add other permutation combination


Regards,
Rushikesh Vartak
If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'.