
- 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-16-2020 11:47 PM
No there was just one record with Department as BLM Market.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-16-2020 11:57 PM
Ah what might be, need to check, that the script contains a slight error. Like it does 1000001 + 1, so 10000011. Is that your case?
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-16-2020 11:59 PM
That's right. It does a string addition.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-17-2020 12:00 AM
Have you tried changing the script I provided with parsing the integer?
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 12:02 AM
For example I quickly changed:
totalInt = parseInt(totalInt) + parseInt(ga.getAggregate('COUNT'));
So it uses parseInt, so the result is different.
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