
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-16-2020 10:38 PM
If I add a new prefix - BLM on the sys_number table.
Now help me write a Business rule that this prefix will only auto-number user_name field on the User table if Department is BLM.
How to achieve this?
Solved! Go to Solution.
- Labels:
-
Multiple Versions

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-17-2020 01:41 AM
Maybe a small alternative, which would prevent issues when you are deleting users or removing the department of users: using an actual last number record.
- Just create a record in the sys_number_counter table (don't select a table, just create a record with only a number matching or higher then your last current number)
- Business Rule condition stays on department = your department OR department changes to your department, on insert + on update
Maybe add, user_name does not contain your prefix? But that's up to you.
- Script like (only update the sys_id with the sys_id of your new number record):
(function executeRule(current, previous /*null when async*/) {
var prefixStr = 'BLM';
var numberInt = 1000000;
var grCounter = new GlideRecord('sys_number_counter');
grCounter.get('be237ed32fb3d890b0c2d5ea2799b62a');
var lastInt = grCounter.getValue('number');
current.user_name = prefixStr + (parseInt(numberInt) + parseInt(lastInt) + 1);
grCounter.addValue('number', 1);
grCounter.update();
})(current, previous);
If my answer helped you in any way, please then mark it as helpful.
Kind regards,
Mark
2020 ServiceNow Community MVP
2020 ServiceNow Developer MVP
---
LinkedIn
Community article list
Kind regards,
Mark Roethof
Independent ServiceNow Consultant
10x ServiceNow MVP
---
~444 Articles, Blogs, Videos, Podcasts, Share projects - Experiences from the field

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-17-2020 02:42 AM
For example:
grCounter.setValue('number', parseInt(lastInt) + 1);
If my answer helped you in any way, please then mark it as helpful.
Kind regards,
Mark
2020 ServiceNow Community MVP
2020 ServiceNow Developer MVP
---
LinkedIn
Community article list
Kind regards,
Mark Roethof
Independent ServiceNow Consultant
10x ServiceNow MVP
---
~444 Articles, Blogs, Videos, Podcasts, Share projects - Experiences from the field

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-17-2020 02:57 AM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-17-2020 02:59 AM
Mark, I just removed the numberInt, we initiated in the script, just to keep it simple. But, really hats off more to your patience than to the solution. I bow down to such a patience!

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-17-2020 03:00 AM
Nice that it works now!
Can you close this topic?
Kind regards,
Mark
2020 ServiceNow Community MVP
2020 ServiceNow Developer MVP
---
LinkedIn
Community article list
Kind regards,
Mark Roethof
Independent ServiceNow Consultant
10x ServiceNow MVP
---
~444 Articles, Blogs, Videos, Podcasts, Share projects - Experiences from the field