logo

NJP

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: ""
}

View original source

https://www.power-soft.ro/wp/2020/11/11/build-in-processor-for-display-values/