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

Thanks Anil,

 

I tried to insert few logs into the include script. however, I could not find the output through the system logs. Shall I set the Accessible from to global scope instead of application scope for the include script? 

 

var NHA_getCC_Personnel = Class.create();
NHA_getCC_Personnel.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {

    validateDuplicateRec: function() {
            gs.info("test", "testsource");
        gs.info("enter to the backend");
        gs.info("test", "testsource");
        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');
        gs.info(answer);
        gr.addQuery('personnel_type', personneltype);
        gr.addQuery('employee_id', employeeid);
        gr.addQuery('project_site', projectsite);
        gr.query();
        if (gr.next()) {
            answer = true;
        }
        return answer;

    },
    type: 'NHA_getCC_Personnel'
});