We are delighted to share our new EIC Delivery Methodology for efficiently managing Saviynt Implementations and delivering quick time to value. CLICK HERE.
No ratings
Saviynt Employee
Saviynt Employee

Short Description

Saviynt solution can be extended by making use of dynamic attributes, to support creation of custom application request form to capture the fields/data by the end user while raising a access request.  Dynamic attribute enables the implementation team to present users with custom fields for capturing application access provisioning. 

Applicable version


Detail best practice

  1. Try to limit the number of dynamic attributes on a form which make SQL
    queries. This may impact performance of the form. For a dynamic attribute which contains a small set of values, try using static values (ENUM or MULTI LIST) instead..
  2. Try to limit the number of dynamic attributes with the configuration set to “Mapping” on the request form for –  "What action to perform when Parent attribute changes?” This may also cause significant performance impact.
  3. Make sure that the SQL queries used in the dynamic attribute is properly optimized (refer analytics best practice document for examples on optimize query)
  4. Design the form in such a way that the previous attribute can be used to narrow down results in the current attribute (cascading)
  5. Always try to map one DA to one single column ( multiple columns can cause discrepancies and values may be get appended )
  6. Use groovy conditions in the validation conditions and can be  utilized to validate conditions on request submission – for example – we can validate if an entered mobile number is in correct format or not. ${Mobile.length() == 10 && Mobile.isNumber() && Double.valueOf(Mobile) > 0} -> Here Mobile is a string dynamic attribute taken as input from the end user
  7. When Dynamic attributes defined has more than 2 level of hierarchy and the show/hide functionality is being used, then while updating the user from update user tile, the two-level down dynamic attribute does get hidden even if the scenario matches, so check out the below example of how DA works


DA NamePossible ValuesConditions for Show and HideMapped to user column
L1L1-A, L1-B
L1-B -> Default value
L1A -> Show L2A, Hide L2B
L1B -> Hide L2A, Show L2B
L2AL2A-a, L2A-bL2A-a -> Show L3A, Hide L3B
L2A-b -> Hide L3A, Show L3B
L2BL2B-a, L2B-bL2B-a -> Show L3C, Hide L3D
L2B-b -> Hide L3C, Show L3D

L3AL3A-a, L3A-b customproperty54
L3BL3B-a, L3B-b customproperty55
L3CL3C-a, L3C-b customproperty56
L3DL3D-a, L3D-b customproperty57

Suppose the user is saved Customproperty52 with value L2A-b and Customproperty55 with L3B-a. When we try to update the user from Update user tile, then on form load, L1 is loaded with L1-B, hence L2A is hidden, however L3B still shows up, which is because customproperty52 has L2A-b has that value stored and that value is loaded from the custom property on page load.

Key Benefit 

  • Improved performance 

Reference documentation 

Version history
Last update:
‎07/10/2023 07:14 AM
Updated by: