Built in processor for display values
Trying to make ServiceNow behave
·
Nov 11, 2020
·
article
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', ',');
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: "
value: "",
displayValue: ""
}
https://www.power-soft.ro/wp/2020/11/11/build-in-processor-for-display-values/