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

Hi,

If requestor and support_group are String fields, below code works.

var user = g_form.getReference('assearch',readOnly);
function readOnly(user)
{
var userDisplay = user.requestor; 
var userGroup = user.support_group;

var getMembers = new GlideRecord('sys_user_grmember');
getMembers.addQuery('user',userDisplay);
getMembers.addQuery('group',userGroup);
getMembers.query();
if(!getMembers.next()) 
{
g_form.setReadOnly('field1',true);
g_form.setReadOnly('field2',true);
}
}

Mark the answer as Correct/Helpful based on its impact.

Thanks

 

nomadie
Kilo Expert

actually i tested getValue after posting this message and it work. now I am down with the condition.. 

what I really needed is that if requestor isn't a member of the support_group, variables will be set to readonly, else enable. however, both enabled the fields. anyone can assist?

Hi,

If requestor and support_group are String fields, below code works.

var user = g_form.getReference('assearch',readOnly);
function readOnly(user)
{
var userDisplay = user.requestor; 
var userGroup = user.support_group;

var getMembers = new GlideRecord('sys_user_grmember');
getMembers.addQuery('user',userDisplay);
getMembers.addQuery('group',userGroup);
getMembers.query();
if(!getMembers.next()) 
{
g_form.setReadOnly('field1',true);
g_form.setReadOnly('field2',true);
}
}

Mark the answer as Correct/Helpful based on its impact.

Thanks

the two fields are value from a reference table (sys_user and sys_user_group). If you could help.. im still new to sn scripting.

Hi,

Try with the below code and let me know the result.

var user = g_form.getReference('assearch',readOnly);
function readOnly(user)
{
var userDisplay = user.getReference('requestor'); 
var userGroup = user.getReference('support_group');

var getMembers = new GlideRecord('sys_user_grmember');
getMembers.addQuery('user',userDisplay.sys_id);
getMembers.addQuery('group',userGroup.sys_id);
getMembers.query();
if(!getMembers.next()) 
{
g_form.setReadOnly('field1',true);
g_form.setReadOnly('field2',true);
}
}

Mark the answer as Correct/Helpful based on its impact.

Thanks,

Chappidi Archana