UI List Action to get selected records

mballinger
Mega Guru

Hello,

I am struggling to find how to capture selected records in a List UI Action on the incident table. What I need to be able to do is get all the selected incident numbers (this needs to work for select all as well).

Any ideas? 

Thanks!

1 ACCEPTED SOLUTION

I updated the script, there were some syntax issues

 

function showConfirmDialog() {
	var entries = g_list.getChecked();

	if (!entries || entries.length == 0)
		return;

	var ga = new GlideAjax('GetIncidentNumber');
	ga.addParam('sysparm_name', 'getIncident');
	ga.addParam('sysparm_entry_ids', entries);
	ga.getXML(getRequiredInc);

	function getRequiredInc(response) {
		var answer = response.responseXML.documentElement.getAttribute("answer");
		alert("Some alert to test if it works: " + answer);

	}
}

 

var GetIncidentNumber = Class.create();
GetIncidentNumber.prototype = Object.extendsObject(AbstractAjaxProcessor, {
	getIncident: function() {
		var array = [];
		var entries = this.getParameter('sysparm_entry_ids');
		var sysIds = entries.split(",");
		var gr = new GlideRecord('incident');
		gr.addQuery('sys_id','IN',entries);
		gr.query();
		while (gr.next()) {
			array.push(gr.getValue("number"));

		}

		//var createList = array.join(',');

		return array.toString();
	},

	type: 'GetIncidentNumber'
});

View solution in original post

14 REPLIES 14

Yes I understand as this was present in the example, but in the script include, how do I take the sys_ids and get the incident number instead from the script include?

we dont have the same understanding of your question. Can you share in more detail or share the script in which you are facing issue. Try with screenshot?

g_list.Checked() returns sys_ids of checked items. I want to return the number of the checked items instead.

UI Action:

function showConfirmDialog() {
    var entries = g_list.getChecked();
    if (!entries || entries.length == 0)
        return;

    var callback = function() {
        var ga = new GlideAjax('GetIncidentNumber');
        ga.addParam('sysparm_name', 'getIncident');
        ga.addParam('sysparm_entry_ids', entries);
		ga.getXML(getRequiredInc);
		
		function getRequiredInc(response) {
			var answer = response.responseXML.documentElement.getAttribute("answer");
			alert("Some alert to test if it works: " + answer);
		}
    };
}

Script Include:

var GetIncidentNumber = Class.create();
GetIncidentNumber.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    getIncident: function() {
        var array = [];
        var entries = this.getParameter('sysparm_entry_ids');
        var sysIds = entries.split(",");
        var gr = new GlideRecord('incident');
        var i = 0;
        while (gr.get(sysIds[i])) {
            array.push(gr.getValue(number));
            i++;
        }

        var createList = array.join(',');

        return createList;
    },

    type: 'GetIncidentNumber'
});

I updated the script, there were some syntax issues

 

function showConfirmDialog() {
	var entries = g_list.getChecked();

	if (!entries || entries.length == 0)
		return;

	var ga = new GlideAjax('GetIncidentNumber');
	ga.addParam('sysparm_name', 'getIncident');
	ga.addParam('sysparm_entry_ids', entries);
	ga.getXML(getRequiredInc);

	function getRequiredInc(response) {
		var answer = response.responseXML.documentElement.getAttribute("answer");
		alert("Some alert to test if it works: " + answer);

	}
}

 

var GetIncidentNumber = Class.create();
GetIncidentNumber.prototype = Object.extendsObject(AbstractAjaxProcessor, {
	getIncident: function() {
		var array = [];
		var entries = this.getParameter('sysparm_entry_ids');
		var sysIds = entries.split(",");
		var gr = new GlideRecord('incident');
		gr.addQuery('sys_id','IN',entries);
		gr.query();
		while (gr.next()) {
			array.push(gr.getValue("number"));

		}

		//var createList = array.join(',');

		return array.toString();
	},

	type: 'GetIncidentNumber'
});

This worked. Thanks! The callback function prevented me from moving forward since I was not able to return alert. Can you please explain how you found that syntax issue in the UI Action?