catalog item, Reference qualifier

Sharath807
Tera Contributor

Hi,

My requirement, I have two variables in catalog item both reference field, requestedby reference to user table and asset field reference to alm_asset table. I have set default value for requested by field to auto populate logged in user name and if i click lookup icon of asset field should list the asset belongs to user company.  Below is my script and reference qualifier its not working

 

Script include:
var getCompayDetails = Class.create();

getCompayDetails.prototype = Object.extendsObject(AbstractAjaxProcessor, {

    getDisposalCompany: function(requestedBy) {

        var assetSysIds = [];

        if (requestedBy) {

            var userGr = new GlideRecord('sys_user');

            if (userGr.get(requestedBy)) {

                var userCompany = userGr.getUniqueValue('company');

                if (userCompany) {

                    var assetGr = new GlideRecord('alm_asset');

                    assetGr.addQuery('company', userCompany);

                    assetGr.query();

                    while (assetGr.next()) {

                        assetSysIds.push(assetGr.sys_id.toString());

                    }

                }

            }

        }

        return assetSysIds;

    },

    type: 'getCompayDetails'

});

Reference qualifier: javascript: getCompayDetails.getDisposal Company(current.variables.requested_by);

1 ACCEPTED SOLUTION

Sandeep Rajput
Tera Patron
Tera Patron

@Sharath807 Could you please update your script include as follows and see if it works.

 

var getCompayDetails = Class.create();

getCompayDetails.prototype = Object.extendsObject(AbstractAjaxProcessor, {

    getDisposalCompany: function(requestedBy) {

        var assetSysIds = [];

        if (requestedBy) {

            var userGr = new GlideRecord('sys_user');

            if (userGr.get(requestedBy)) {

                var userCompany = userGr.getUniqueValue('company');

                if (userCompany) {

                    var assetGr = new GlideRecord('alm_asset');

                    assetGr.addQuery('company', userCompany);

                    assetGr.query();

                    while (assetGr.next()) {

                        assetSysIds.push(assetGr.sys_id.toString());

                    }

                }

            }

        }

        return 'sys_idIN'+assetSysIds.toString();

    },

    type: 'getCompayDetails'

});

 

Also, update the reference qualifier as follows.

 

javascript: new getCompayDetails().getDisposalCompany(current.variables.requested_by);

Hope this helps.

View solution in original post

3 REPLIES 3

Sandeep Rajput
Tera Patron
Tera Patron

@Sharath807 Could you please update your script include as follows and see if it works.

 

var getCompayDetails = Class.create();

getCompayDetails.prototype = Object.extendsObject(AbstractAjaxProcessor, {

    getDisposalCompany: function(requestedBy) {

        var assetSysIds = [];

        if (requestedBy) {

            var userGr = new GlideRecord('sys_user');

            if (userGr.get(requestedBy)) {

                var userCompany = userGr.getUniqueValue('company');

                if (userCompany) {

                    var assetGr = new GlideRecord('alm_asset');

                    assetGr.addQuery('company', userCompany);

                    assetGr.query();

                    while (assetGr.next()) {

                        assetSysIds.push(assetGr.sys_id.toString());

                    }

                }

            }

        }

        return 'sys_idIN'+assetSysIds.toString();

    },

    type: 'getCompayDetails'

});

 

Also, update the reference qualifier as follows.

 

javascript: new getCompayDetails().getDisposalCompany(current.variables.requested_by);

Hope this helps.

@Sandeep Rajput  Thank you Its working 

actually there is one more table sys_user_grmember here one list collector field (related company) in this field can add two companies to one user, and here there is one group field reference to group table.

so the use who as two companies will be member of (Agent cross ic access) group. so if selecting a user related to companies then asset belongs to two companies should also be listedScreenshot (14).png

@Sharath807 Since the the solution suggested by me is working, please mark it as helpful and accepted solution. For the second topic, please raise a separate question and tag me in it so that I can provide my response on it.