- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-16-2023 02:43 AM
->In user form there's a string field named Employee number it should auto fill with a prefix and a number in sequential order when a new user is created.
->For example the last existing user Employee number is GH1000 then when a new user is created its employee number field should filled with GH1001 so it follows in sequential order whenever a new is created
For this I used a business rule but it's but its printing GHundefined please help me to fix this
This is the BR I used in sys_user table
When to run -> Before insert update
(function executeRule(current, previous /*null when async*/ ) {
if (current.isNewRecord()) {
var latestNumber = '';
var existingUsers = new GlideRecord('sys_user');
existingUsers.addNotNullQuery('employee_number');
existingUsers.addQuery('employee_number', 'STARTSWITH', 'GH');
existingUsers.orderByDesc('employee_number');
existingUsers.setLimit(1);
existingUsers.query();
if (existingUsers.next()) {
var lastNumber = existingUsers.employee_number.substr(2);
var nextNumber = parseInt(lastNumber, 10) + 1;
latestNumber = 'GH' + nextNumber.toString().padStart(lastNumber.length, '0');
} else {
latestNumber = 'GH0001';
}
gs.log('Latest Employee Number: ' + latestNumber);
current.setValue('employee_number', latestNumber);
}
})(current, previous);
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-16-2023 07:01 AM
@Bruce lee Navigate to the u_number dictionary entry for the sys_user table, and navigate to Default Value tab and remove the text "javascript:global.getNextObjNumberPadded();" from the default value field.
Create an Before Insert Business rule and write the below script
(function executeRule(current, previous /*null when async*/) {
// Add your code here
current.u_number=global.getNextObjNumberPadded();
})(current, previous);
Please mark the appropriate response as correct answer and helpful, This may help other community users to follow correct solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-16-2023 07:01 AM
@Bruce lee Navigate to the u_number dictionary entry for the sys_user table, and navigate to Default Value tab and remove the text "javascript:global.getNextObjNumberPadded();" from the default value field.
Create an Before Insert Business rule and write the below script
(function executeRule(current, previous /*null when async*/) {
// Add your code here
current.u_number=global.getNextObjNumberPadded();
})(current, previous);
Please mark the appropriate response as correct answer and helpful, This may help other community users to follow correct solution.