Looking into a problem I have found that SN uses a special processor to get display values for items selected in a List. Maybe I’ll need it sometimes in the future, so I’ll just repeat it here:
var aj = new GlideAjax('ElementGlideListAjax');
aj.addParam('sysparm_type', 'getDisplayValues');
aj.addParam('sysparm_value', '<source table name>,<list of sys_ids>');
aj.getXML(_glideListGetDisplayValuesDone);
function _glideListGetDisplayValuesDone (response, args) {
if (!response || !response.responseXML) {
return;
}
var references = response.responseXML.getElementsByTagName('reference');
for (var i = 0; i < references.length; i++) {
var displayValue =
getNamedItemValue(references[i], 'display');
var referenceValue =
getNamedItemValue(references[i], 'sys_id');
console.log(referenceValue + ': ' + displayValue);
}
}
function getNamedItemValue (referenceNode, itemName) {
return referenceNode
.attributes
.getNamedItem(itemName).nodeValue;
}Somewhat related – maybe it will be of help later, whenever a display value is retrieved an event is issued:
'element_mapping:glide_list_add'
and the event parameter is an object like below:
{
id: "<table>.<element>",
value: "<sys_id>",
displayValue: "<display value>"
}