- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-13-2020 05:49 AM
I have a custom table that inserts some user fields each time a request is submitted. How can I do a check on the table to see if the Employee ID already exists, and if it does, display a message to the requester and do not allow submission?
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-18-2020 10:29 AM
I was able to get this working by using an OnChange script:
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var employeeId = g_form.getValue('employee_id');
if (employeeId != ''){
var ga_applicant = new GlideAjax("CorporateTravel");
ga_applicant.addParam("sysparm_name","getRequestInfo");
ga_applicant.addParam("employeeId", employeeId );
ga_applicant.getXML(ajaxResponse);
}
function ajaxResponse(serverResponse) {
var applicant = serverResponse.responseXML.getElementsByTagName("applicant");
if (applicant.length > 0){
already_applied = true;
alert("This person already has an application request in the system. Only one application request for a person may be submitted.");
g_form.setValue('understand_accept1', '');
g_form.setValue('understand_accept2', '');
g_form.setValue('understand_accept3', '');
}
}
}

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-13-2020 09:08 PM
Alternatively you can create a Before Business rule on the custom table with the script below.
(function executeRule(current, previous /*null when async*/) {
// Add your code here
var user = gs.getUserID();
var gr = new GlideRecord('u_travel');
gr.addQuery('u_employee_id',current.u_employee_id);
gr.query();
if(gr.next())
{
gs.addInfoMessage("Employee ID already present");
current.setAbortAction(true);
}
})(current, previous);
- Pradeep Sharma
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-14-2020 09:54 AM
Hi Pradeep,
The 'OnSubmit' script worked to block an entry being added to the table, but it did not prevent submission of the form and did not present the 'alert' message.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-14-2020 10:30 AM
Are you able to reproduce this in your personal developer instance?
- Pradeep Sharma
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-18-2020 10:29 AM
I was able to get this working by using an OnChange script:
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var employeeId = g_form.getValue('employee_id');
if (employeeId != ''){
var ga_applicant = new GlideAjax("CorporateTravel");
ga_applicant.addParam("sysparm_name","getRequestInfo");
ga_applicant.addParam("employeeId", employeeId );
ga_applicant.getXML(ajaxResponse);
}
function ajaxResponse(serverResponse) {
var applicant = serverResponse.responseXML.getElementsByTagName("applicant");
if (applicant.length > 0){
already_applied = true;
alert("This person already has an application request in the system. Only one application request for a person may be submitted.");
g_form.setValue('understand_accept1', '');
g_form.setValue('understand_accept2', '');
g_form.setValue('understand_accept3', '');
}
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-13-2020 06:22 AM
Hi Nicole,
As suggested by
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader