- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-04-2020 04:24 PM
Hi All,
I have a requirement to check if a userid already exists and if it exists an error should be thrown user id already exists. There is a field on a catalog item and when a user enters the user id like pkmar00 it should check behind the scenes and throw an error and clear out the field value.
Kindly please help me.
Thanks & Regards.
Praveen.
Solved! Go to Solution.
- Labels:
-
Scripting and Coding

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-11-2020 11:02 AM
Try this. Tested it with "abraham.lincoln", "donald.trump"
Script Include:
var checkUserExists = Class.create();
checkUserExists.prototype = Object.extendsObject(AbstractAjaxProcessor, {
validateUser: function() {
var user_id = this.getParameter('user_id');
var gr = new GlideRecord("sys_user");
gr.addQuery("user_name", user_id);
gr.query();
if (gr.next()) {
return true;
} else {
return false;
}
},
type: 'checkUserExists'
});
UI Script:
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var ga = new GlideAjax('checkUserExists');
ga.addParam('sysparm_name', "validateUser");
ga.addParam('user_id', newValue);
ga.getXMLAnswer(function(answer) {
if (answer == "true") {
g_form.clearValue('user_id');
g_form.showFieldMsg('user_id', 'User already exists.');
}
});
}

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-04-2020 04:39 PM
Try this
onChange Client script
Variable Name - < USER ID >
var ga = new GlideAjax('findUser');
ga.addParam('sysparm_name', 'userExist');
ga.addParam('sysparm_user_name', newValue);
ga.getXML(callBack);
function callBack(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
if(answer == false){
g_form.setValue('<USER_ID_FIELD_NAME>', ''); // replace <USER_ID_FIELD_NAME> with actual user_id variable.
g_form.showFieldMsg('<USER_ID_FIELD_NAME>', 'User Already Exist!'); // replace <USER_ID_FIELD_NAME> with actual user_id variable.
} else {
g_form.hideFieldMsg();
}
}
Script Include
Name - findUser
Client Callable - true
var findUser= Class.create();
findUser.prototype = Object.extendsObject(AbstractAjaxProcessor, {
userExist:function() {
var gr = new GlideRecord("sys_user");
gr.addQuery("user_name", this.getParameter('sysparm_user_name')); //replace <field_name> with staging table user name field name.
gr.setLimit(1);
gr.query();
if(gr.next()){
return false;
}
return true;
} ,
});
Muhammad
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-10-2020 01:53 PM
Hi Muhammad,
I tried the code but it is not working:
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var ga = new GlideAjax('readuserID');
ga.addParam('sysparm_name', 'userExist');
ga.addParam('sysparm_user_name', newValue);
ga.getXML(callBack);
function callBack(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
alert(answer);
if(answer == false || answer == ''){
g_form.setValue('user_id_of_the_new_user', ''); // replace <USER_ID_FIELD_NAME> with actual user_id variable.
g_form.showFieldMsg('user_id_of_the_new_user', 'User Already Exist!'); // replace <USER_ID_FIELD_NAME> with actual user_id variable.
alert('Please check for the user id, it already exists');
return false;
} else {
g_form.hideFieldMsg();
}
//Type appropriate comment here, and begin script below
}
}
The answer is returning to null.
Can you please check?
Thanks,
pK

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-10-2020 05:21 PM
Can you check if Script include is mark as Client Callable? Also, can you share the screenshot of your script include?
Muhammad
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-11-2020 10:33 AM