- Post History
- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
01-25-2023 09:16 AM - edited 01-25-2023 09:18 AM
Symptoms
When using previous.field_name in after BR it in some cases doesnt respect field changes.
Diagnosis
In order to replicate the issue I have written a log statement to print current and previous value for a field such as name using same code looks like below.
(function executeRule(current, previous /*null when async*/) {
// Add your code here
var sDebug = '';
var preValue = previous.name;
var curValue = current.name;
var gru = GlideScriptRecordUtil.get(current);
gru.getChangedFields(); //Returns an arrayList of changed field elements with friendly names
sDebug += gru.getChangedFieldNames(); //Returns an arrayList of changed field elements with database names
gru.getChanges();
gs.log("Location afterBR=" + "preValue=" + preValue + " curValue="+ curValue + ' sdebug=' + sDebug,'vutil');
})(current, previous);
Solution
Order of business rule should be <90 on cmn_location table in order for after business rule to track changes on a field.
Video Demo
References
https://servicenowguru.com/scripting/business-rules-scripting/checking-modified-fields-script/
https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB0553121