Thank you for your feedback.
Form temporarily unavailable. Please try again or contact docfeedback@servicenow.com to submit your comments.
Versions
  • Madrid
  • London
  • Kingston
  • Jakarta
  • Istanbul
  • Helsinki
  • Geneva
  • Store
Close

Enforcing unique numbering

Log in to subscribe to topics and get notified when content changes.

Enforcing unique numbering

Although duplicate numbers are rare, numbering does not enforce uniqueness, by default.

To enforce uniqueness, you can:
  • Create a before business rule on insert only to check for duplicate values and replace duplicates with the next available number.
  • Enable a unique index on the table.
Note: While unique indexes ensure data integrity they also prevent any insert involving a duplicate number. This may cause unexpected errors during data entry.

Sample business rule

This sample script can be used as part of a before business rule on insert only to check for duplicate numbers and replace them with the next available number. The following script references a script created in Configure left padding of a system number in a table.

var curNum = current.number + '';
 
if(curNum) {
 
  var recordClass = current.getRecordClassName();
  var gr = new GlideRecord(recordClass);
  gr.addQuery('number', curNum);
  gr.query();
 
  if(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);
    current.number = newNum;
  }
}
Feedback