For example they insert spaces and letters (like áéíóú). This kind of contentID was breaking the indexer process of UCM.
Most of you will tell me to use the AUTO_NUMBER property of content server, but on some type of content, the user have to insert a specified dDocName for our SSXA Web project.
To prevent contentID like "BIOGRAFÍA CATALÁN", we developed a custom component that performs a JS validation before check-in process.
For the validation I've created a REGEX expresion that allows only letters, numbers and underscore.
This is the code inserted in the custom-component. As you see, this will "include" all system validations with the <$include super.custom_schema_validation_script_post$> sentence.
After that, starts our custom validation, we only have to return "false" if we want to cancel the check-in process.
<@dynamichtml custom_schema_validation_script_post@> <$include super.custom_schema_validation_script_post$> <$if ((dpAction like "CheckinSel" or dpAction like "CheckinNew" or dpAction like "Update"))$> if (document.Checkin != null && document.Checkin.dDocName != null) { var name = document.Checkin.dDocName.value; if(name != null && name != '' && name.length > 0) { var rgx_docname = /^[A-Za-z0-9_]{1,30}$/; if (rgx_docname.test(name)) { vstatus = "Ok"; } else { vstatus = "Error"; alert("Error: You cannot use non-ASCII characters for ContentID"); return false; } } } <$endif$> <@end@>
Download here the custom-component for your customization and use.