Clearing cache and sys properties (GlidePropertiesDB)
Found a weird situation where the cache did not clear after updating a property through the versions related list (choosing 'Revert to this version' option), so the incorrect value is still retained in the cache.
If you do come across a similar behaviour and want to see what is in the cache you can run GlideProperties.dump(); in Scripts Background. Then you look for the property of interest and compare it to what the value is in the sys_properties table.
Whenever a property is inserted, updated or deleted the instance will do a cache flush, which is rather extreme in my view.
So, to fix the issue, ran GlidePropertiesDB.invalidate(); in Scripts Background, which does a quick property refresh.
setValue(String name, Object value) Sets the specified field to the specified value. Normally a script would do a direct assignment, for example, gr.category = value . However, if in a script the element name is a variable, then gr.setValue(elementName, value) can be used. When setting a value, ensure the data type of the field matches the data type of the value you enter. This method cannot be used on journal fields. If the value parameter is null, the record is not updated, and an error is not thrown https://developer.servicenow.com/app.do#!/api_doc?v=madrid&id=r_GlideRecord-setValue_String_Object