Post

3 followers Follow
1
Avatar

Manage accents when creating user

Hi,

Is there any way to manage accents in Clarizen ? Basically, to automatically convert "é" to "e" using a function for example.

To give you a bit of context: we use a custom action to create new users, HR has to fill a form with the new user's first and last name (and some other stuff) and then the custom action compiles the first and last names and creates an email adress such as this:
firstname.lastname@easyteam.fr

The problem is, when a user has accents (or other special characters) in his name (for example, "André" or "François"), it generates an error because the system can't create an email adress "André.something@easyteam.fr" or "françois.something@easyteam.fr".

I've been working on a work around for 2 days now but nothing seems to be working:
- I tried checking, in the custom action, if either the first or last name contained one or more special character and, if they did, replace the special characters by their "neutral" counterparts (If(contains(firstname, 'é'), replaceString(firstname, 'é', 'e')) but I get an error about the result being a boolean instead of a string when I check for all characters (if(a, b, c) || if(d,e,f) || etc...)
- I tried the same thing with a case function, but with the same error in the end
- Finally, I tried using a conditionnal action list for each special characters (which is very very long !) but, when I finished, I got the error "The given key was not present in the dictionnary".

I'm out of ideas here, I'd really appreciate it if you could help me out !

Thank you !

Best regards,

Amir

Amir Hamza Answered

Please sign in to leave a comment.

2 comments

0
Avatar

Interesting problem. My first try would be to create a custom workflow, which looks for "é" and converts it to "e", but it might be impossible to do. So the easiest suggestion is to add to that form two more fields for first and last name, without accents.

 

I tried looking for a formula that cleans the text (it exists in Excel), but couldn't find it. So without looking into it too much, I think my suggestion is feasible (but not so easy on the eye). Perhaps someone else here can figure this out?

Guy 0 votes
Comment actions Permalink
0
Avatar

Hi Amir,

 

It seems like you have built the if statement wrong. Every IF statement is constructed of 3 parts If(Condition, TRUE result, FALSE result), hence an if Statement will return the value in the TRUE or FALSE parts. In your case, the result is a string, and you are trying to have an OR operator between the string results (from the different IF statements).

Basically you should build it either by using using nested IFs, for example: If(condition,true,if(condition,true,if(condition,true,false)))

In your use case I would probably do it with one if statement: If(In(firstname,'é','ç'),ReplaceString(ReplaceString(firstname, 'é', 'e'),'ç','c'),firstname)

 

Please let me know if it makes sense.

 

Good luck!

Tamir

Tamir Avital 0 votes
Comment actions Permalink