Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

getting null value in client script

Community Alums
Not applicable

I am checking unique CI Group in table cmdb_ci_group and always getting null

wrote onchange catalog client script on variable level_1_organization and client callable SI

Here is the code

Client script:

function onChange(control, oldValue, newValue, isLoading) {
    if (isLoading || newValue == '') {
        return;
    }

    var level1Org = g_form.getValue('level_1_organization');

    if (level1Org) {
        var ga = new GlideAjax('CheckChildDepartment');
        ga.addParam('sysparm_name', 'getChildDepCIGroup');
        ga.addParam('sysparm_level1_org', level1Org);
        ga.getXML(childDepartmentParse);

        //ga.getXMLAnswer(function(answer){

        function childDepartmentParse(response) {

            var answer = response.responseXML.documentElement.getAttribute("answer");
            alert(answer);
            if (answer == 'true') {
                g_form.setMandatory('level_2_organization', true);
            } else {
                g_form.setMandatory('level_2_organization', false);
            }

        }
    }
}

 Script Include: checked in background script gives correct output

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

    getChildDepCIGroup: function() {
        var level1Org = this.getParameter('sysparm_level1_org');
        // var result = '';
        //  var level10rg = 'bf1043f5db05f3c0105f3e0439961968';
        if (level10rg) {

            var grlevel1 = new GlideRecord("cmn_department");
            grlevel1.addQuery("sys_id", level10rg);
            grlevel1.query();
            if (grlevel1.next()) {
                var correlationID = grlevel1.correlation_id.toString();
                var grlevel2 = new GlideRecord("cmn_department");
                grlevel2.addEncodedQuery('u_active=true^correlation_idISNOTEMPTY');
                grlevel2.addEncodedQuery('parent.correlation_id=' + correlationID);
                grlevel2.query();
                var sysIdArray = []; // Array to store sys_ids   
                while (grlevel2.next()) {
                    sysIdArray.push(grlevel2.sys_id.toString());
                }
                // gs.print('total L1 department: ' + grlevel2.getRowCount());
                // gs.print('L1 department sysIdArray: ' + sysIdArray);
                if (sysIdArray.length > 1) {
                    //gs.print('L1 department sysIdArray > 1');
                    var ciGroupArray = []; // store cmdb_ci_group sys_ids  
                    var ciGroupUniqueArray = []; // store Unique cmdb_ci_group sys_ids  
                    var grciGroup = new GlideRecord("cmdb_ci_group");
                    grciGroup.addQuery('department.sys_id', 'IN', sysIdArray);
                    grciGroup.query();
                    while (grciGroup.next()) {
                        var cigroupSysID = grciGroup.getValue('assignment_group');
                        ciGroupArray.push(cigroupSysID);
                    }
                    // gs.print('tota1 L1 Dep groups: ' + grciGroup.getRowCount());
                    //  gs.print('L1 Dep groups ciGroupArray: ' + ciGroupArray);
                    //  gs.print('L1 Dep groups cigroupSysID: ' + cigroupSysID);
                    // Function to get Unique values
                    function getUnique(array) {
                        var uniqueArray = [];

                        // Loop through array values
                        for (i = 0; i < array.length; i++) {
                            if (uniqueArray.indexOf(array[i]) === -1) {
                                uniqueArray.push(array[i]);
                            }
                        }
                        return uniqueArray;
                    }

                    ciGroupUniqueArray = getUnique(ciGroupArray); //storing Unique cmdb_ci_group sys_ids in array

                    if (ciGroupUniqueArray.length > 1) {
                        //result = 'true';
                        return true;
                    } else {
                        return false;
                    }
                } else {
                    return false;
                }
            } else {
                return false;
            }
        } else {
            return false;
        }
    },
    type: 'CheckChildDepartment'
});

// gs.print('result: ' + result);
//   gs.print('ciGroupArray: ' + ciGroupArray);
// gs.print('ciGroupUniqueArray: ' + ciGroupUniqueArray);

 

1 ACCEPTED SOLUTION

@Community Alums 

try creating new script include and function and then call it

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

View solution in original post

11 REPLIES 11

RAMANA MURTHY G
Mega Sage

Hello @Community Alums ,

Just remove single quotations in if(answer == 'true'){   ....  }    statement. It should be

if (answer == true){
        g_form.setMandatory('level_2_organization', true);
} else{
        g_form.setMandatory('level_2_organization', false);
}

 

Please mark my answer correct & Helpful, if it helps you

Thank you

 

 

Please mark my answer helpful  & correct if it helps you
Thank you

G Ramana Murthy
ServiceNow Developer

Community Alums
Not applicable

Hi @RAMANA MURTHY G ,

 

I tried with above changes but still I am getting NULL alert