default value of variable in record producer

Rosy14
Tera Guru

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
Tera Sage
Tera Sage

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.