- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-08-2025 07:37 PM
Dear experts,
I am facing a problem where my onLoad script is not working as expected. I want to make the assigned_to field in the risk event form to autopopulate the user's manager for whichever users that creates a new risk event record. I have defined each user's manager in the sys_user record and I have created a script include called GetManager and a onLoad client script. Please advise what approach or amendments I need to be done to my scripts or my actions.
var GetManager = Class.create();
GetManager.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getManager: function() {
var userID = this.getParameter('sysparm_user_id');
var userGR = new GlideRecord('sys_user');
if (userGR.get(userID)) {
if (userGR.manager) {
return userGR.manager.toString();
}
}
return '';
}
});
function onLoad() {
var openedBy = g_form.getValue('opened_by');
if (openedBy) {
// Use GlideAjax to call a Script Include that returns the manager
var ga = new GlideAjax('GetManager');
ga.addParam('sysparm_name', 'getManager');
ga.addParam('sysparm_user_id', openedBy);
ga.getXMLAnswer(function(response) {
if (response) {
g_form.setValue('assigned_to', response);
}
});
}
}
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-08-2025 08:02 PM
And use below 👇 script
function onLoad() {
if (g_form.isNewRecord()) {
var openedBy = g_form.getValue('opened_by');
if (openedBy) {
g_form.getReference('opened_by', function(user) {
if (user.manager) {
g_form.setValue('assigned_to', user.manager);
}
});
}
}
}
This will work if fields are correct and also try by removing "is New Record"
Kindly mark my answer as helpful and accept solution if it helped you in anyway. This will help me be recognized for the efforts and also move this questions from unsolved to solved bucket.
Regards,
Shivalika
My LinkedIn - https://www.linkedin.com/in/shivalika-gupta-540346194
My youtube - https://youtube.com/playlist?list=PLsHuNzTdkE5Cn4PyS7HdV0Vg8JsfdgQlA&si=0WynLcOwNeEISQC
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-08-2025 09:41 PM
Hello @ChuanYanF
With my recent solution even without bringing "opened by on the form" its working, I have done it for incident and see the reference screenshots and code -
//CLIENT SCRIPT
function onLoad() {
//Type appropriate comment here, and begin script below
var ga = new GlideAjax('GetOpenedByManager');
ga.addParam('sysparm_name', 'getManager');
ga.addParam('sysparm_record_number', g_form.getValue('number')); // Replace with actual record number
alert(g_form.getValue('number'))
ga.getXMLAnswer(function(response) {
alert("working");
alert("Opened By's Manager: " + response);
g_form.setValue('assigned_to',response);
});
}
//SCRIPT INCLUDE
// Name: GetOpenedByManager
// Accessible from: Client Callable - true
var GetOpenedByManager = Class.create();
GetOpenedByManager.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getManager: function () {
var recordNumber = this.getParameter('sysparm_record_number');
var gr = new GlideRecord('incident');
gr.addQuery('number', recordNumber);
gr.query();
if (gr.next()) {
var openedBy = gr.getValue('caller_id');
if(openedBy) {
var userGR = new GlideRecord('sys_user');
if (userGR.get(openedBy)) {
var manager = userGR.getValue('manager');
return manager;
}
}
}
}
});
This answers your second question as well @ChuanYanF
Kindly mark my answer as helpful and accept solution if it helped you in anyway. This will help me be recognized for the efforts and also move this questions from unsolved to solved bucket.
Regards,
Shivalika
My LinkedIn - https://www.linkedin.com/in/shivalika-gupta-540346194
My youtube - https://youtube.com/playlist?list=PLsHuNzTdkE5Cn4PyS7HdV0Vg8JsfdgQlA&si=0WynLcOwNeEISQCY
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-08-2025 08:11 PM
Hello @ChuanYanF
Did you use exactly this -
var openedBy = g_form.getValue('opened_by');
if (openedBy) {
g_form.getReference('opened_by', function(user) {
if (user.manager) {
g_form.setValue('assigned_to', user.manager);
}
Please add alerts in middle for each value and show - this cant be - it should work.
Kindly mark my answer as helpful and accept solution if it helped you in anyway. This will help me be recognized for the efforts and also move this questions from unsolved to solved bucket.
Regards,
Shivalika
My LinkedIn - https://www.linkedin.com/in/shivalika-gupta-540346194
My youtube - https://youtube.com/playlist?list=PLsHuNzTdkE5Cn4PyS7HdV0Vg8JsfdgQlA&si=0WynLcOwNeEISQCY
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-08-2025 08:16 PM
Ok ok @ChuanYanF
Now I got the issue - is there any assignment group field on the risk event form ??
It's not populating because the user's manager is not member of this assignment group field. Must add him as member.
Kindly mark my answer as helpful and accept solution if it helped you in anyway. This will help me be recognized for the efforts and also move this questions from unsolved to solved bucket.
Regards,
Shivalika
My LinkedIn - https://www.linkedin.com/in/shivalika-gupta-540346194
My youtube - https://youtube.com/playlist?list=PLsHuNzTdkE5Cn4PyS7HdV0Vg8JsfdgQlA&si=0WynLcOwNeEISQCY
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-08-2025 08:20 PM
But I already deactivated the assignment group field since I am not using this field, must I activate it back? And I checked the debug console using this code below and the result shows undefined, meaning it did not capture the opened_by user's sys_id
g_form.getReference('opened_by', function(user) {
console.log(user); // Log the user object
});
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-08-2025 08:25 PM
No no @ChuanYanF
It doesn't works like that in console , you have deactivated the assignment group field - but the reference qualifier by default checks the assignment group field - that's why it's failing.
you can add alerts in between my script itself -
var openedBy = g_form.getValue('opened_by');
alert(openedBy);
if (openedBy) {
g_form.getReference('opened_by', function(user) {
if (user.manager) {
g_form.setValue('assigned_to', user.manager);
alert(user.manager) }
It's the problem of assignment group I am sure. Just add above alerts and run. @ChuanYanF
Kindly mark my answer as helpful and accept solution if it helped you in anyway. This will help me be recognized for the efforts and also move this questions from unsolved to solved bucket.
Regards,
Shivalika
My LinkedIn - https://www.linkedin.com/in/shivalika-gupta-540346194
My youtube - https://youtube.com/playlist?list=PLsHuNzTdkE5Cn4PyS7HdV0Vg8JsfdgQlA&si=0WynLcOwNeEISQCY
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-08-2025 08:37 PM
Hi Shivalika, I see what is the problem here right now, I need to put the opened_by field out to my form only it will populate the assigned_to field, is there a way where I dont have to put the opened_by field into the form but the client script will still runs?