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.

Autopopulate categoryowner depends upon category and subcategory

sibasundarsahoo
Tera Contributor
 
8 REPLIES 8

Anand Kumar P
Giga Patron

Try with below script i have updated

Script Include -

var datadependencyutils = Class.create();
datadependencyutils.prototype = {
    initialize: function() {},
    getCategoryOwnersApprovaldependsuponCategory: function() {
        //var array1 = '';
var category = this.getParameter('sysparm_u_category');
var subcategory = this.getParameter('sysparm_u_sub_category');

        if (u_category == 'Other' || u_category == 'Content Management' || u_category == 'Tech Solution Delivery (Software Engineering Tools)' || u_category == 'Knowledge Management' || u_category == 'Taxonomy Management (Data)' || u_category == 'Artificial Intelligence' || u_category == 'Business Analytics' || u_category == 'Business Intelligence' || u_category == 'Claim Management' || u_category == 'Quality Management') {
            var gr4 = new GlideRecord('u_datadependency');
            gr4.addEncodedQuery('u_dependent_value=' + u_category + '^u_element=Category Owner Approval^active=true');
            gr4.query();
            if (gr4.next()) {
                var userapproval2 = gr4.u_user_approval;
                if (userapproval2.indexOf(',') >= 0) {
                    userapproval2 = userapproval2.substring(0, userapproval2.indexOf(','));
                }
                return userapproval2;
            }
        } else {
            if (u_sub_category == '') //subcatg == ''
            return '';
            var gr3 = new GlideRecord('u_datadependency');
            gr3.addEncodedQuery('u_dependent_value=' + u_category + '^u_dependent_value_2=' + u_sub_category + '^u_element=Category Owner Approval^active=true');
            gr3.query();
            if (gr3.next()) {
                var userapproval = gr3.u_user_approval;
                if (userapproval.indexOf(',') >= 0) {
                    //gs.log("approver"+userapproval);
                    userapproval = userapproval.substring(0, userapproval.indexOf(','));
                }
                return  userapproval;
            }
        }
    },
 
    type: 'datadependencyutils'
};

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

var category = g_form.getValue('u_category');
var subCategory = g_form.getValue('u_sub_category');

if (category) {
var ga = new GlideAjax('datadependencyutils');
ga.addParam('sysparm_name', 'getCategoryOwnersApprovaldependsuponCategory');
ga.addParam('sysparm_u_category', category);
ga.addParam('sysparm_u_sub_category', subCategory);
ga.getXML(function(response) {
var approvalUser = response.responseXML.documentElement.getAttribute("answer");
if (approvalUser) {
g_form.setValue('u_category_owner', approvalUser);
} else {
g_form.clearValue('u_category_owner');
}
});
}
}

 

If my response helped, please mark it as the accepted solution and give a thumbs up👍.
Thanks,
Anand

i tried this script but it is not working

 

i put a alert below the function. 

alert('Data sent to si'+response); - this one
but when i checked it in portal view in response it showing this 'Data sent to si[object Object]
'

var AutopopulateCategoryOwner = Class.create();
AutopopulateCategoryOwner.prototype = {
    initialize: function() {},
    getCategoryOwnersApprovaldependsuponCategory: function() {
        //var array1 = '';
        var category = this.getParameter('sysparm_u_category');
        var subcategory = this.getParameter('sysparm_u_sub_category');
        var array1 = {};
        if (category == 'Other' || category == 'Content Management' || category == 'Tech Solution Delivery (Software Engineering Tools)' || category == 'Knowledge Management' || category == 'Taxonomy Management (Data)' || category == 'Artificial Intelligence' || category == 'Business Analytics' || category == 'Business Intelligence' || category == 'Claim Management' || category == 'Quality Management') {
            var gr4 = new GlideRecord('u_datadependency');
            gr4.addQuery('u_dependent_value', category);
            gr4.addQuery('u_element', 'Category Owner Approval');
            gr4.addActiveQuery();
            gr4.query();
            if (gr4.next()) {
                array1.app = gr4.u_user_approval;
            }
            return JSON.stringify(array1);
        }

    },
    type: 'AutopopulateCategoryOwner'
};