- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-20-2025 10:21 PM
Hi,
I have two fields on a catalog form:
Requested for - which auto populates for logged in user
request on behalf - this is used to submit request for some other person.
Requirement: If either of them doesn't have a active manager, then a error message should be poped up while submitting the form.
I tried onSubmit with GlideAjax, but it did not.
Can you help with code.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-20-2025 10:44 PM - edited 07-20-2025 10:47 PM
HI @rohitreddy ,
try this
Client script
function onSubmit() {
if (g_scratchpad.isFormValid)
return true;
var actionName = g_form.getActionName();
var userID = g_form.getValue('requested_for') || g_form.getValue('request_on_behalf_of') || g_user.userID;
var ga = new GlideAjax('CheckUserManager');
ga.addParam('sysparm_name', 'hasManager');
ga.addParam('sysparm_user_id', userID);
ga.getXMLAnswer(callBackFunc);
callBackFunc(function(answer) {
if (answer == 'false' || answer == false) {
alert("This request requires manager approval, but no manager is currently assigned to the user profile. Please contact the Service Desk team before submitting this request.");
return false;
}
g_scratchpad.isFormValid = true;
g_form.submit(actionName);
});
return false;
}
script include (you have mentioned active manager you are not checking active or not)
var CheckUserManager = Class.create();
CheckUserManager.prototype = Object.extendsObject(AbstractAjaxProcessor, {
hasManager: function() {
var userID = this.getParameter('sysparm_user_id');
if (!userID) return false;
var userGR = new GlideRecord('sys_user');
if (userGR.get(userID)) {
return userGR.manager && userGR.manager.active; //check manager is active or not
}
return false;
}
});
Please mark my answer as helpful/correct if it resolves your query.
Regards,
Chaitanya
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-20-2025 10:55 PM
function onSubmit() {
// Validation for manager presence
if (g_scratchpad.isFormValid)
return true;
var actionName = g_form.getActionName();
var userID = g_form.getValue('requested_for') || g_form.getValue('request_on_behalf_of') || g_user.userID;
var ga = new GlideAjax('CheckUserManager');
ga.addParam('sysparm_name', 'hasManager');
ga.addParam('sysparm_user_id', userID);
ga.getXMLAnswer(callBack);
function callBack(answer) {
var hasManager = answer;
if (hasManager == 'false') {
alert("This request requires manager approval, but no manager is currently assigned to the user profile. Please contact the Service Desk team before submitting this request.");
return false;
}
g_scratchpad.isFormValid = true;
g_form.submit(actionName);
}
return false;
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-20-2025 10:25 PM
Hi @rohitreddy ,
you can refer this support article and make changes to user script
https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB0779964
if you are still having any issues please share yours script here
Please mark my answer as helpful/correct if it resolves your query.
Regards,
Chaitanya
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-20-2025 10:34 PM
I am using below setup:
Script Inlcude:
This is not working....
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-20-2025 10:44 PM - edited 07-20-2025 10:47 PM
HI @rohitreddy ,
try this
Client script
function onSubmit() {
if (g_scratchpad.isFormValid)
return true;
var actionName = g_form.getActionName();
var userID = g_form.getValue('requested_for') || g_form.getValue('request_on_behalf_of') || g_user.userID;
var ga = new GlideAjax('CheckUserManager');
ga.addParam('sysparm_name', 'hasManager');
ga.addParam('sysparm_user_id', userID);
ga.getXMLAnswer(callBackFunc);
callBackFunc(function(answer) {
if (answer == 'false' || answer == false) {
alert("This request requires manager approval, but no manager is currently assigned to the user profile. Please contact the Service Desk team before submitting this request.");
return false;
}
g_scratchpad.isFormValid = true;
g_form.submit(actionName);
});
return false;
}
script include (you have mentioned active manager you are not checking active or not)
var CheckUserManager = Class.create();
CheckUserManager.prototype = Object.extendsObject(AbstractAjaxProcessor, {
hasManager: function() {
var userID = this.getParameter('sysparm_user_id');
if (!userID) return false;
var userGR = new GlideRecord('sys_user');
if (userGR.get(userID)) {
return userGR.manager && userGR.manager.active; //check manager is active or not
}
return false;
}
});
Please mark my answer as helpful/correct if it resolves your query.
Regards,
Chaitanya
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-20-2025 10:36 PM - edited 07-20-2025 10:37 PM
Hello @rohitreddy, If you'd like to validate the values on submission then you can try below once. it should be On Submit Client Script
function onSubmit() {
if ( g_form.getValue('requested_for_field') || g_form.getValue('requested_on_behalf') )
g_form.addErrorMessage('value of either Requested for or Request on behalf is empty');
return false;
}
Regards,
Nishant