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.

default value of variable in record producer

Rosy14
Kilo Sage

I have a field in record producer. it is read only. If logged in user's company contains CASA or LI & FUNG then then the field value will be 2.5 else ). below code not working

Script include:
var loggedUserData = Class.create();
loggedUserData.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    name: function() {
        var x = gs.getUser().company.name;
		if(x.toString().indexOf("CASA") >= 0 || x.toString().indexOf("CASA") >= 0 || x.toString().indexOf("casa") >= 0 || x.toString().indexOf("LI & FUNG") >= 0)
			return 2.5;
		else
			return 0;	
    },



    type: 'loggedUserData'
});

 

Catalog client script:
function onLoad() {
    var ga = new GlideAjax('loggedUserData');
    ga.addParam('sysparm_name', 'name');
    ga.getXML(callback);
}

function callback(response) {
    var answer = response.responseXML.documentElement.getAttribute("answer");
    g_form.addInfoMessage(answer);
	g_form.setValue("u_commission_rate",answer);
    //put this answer in your variable  
}

 

1 ACCEPTED SOLUTION

SN_Learn
Kilo Patron
Kilo Patron

Hi @Rosy14 ,

 

Please try the below code, working in PDI

Script Include:

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

detailsSpec: function() {

        var getID = this.getParameter('sysparm_req_for');
        var getCompID = new GlideRecord('sys_user');
        if (getCompID.get(getID)) {
            var deptID = getCompID.department.name;
            if (deptID.toString().indexOf("CASA") >= 0 || deptID.toString().indexOf("CASA") >= 0 || deptID.toString().indexOf("casa") >= 0 || deptID.toString().indexOf("LI & FUNG") >= 0)
                return 2.5;
            else
                return 0;
        }
    },

    type: 'loggedUserData'
});

 

OnLoad Client script:

function onLoad() {

    var getRequestedForID = g_form.getValue('requested_for');

    var ga = new GlideAjax('loggedUserData');
    ga.addParam('sysparm_name', 'detailsSpec');
    ga.addParam('sysparm_req_for', getRequestedForID);
    ga.getXMLAnswer(responseFun);

    function responseFun(response) {
        var answer = response;
        if (answer == 2.5) {
            g_form.setValue('u_commission_rate', answer);
        } else {
            g_form.setValue('u_commission_rate', answer);
        }
    }
}

 

Output:

SN_Learn_0-1720288792732.png

 

Mark this as Helpful / Accept the Solution if this helps

----------------------------------------------------------------
Mark this as Helpful / Accept the Solution if this helps.

View solution in original post

3 REPLIES 3

Sandeep Rajput
Tera Patron
Tera Patron

@Rosy14 Please update your Script include as follows.

 

name: function() {
        var company = gs.getUser().getCompanyID();
        var glideCompany = new GlideRecord('core_company');
        if(glideCompany.get(company)){
             var x = glideCompany.name;
		if(x.toString().indexOf("CASA") >= 0 || x.toString().indexOf("CASA") >= 0 || x.toString().indexOf("casa") >= 0 || x.toString().indexOf("LI & FUNG") >= 0){
            return '2.5';
        }
			
		else{
            return '0';	
        }
			
        }
    },

 

Hope this helps.

 

SAI VENKATESH
Kilo Patron
Kilo Patron

Hi @Rosy14 

 

Script:

Client Script:

 

function onLoad() {
    //Type appropriate comment here, and begin script below

    var loggedinuser = g_user.userID;
    alert(loggedinuser);

    var gr = new GlideAjax('GetManagerDetailsScript');
    gr.addParam('sysparm_name', 'getdetails');
    gr.addParam('sysparm_user', loggedinuser);
    gr.getXMLAnswer(callback);

    function callback(response) {

        var answer = response;
		alert(answer);
    }

}

 

Script Include:

var GetManagerDetailsScript = Class.create();
GetManagerDetailsScript.prototype = Object.extendsObject(AbstractAjaxProcessor, {
	getdetails : function(){

		var userde=this.getParameter('sysparm_user');
		var luser=new GlideRecord('sys_user');
		luser.addQuery('sys_id',userde);
		luser.query();
		if(luser.next()){
			var companyname= luser.company.name;
			if(companyname.indexOf('CASA')!=-1 || companyname.indexOf('LI & FUNG')!=-1){
				return 2.5;
			}
			else{
				return 0;
			}
		}

		
	},




});

 

 

Thanks and Regards

Sai Venkatesh

SN_Learn
Kilo Patron
Kilo Patron

Hi @Rosy14 ,

 

Please try the below code, working in PDI

Script Include:

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

detailsSpec: function() {

        var getID = this.getParameter('sysparm_req_for');
        var getCompID = new GlideRecord('sys_user');
        if (getCompID.get(getID)) {
            var deptID = getCompID.department.name;
            if (deptID.toString().indexOf("CASA") >= 0 || deptID.toString().indexOf("CASA") >= 0 || deptID.toString().indexOf("casa") >= 0 || deptID.toString().indexOf("LI & FUNG") >= 0)
                return 2.5;
            else
                return 0;
        }
    },

    type: 'loggedUserData'
});

 

OnLoad Client script:

function onLoad() {

    var getRequestedForID = g_form.getValue('requested_for');

    var ga = new GlideAjax('loggedUserData');
    ga.addParam('sysparm_name', 'detailsSpec');
    ga.addParam('sysparm_req_for', getRequestedForID);
    ga.getXMLAnswer(responseFun);

    function responseFun(response) {
        var answer = response;
        if (answer == 2.5) {
            g_form.setValue('u_commission_rate', answer);
        } else {
            g_form.setValue('u_commission_rate', answer);
        }
    }
}

 

Output:

SN_Learn_0-1720288792732.png

 

Mark this as Helpful / Accept the Solution if this helps

----------------------------------------------------------------
Mark this as Helpful / Accept the Solution if this helps.