Loading...
Loading...
After a sys_ui_message record is modified it can be overwritten during an upgrade. This is a different issue from the issue described in KB0966221. Sometimes if there is an update to sys_ui_message and the case of the key is different the upgrade will overwrite the customization. This can cause a major impact to the customer as there are no errors and if there has been many changes it is extremely difficult to confirm if there has been any changes as there are no errors.
This can be reprodcied OOTB once a langugage plugin is applied and if the Key for a sys_ui_message is changes case during upgrade. 1. Modify a sys_ui_message value 2. Upgrade to a patch that changes the key of that sys_ui_message Expected behavior: Customisations should not be overwritten Actual behavior: Customisations are overwritten .
The issue occurs because the case is not taken into account in the transform map. The localization team provided the following change to transform maps to ignore case which will resolve the issue: 1. Go to System Import Sets => Adminstration => Transform Maps 2. Filter for name = "Sys UI Message Translation Map" 3. Open the "Sys UI Message Translation Map" record and change the script as below, Change from: var checkList = source.u_key; if(list[checkList]) ignore = true; To: var checkList = source.u_key; if(list[checkList.toLowerCase()]) ignore = true; and then go to "Transform scripts" related list on the same record and open onStart script: Change from: list = new Object(); var attributesString = import_set.data_source.properties; var ga = new GlideAttributes(attributesString); var lang = ga.getAttribute('language'); list = new I18nUtils().getLanguageCustomizations(lang, 'sys_ui_message', new Array('key'),list); To: ignoreList = new Object(); var attributesString = import_set.data_source.properties; var ga = new GlideAttributes(attributesString); var lang = ga.getAttribute('language'); ignoreList = new I18nUtils().getLanguageCustomizations(lang, 'sys_ui_message', new Array('key'),ignoreList); var list = new Object(); if (ignoreList != null) for (var key in ignoreList) list[key.toLowerCase()] = ignoreList[key]; When this problem is fixed, please review the above changes, it might not be required anymore and hence at that time you can revert above changes to OOB version.
PRB1512640
Click on a version to see all relevant bugs
ServiceNow Integration
Learn more about where this data comes from
Bug Scrub Advisor
Streamline upgrades with automated vendor bug scrubs
BugZero Enterprise
Wish you caught this bug sooner? Get proactive today.