Upper to lower case for Group schema attribute

Which IIQ version are you inquiring about?

Version 8.4

Share all details related to your problem, including any error messages you may have received.

Dear community,

I have requirement to change attribute value form upper case to lower case while aggregation from target.
How I can achieve this. This is an AD connected application. One of the group attribute needs this chnage.

Thanks

Have u tried to create a schema rule (type=ResourceObjectCustomization) ?
This should solve your topic.

application → rules → schema rules

You could do this by correlation rule for your application

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE Rule PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<Rule language="beanshell" name="Correlation" type="Correlation">
  <Description>Identity Correlation Rules are used to find identities to which new accounts can be attached.

A correlation rule must return a Map with one of the specified Return arguments.</Description>
  <Signature returnType="Map">
    <Inputs>
      <Argument name="log">
        <Description>
          The log object associated with the SailPointContext.
        </Description>
      </Argument>
      <Argument name="context">
        <Description>
          A sailpoint.api.SailPointContext object that can be used to query the database if necessary.
        </Description>
      </Argument>
      <Argument name="environment" type="Map">
        <Description>
          Arguments passed to the aggregation task.
        </Description>
      </Argument>
      <Argument name="application">
        <Description>
          Application being aggregated.
        </Description>
      </Argument>
      <Argument name="account">
        <Description>
          A sailpoint.object.ResourceObject returned from the
          collector.
        </Description>
      </Argument>
      <Argument name="link">
        <Description>
          Existing link to this account.
        </Description>
      </Argument>
    </Inputs>
    <Returns>
      <Argument name="identityName">
        <Description>
          The name of an Identity object.
        </Description>
      </Argument>
      <Argument name="identity">
        <Description>
          A fully resolved Identity object if the rule wants
          to do its own queries to locate the identity.
        </Description>
      </Argument>
      <Argument name="identityAttributeName">
        <Description>
          The name of the extended attribute that can be used
          to locate an existing identity.
        </Description>
      </Argument>
      <Argument name="identityAttributeValue">
        <Description>
          The value of the named extended attribute that can be used
          to locate an existing identity. This attribute is used
          together with the identityAttributeName argument.
        </Description>
      </Argument>
    </Returns>
  </Signature>
  <Source>
	 Map<String, Identity> returnMap = new HashMap<>();
        Identity result = null;

        String userName = account.getStringAttribute("User Name");
       

        List<Identity> identities;

        if (userName == null) {
            log.debug("User Name was null! Skipping...");
        } else {
           String originalString = account.getAttribute("User Name");
           account.setAttribute("User Name",originalString.toLowerCase());

            identities = searchIdentities(context, name);
            if (identities.size() == 1)
                result = identities.get(0);
        }
        if (result == null)
            log.debug("No match found!");
        else
            returnMap.put(IDENTITY, result);

        return returnMap;
  </Source>
</Rule>
4 Likes

Hi @sbabu2024,

You’d have to make use of the customization rule to do the transformation of attributes.

value = getAttributeValue​​(String name) method in sailpoint.object.Application class would fetch the attribute.

setAttribute(value.toLowerCase) method to change the case.

1 Like

I would say totally avoid these type of customization .writing any rule t will be expensive as theses rules will get executed for each and every group and also for each and every users during aggregation.

better ask them to make changes in AD itself if that don’t have huge impact .

1 Like

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.