Filter the reference field data.

Reddy
Kilo Sage

Hello,

 

I need to filter the data in the reference field. In the Purchase request, I'm displaying the reference field called "Quote request." If the user has the ITIL role, I want to display all quote request numbers. If the user doesn't have the ITIL role, show the quote request number opened by the user or if the user is the requestor.

 

 

4 REPLIES 4

SAI VENKATESH
Tera Sage
Tera Sage

Hi @Reddy 

You can do it by creating a script include and call it as a reference qualifier(advance)

Script Include:

 

 

 

var purchaseUtils = Class.create();
purchaseUtils.prototype = {
    initialize: function() {
    },
	getRequest: function() {
        var currentUserID = gs.getUserID();
        var currentUser = new GlideRecord('sys_user');
        if (currentUser.get(currentUserID)) {
            if (currentUser.hasRole('itil')) {
                gs.log("Returning empty because of itil role");
                return ''; // means not giving any filter
            } else {
                gs.log("Returning query values");
                return 'opened_by=' + currentUserID;
            }

    },
    type: 'purchaseUtils'
};

 

 

 

 

Reference qualifer

 

 

 

javascript: new purchaseUtils().getRequest();

 

 

 

 

 

Thanks and Regards

Sai Venkatesh

 

@SAI VENKATESH script is not working.

Hi @Reddy 

I have modified the script can you please try it

 

 

Thanks and regards

Sai Venkatesh

swathisarang98
Giga Sage
Giga Sage

Hi @Reddy ,

 

I have tried for requested item table , please correct the table name according to your requirement,

swathisarang98_0-1716452721946.png

 

 

var getRequestedItem = Class.create();
getRequestedItem.prototype = {
    initialize: function() {},
    getRequestedFor: function() {
        var userId = gs.getUserID();
        var hasItil = gs.getUser().hasRole("itil");
        var arr = [];

   
            var gr = new GlideRecord('sc_req_item'); //change the table name
            if (hasItil == false || hasItil == 'false') {
                gr.addEncodedQuery('opened_by=' + userId);
            }
            gr.query();
            while (gr.next()) {

                arr.push(gr.sys_id.toString());

            }
			return "sys_idIN"+arr.toString();
        

    },

    type: 'getRequestedItem'
};

 

 

 

Reference qualifier:

swathisarang98_1-1716452779701.png

 

 

javascript: new getRequestedItem().getRequestedFor();

 

 

 

Please mark this comment as Correct Answer/Helpful if it helped you.

Regards,

Swathi Sarang