Reference Qualifier is not picking value in record producer

Aditya Kumar
Kilo Guru

hello Experts!

need help on advanced reference qualifier

scenario :- I've two variables in normal change record producer "requested for" "service offering", 

service offering is dependent upon requested for service offering shows the serivces subscribed by requested for

 

i've written a reference qualifier it is working fine connected with service offering field but its not picking the 

requested for value, when I hard code requested by its worked fine but its not picking it on its own

 

Record Producer

rec.png

 

reference qualifier

ref qual.png

 

Script include

 

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

    getOfferings: function(USerString) {
        //requested for's company
        var grZero = new GlideRecord('sys_user');
        grZero.addQuery('sys_id', current.u_requested_for);
        grZero.query();
        if (grZero.next()) {
            var company = grZero.company;
            var requestedFor = grOne.sys_id;
        }
        //company
        var grOne = new GlideRecord('service_subscribe_company');
        grOne.addQuery('core_company', company);
        grOne.query();
        if (grOne.next()) {
            serviceOferrings = grOne.service_offering + ',';
        }

        //group
        var grTwo = new GlideRecord('sys_user_grmember');
        grTwo.addQuery('user', requestedFor);
        grTwo.query();
        while (grTwo.next()) {
            var grThree = new GlideRecord('service_subscribe_sys_user_grp');
            grThree.addQuery('sys_user_group', grTwo.group);
            grThree.query();
            while (grThree.next()) {
                serviceOferrings = serviceOferrings + ',' + grThree.service_offering;
            }
        }
        return 'sys_idIN' + serviceOferrings;
    },
    type: 'cd_serviceOffering_re_qual'
});

 

1 ACCEPTED SOLUTION

Aman Kumar S
Kilo Patron

Hi @Aditya Kumar ,

As far I understand, you are not passing any parameter within the function for to be able to be fetched in the script include. Could you try passing the parameter in the reference qualifier as:

javascript: new cd_serviceOffering_re_qual.getOfferings(current.variables.requested_for);

 

current doesn't essentially work in script include, for more details refer to below doc:

https://snprotips.com/blog/2019/12/18/can-script-includes-use-the-current-variable

 

Best Regards
Aman Kumar

View solution in original post

8 REPLIES 8

my code now. please help its something no one is able to figure out around me

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

    getOfferings: function(USerString) {
        //requested for's company
        var grZero = new GlideRecord('sys_user');
        grZero.addQuery('sys_id', USerString);
        grZero.query();
        if (grZero.next()) {
            var company = grZero.company;
            var requestedFor = grZero.sys_id;
        }
        //company
        var grOne = new GlideRecord('service_subscribe_company');
        grOne.addQuery('core_company', company);
        grOne.query();
        if (grOne.next()) {
            serviceOferrings = grOne.service_offering + ',';
        }

        //group
        var grTwo = new GlideRecord('sys_user_grmember');
        grTwo.addQuery('user', requestedFor);
        grTwo.query();
        while (grTwo.next()) {
            var grThree = new GlideRecord('service_subscribe_sys_user_grp');
            grThree.addQuery('sys_user_group', grTwo.group);
            grThree.query();
            while (grThree.next()) {
                serviceOferrings = serviceOferrings + ',' + grThree.service_offering;
            }
        }
        return 'sys_idIN' + serviceOferrings;
    },
    type: 'cd_serviceOffering_re_qual'
});

 

it worked aman thanks again for being a savior before a important call really appreciate your knowledge sir

you helped me time and again how can we connect in social media can i follow u in other spaces

Hi Aditya,

I am available at linkedin:

https://www.linkedin.com/in/aman-kumar-45b64a148/

Feel free to reach out!

 

Best Regards
Aman Kumar

Voona Rohila
Kilo Patron
Kilo Patron

Hi Aditya

 

Try this, keep logs and check the value of serviceOferrings.

 

 

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

    getOfferings: function(USerString) {
        //requested for's company
        var serviceOferrings = [];
        var grZero = new GlideRecord('sys_user');
        grZero.addQuery('sys_id', USerString);
        grZero.query();
        var company = '',
            requestedFor = '';
        if (grZero.next()) {
            company = grZero.company;
            requestedFor = grZero.sys_id;
        }
        //company
        if (company != '') {
            var grOne = new GlideRecord('service_subscribe_company');
            grOne.addQuery('core_company', company);
            grOne.query();
            if (grOne.next()) {
                serviceOferrings.push(grOne.service_offering.toString());
            }
        }

        //group
        if (requestedFor != '') {
            var grTwo = new GlideRecord('sys_user_grmember');
            grTwo.addQuery('user', requestedFor);
            grTwo.query();
            while (grTwo.next()) {
                var grThree = new GlideRecord('service_subscribe_sys_user_grp');
                grThree.addQuery('sys_user_group', grTwo.group);
                grThree.query();
                while (grThree.next()) {
                    serviceOferrings.push(grThree.service_offering.toString());
                }
            }
        }
        return 'sys_idIN' + serviceOferrings;
    },
    type: 'cd_serviceOffering_re_qual'
});

 

 

 

 


Mark it helpful if this helps you to understand. Accept solution if this give you the answer you're looking for
Kind Regards,
Rohila V
2022-25 ServiceNow Community MVP