Bug in Name Normalize transform or expected behaviour?

Hi, I am using the Name Normalize transform, and encounter some unexpected behaviour here. I have users with “MACEDO” las name, which is common in my country. But it is converted to MacEdo. I think transform does not understand that is part of a surname, even if it has no space in front of other word, like “MAC EDO” could be.

This is expected? Is some way to correct it or only solution is an identity attribute rule?

@jsosa,

It looks like that is part of the expected behavior within this transform if I’m reading this correctly:

  • Special replacements of patterns that include “MC” and “MAC” (or case-based variations of those two strings)
    • The transform automatically converts “MC” to “Mc” and “MAC” to “Mac” when they are part of a patronymic last name.

Name Normalizer | SailPoint Developer Community

Knowing that appears to be expected, you could pass that Normalize transform into a Conditional transform to capture that particular use case and correct it the other way or a First Valid to bypass the normalize transform.

Hi Justin, thanks for your response.

Yes, at now I am bypassing surenames I have found that starts with Macxxxx. For now it has been patched like that, but it should be desirable to have something that matches all possiblities.

You can wrap the current transform build inside a static with this logic…
If the output contains “Mac”, then replace the string with concact[F, restinsmall] where F is the first letter and restinsmall are the rest of the characters in string extracted using substring transform and converted to lower cases using lower transform

I am not sure if it will work, as surename can have several words (for example, Sosa De Macedo). I think algorithm should be to first split the output, then for each word, do what you suggested (if begins with Mac and is not a real MacXXX surename, like MacLaughlin, then do the if-else, for A to Z with remaining substring). Then, for each splited word, should rejoin with a " " in the middle. That for each is what I am not sure if could be done with transforms, or with velocity. But could be done with an identity attibute rule, I think.

1 Like

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