Not able to set values to list collector from script include

Tanwir Singh11
Tera Expert

Hi All,

I am filtering out the values from list collector (list_of_devices) which is referencing alm_asset table and another reference is location. So, i want to show only those assets which are from that location.

I have created a client script and a script include. I am able to return the sys_id from script include to client script but not able to set them in list collector. Below is my code:

Script include:

 getSiteAssets: function() {
		var arr_name = [];
                var OtoO = this.getParameter('sysparm_type');

                var ast = new GlideRecord('alm_asset');
                ast.addQuery('location', OtoO);
                ast.query();
                while (ast.next()) {                    
					arr_name.push(ast.getUniqueValue());
				}                
                return arr_name.toString();
            },

 

Client script:

function onChange(control, oldValue, newValue, isLoading) {
    if (isLoading || newValue == '') {
        return;
    }

    var ga = new GlideAjax('SiteDependentAssets');
    ga.addParam('sysparm_name', 'getSiteAssets');
    ga.addParam('sysparm_type', newValue);
    ga.getXML(parseData);

    function parseData(response) {
        var answer = response.responseXML.documentElement.getAttribute('answer');
		alert(answer);
        g_form.setValue('list_of_devices', answer);
    }
}

 

Please help.

1 ACCEPTED SOLUTION

inform business that this is not feasible.

Either tell them

1) you will filter the list collector based on location and let user select the location to right bucket

OR

2) you will set the right bucket with the available assets for location selected and let user remove if they wish to

If my response helped you please mark it correct to close the question so that it benefits future readers as well.

Regards
Ankur

Regards,
Ankur
✨ Certified Technical Architect  ||  ✨ 9x ServiceNow MVP  ||  ✨ ServiceNow Community Leader

View solution in original post

24 REPLIES 24

Hi @Ankur Bawiskar 

I used your code in dynamically setting it and it working but it populates the right bucket.

What i need is those result in left bucket and remove all the other values, just the values for that particular location in left bucket.

Could you help with that, please?

Hi,

it would set right bucket only

why to update the left bucket?

Better you filter the list collector and let user select the values to be pushed to right bucket

Regards
Ankur

Regards,
Ankur
✨ Certified Technical Architect  ||  ✨ 9x ServiceNow MVP  ||  ✨ ServiceNow Community Leader

yes, you are right but the business requirement kinda forced me to use scripting for this.

Is there any way to do that?

inform business that this is not feasible.

Either tell them

1) you will filter the list collector based on location and let user select the location to right bucket

OR

2) you will set the right bucket with the available assets for location selected and let user remove if they wish to

If my response helped you please mark it correct to close the question so that it benefits future readers as well.

Regards
Ankur

Regards,
Ankur
✨ Certified Technical Architect  ||  ✨ 9x ServiceNow MVP  ||  ✨ ServiceNow Community Leader

okay, thank you very much !!