Improving the prevent duplicate number business rule

 as per the approach here:

https://docs.servicenow.com/bundle/paris-platform-administration/page/administer/field-administration/concept/c_EnforcingUniqueNumbering.html?cshalt=yes

here is a slightly improved version of the bus rule

description:

use this script to test:
/*var grInc=new GlideRecord('incident');
grInc.newRecord();
grInc.short_description='test RDS';
grInc.number='INC5150xxx'; //--an existing number
gs.print(grInc.insert());*/

script:

(function executeRule(current, previous /*null when async*/ ) { //var curNum = current.number + ''; var curNum = current.getValue('number'); if (curNum) { var recordClass = current.getRecordClassName(); var now_GR = new GlideRecord(recordClass); now_GR.addQuery('number', curNum); now_GR.query(); if (now_GR.getRowCount() > 0) { var newNum = getNextObjNumberPadded(); //gs.addInfoMessage("The number " + current.number + " was already used by another " + //recordClass + ". The " + recordClass + " number has been changed to " + //newNum); var sFeedback = gs.getMessage("The number {0} was already used by another {1}. The {1} number has been changed to {2}", [ current.number, recordClass, newNum ]); gs.addInfoMessage(sFeedback); //current.number = newNum; current.setValue('number', newNum); } } })(current, previous);

Comments

Popular posts from this blog

GlideRecord setValue

variable advanced reference qualifier example

URL link in addInfoMessage