The CreatorCon Call for Content is officially open! Get started here.

script include response return null

chet shian
Tera Contributor

Hi All,

 

I'd like to validate multiple fields, all of which must be unique. I handle the validation on Onsubmit event. Below are my settings on the client and backend. 

 

I can't get things to function, and the response from the server side returned null. 

 

What's wrong with my code and settings?

chetshian_0-1705564302601.png

 

chetshian_1-1705564501254.png

 

Code on client side

 

function onSubmit() {
    //Type appropriate comment here, and begin script below
    if (g_scratchpad.isFormValid) { //using g_scratchpad as Async GlideAjax does not work with Onsubmit
        return true;
    }
    var personnel_type = g_form.getValue('personnel_type').trim();
    var employee_id = g_form.getValue('employee_id').trim();
    var Project_site = g_form.getValue('project_site').trim();
    //var actionName = g_form.getActionName();

    var ga = new GlideAjax('getCC_Personnel');
    ga.addParam('sysparm_name', 'validateDuplicateRec');
    ga.addParam('sysparm_personnel_type', personnel_type);
    ga.addParam('sysparm_employee_id', employee_id);
    ga.addParam('sysparm_Project_site', Project_site);
    ga.getXMLAnswer(validateDuplicate);
    return false;


    function validateDuplicate(answer) {

        //var resp = response.responseXML.documentElement.getAttribute("answer");


        g_scratchpad.isFormValid = true;
       

        alert(answer);
        if (answer == 'false') {
            g_form.submit(actionName);
            var actionName = g_form.getActionName();
            g_form.addErrorMessage('Duplicate user with same project site and personnel type found');

            return false;
        } else {
            g_form.submit(actionName);
            actionName = g_form.getActionName();
            alert('another alert');
            return true;

        }




    }
}
 
and code on backend. 
 
var XgetCC_Personnel = Class.create();
XgetCC_Personnel.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {

    validateDuplicateRec: function() {
        gs.log("enter to the backend");
        var answer = false;
        var personneltype = this.getParameter('sysparm_personnel_type');
        var employeeid = this.getParameter('sysparm_employee_id');
        var projectsite = this.getParameter('sysparm_Project_site');
        var gr = new GlideRecordSecure('x_wohp_new_hire_ap_nac_c_cc_personnel');
        gr_cc_personnel.addQuery('personnel_type', personneltype);
        gr_cc_personnel.addQuery('employee_id', employeeid);
        gr_cc_personnel.addQuery('project_site', projectsite);
        gr_cc_personnel.query();
        if (gr_cc_personnel.next()) {
            answer = true;
        }
        return answer;
        // var result = "";
        // var personneltype = this.getParameter('sysparm_personnel_type');
        // var employeeid = this.getParameter('sysparm_employee_id');
        // var projectsite = this.getParameter('sysparm_Project_site');
        // var gr_cc_personnel = new GlideRecordSecure ('x_wohp_new_hire_ap_nac_c_cc_personnel');

        // gr_cc_personnel.addQuery('personnel_type',personneltype);
        //gr_cc_personnel.addQuery('employee_id',employeeid);
        //  gr_cc_personnel.addQuery('project_site',projectsite);
        // gr_cc_personnel.addActiveQuery();

        // 3. Execute query
        //  gr_cc_personnel.query();    
        //  if (gr_cc_personnel.next()) {
        //      result = "true";
        //  }
        //   gs.info("Chetan-2 inside validate form Result is " + result);
        //  return result;




    },
    type: 'XgetCC_Personnel'
});

 

10 REPLIES 10

Jagadish Sanadi
Kilo Sage
Hello Chet,
 
Please try below code
 
    function validateDuplicate(answer) {

 

        //var resp = answer;



        g_scratchpad.isFormValid = true;
       

 

        alert(answer);
        if (answer == 'false') {
            g_form.submit(actionName);
            var actionName = g_form.getActionName();
            g_form.addErrorMessage('Duplicate user with same project site and personnel type found');

 

            return false;
        } else {
            g_form.submit(actionName);
            actionName = g_form.getActionName();
            alert('another alert');
            return true;

 

        }
 
still you didn't get output then write below script include code in background script and validate.
 
 validateDuplicateRec: function() {
        gs.log("enter to the backend");
        var answer = "false";
        var personneltype = this.getParameter('sysparm_personnel_type');
        var employeeid = this.getParameter('sysparm_employee_id');
        var projectsite = this.getParameter('sysparm_Project_site');
        var gr = new GlideRecordSecure('x_wohp_new_hire_ap_nac_c_cc_personnel');
        gr_cc_personnel.addQuery('personnel_type', personneltype);
        gr_cc_personnel.addQuery('employee_id', employeeid);
        gr_cc_personnel.addQuery('project_site', projectsite);
        gr_cc_personnel.query();
        if (gr_cc_personnel.next()) {
            answer = "true";
        }
 
Please mark my answer helpful if I have answered you
 
 

Thanks Jagadish, I don't see any differences between the code with my code. 
I tried and it did not work.    alert(answer); <-- return a null 

 

 function validateDuplicate(answer) {

 

        //var resp = answer;



        g_scratchpad.isFormValid = true;
       

 

        alert(answer);
        if (answer == 'false') {
            g_form.submit(actionName);
            var actionName = g_form.getActionName();
            g_form.addErrorMessage('Duplicate user with same project site and personnel type found');

 

            return false;
        } else {
            g_form.submit(actionName);
            actionName = g_form.getActionName();
            alert('another alert');
            return true;

 

        }

Harish KM
Kilo Patron
Kilo Patron

Hi @chet shian your script include is returning null due to below error.

your gliderecord has object gr, but below queries your passing gr_cc_personnel. It must be gr.

 

var gr = new GlideRecordSecure('x_wohp_new_hire_ap_nac_c_cc_personnel');
gr_cc_personnel.addQuery('personnel_type', personneltype);
gr_cc_personnel.addQuery('employee_id', employeeid);
gr_cc_personnel.addQuery('project_site', projectsite);
gr_cc_personnel.query();
if (gr_cc_personnel.next()) {
answer = true;
}
return answer;

Regards
Harish


I am getting null return after I replaced gr_cc_personnel with gr
@Harish KM wrote:

Hi @chet shian your script include is returning null due to below error.

your gliderecord has object gr, but below queries your passing gr_cc_personnel. It must be gr.

 

 

 

var gr = new GlideRecordSecure('x_wohp_new_hire_ap_nac_c_cc_personnel');
gr.addQuery('personnel_type', personneltype);
gr.addQuery('employee_id', employeeid);
gr.addQuery('project_site', projectsite);
gr.query();
if (gr.next()) {
answer = true;
}
return answer;