getDisplayValue is not working on catalog client script

nomadie
Kilo Expert

I am running a catalog item with this code but I got thrown out by a javascript error on browser. Anyone can help would really appreciate.
End goal is that when requestor is part of the support_group, i can run setReadonly to couple of fields.

var userDisplay = g_form.getDisplayValue(assearch.requestor); 
var userGroup = g_form.getDisplayValue(assearch.support_group);
var getMembers = new GlideRecord('sys_user_grmember');
getMembers.addQuery('user',userDisplay);
getMembers.addQuery('group',userGroup);
getMembers.query();
if(!getMembers.next()) {
//return Yes;
}
(g_env) [SCRIPT:EXEC] Error while running Client Script 
"onChange of HW Asset": 
TypeError: Cannot read property 'requestor' of undefined
1 ACCEPTED SOLUTION

You can do below


//Check to see if assigned to is a member of selected group
var grpName = g_form.getDisplayBox(assearch.support_group).value;;
var usrID = g_form.getDisplayBox(assearch.requestor).value; 
var grp = new GlideRecord('sys_user_grmember');
grp.addQuery('group.name', grpName);
grp.addQuery('user', usrID);
grp.query(groupMemberCallback);
   
function groupMemberCallback(grp){
//If user is a member of selected group
    if(grp.next()){
        //Do something
        //alert('Is a member');
    }else{
        //alert('Is not a member');
        g_form.setReadOnly('field1',true);
        g_form.setReadOnly('field2',true);
    }
}

View solution in original post

12 REPLIES 12

You can do below


//Check to see if assigned to is a member of selected group
var grpName = g_form.getDisplayBox(assearch.support_group).value;;
var usrID = g_form.getDisplayBox(assearch.requestor).value; 
var grp = new GlideRecord('sys_user_grmember');
grp.addQuery('group.name', grpName);
grp.addQuery('user', usrID);
grp.query(groupMemberCallback);
   
function groupMemberCallback(grp){
//If user is a member of selected group
    if(grp.next()){
        //Do something
        //alert('Is a member');
    }else{
        //alert('Is not a member');
        g_form.setReadOnly('field1',true);
        g_form.setReadOnly('field2',true);
    }
}

Dubz
Mega Sage

try this:

 

var userDisplay = g_form.getDisplayBox(assearch.requestor).value; 

actually just re-read your requirement, the fields on the sys_user_grmember table are reference fields so they need a sys_id, so getValue will be fine. You need to list the field name in quotation marks.

 

var userDisplay = g_form.getValue('assearch.requestor'); 
var userGroup = g_form.getValue('assearch.support_group');

var getMembers = new GlideRecord('sys_user_grmember');
getMembers.addQuery('user',userDisplay);
getMembers.addQuery('group',userGroup);
getMembers.query(callBackFunction);

function callBackFunction(getMembers){
if(getMembers.hasNext()){
g_form.setReadOnly('field_name');
}