Default Certification UIPreference

Which IIQ version are you inquiring about? 8.3P4

Hello Experts,
is there an option to add a default certification UIPreference for all the users. I understand that the column layout the grouping are stored under individual UIpreference object. Is there an easy way to add the same UIPreference for all the users by default.

Add it for an identity, then look at it from /debug.

Use method you setUIPreference() and set that for all the identity via a rule.

@jophisaliascna There’s no built-in option to apply a default UIPreference for all users, but you can achieve this using the certificationEntityCustomizationRule.

Within this rule, you can set column’s under uiCertificationItemWorksheetColumns-Review Or any other key based on your criteria (e.g., user role or entity type). This approach is flexible and works well for enforcing consistent defaults where needed.

Hope this helps!

@kalyan_dev32 Tried adding the data like in the attached screenshot. but its not reflecting for the reviewer

@jophisaliascna just now tried in my sandbox, it should work. if it doesn’t work through code. try to manually editing the UIPreference Object to see what all the things are getting changed. so that you can also alter those things with your code!

You can set this value during the user login:

Like we are setting this value during home page loading after user login via plugin. Or setting in QuickLink
currentUser.setUIPreference(“<>”, <>);

@kalyan_dev32 is it possible to share the code snippet? not sure what i am doing wrong..
this is what i was doing

Attributes attrs = new Attributes();
		Map tableGrouping = new HashMap();
		Map targetedCertificationGrouping = new HashMap();
		targetedCertificationGrouping.put("uiTargetedCertificationItemWorksheetColumns-Open","Identity-displayName");			
		tableGrouping.put("userTableGroupingPreferences",targetedCertificationGrouping);
		attrs.setMap(tableGrouping);
		entity.setAttributes(attrs);

@jophisaliascna I don’t have the exact code handy, but I can share the approach I used.

I maintained the TableColumnPreference configurations in a custom object, using a nested structure where the primary key is the certification name, and the second-level key is the access reviewer’s manager ID.

Here’s a simplified XML snippet for reference:

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE Custom PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<Custom name="Custom-Certs">
  <Attributes>
    <Map>
      <entry key="CertName">
        <value>
          <entry key="EMP101"> <!-- Manager ID -->
            <value>
              <entry key="userTableColumnPreferences">
                <value>
                  <Map>
                    <entry key="uiCertificationItemWorksheetColumns-Open">
                      <value>
                        <TableColumnPreference>
                          <SelectedColumns>
                            <String>cert_item_tbl_header_firstname</String>
                            <String>cert_item_tbl_header_lastname</String>
                            <String>cert_item_tbl_header_display_name</String>
                            <String>cert_item_tbl_header_application</String>
                            <String>cert_item_tbl_header_accountDisplayName</String>
                            <String>cert_item_tbl_header_identity</String>
                            <String>cert_item_tbl_header_decision</String>
                          </SelectedColumns>
                          <UnSelectedColumns>
                            <String>cert_item_tbl_header_type</String>
                            <String>cert_item_tbl_header_description</String>
                            <String>cert_item_tbl_header_classifications</String>
                            <String>cert_item_tbl_header_instance</String>
                            <String>cert_item_tbl_header_accountid</String>
                            <String>cert_item_tbl_header_account</String>
                            <String>cert_item_tbl_header_role_applications</String>
                            <String>cert_item_tbl_header_role_accounts</String>
                            <String>cert_item_tbl_header_compositescore</String>
                            <String>cert_item_tbl_header_changes_detected</String>
                          </UnSelectedColumns>
                        </TableColumnPreference>
                      </value>
                    </entry>
                  </Map>
                </value>
              </entry>
            </value>
          </entry>
        </value>
      </entry>
    </Map>
  </Attributes>
</Custom>

In the implementation:

  • I first check the certification name and identify the certifier.
  • Then validate if their manager ID exists in the custom object.
  • If present, I retrieve the user’s UIPreference object. If it doesn’t exist, I create a new one and add the required certification column preferences.
  • If it already exists, I simply update the key (e.g., uiCertificationItemWorksheetColumns-Open) with the desired column settings.

This way, certifier-specific column views are dynamically applied during certification generation based on the configuration stored in the custom object.

Hope this helps!