Error message is not populating for itil user and when the grp is inactive

shweta14
Tera Contributor

Error message is not populating for itil user and when the grp is inactive

and it is working for active grp but not for inactive grp.

 

on catalog item having field "name" when itil user adding name and it is existing then it should restrict.

this is working for active group but don't have such functionality added in my script.

 

how to active this?

6 REPLIES 6

Hi @shweta14, the glide record (server script) and query looks good to me and there is no check to filter the Inactive groups. The script checks if the group exists or not.

 

I have updated the script include and client script. Can you give a try once?

 

Script Include:

getGroupDuplicate: function() {
    var grpName = this.getParameter('sysparm_gname');
    var values = {};
    values['answer'] = false;
    values['number'] = '';
    values['reqLink'] = '';
    var grpCheck = new GlideRecord('sys_user_group');
    grpCheck.addQuery("name", grpName);
    grpCheck.query();
    if (grpCheck.next()) {
        //Group available
        var url = 'https://' + gs.getProperty('instance_name') + '.service-now.com/';
        var link = url + 'helpzone?id=sc_cat_item&sys_id=-234--sys_id&sysparm_variables={"Request_Type":"Create","ITSM_Data_Type":"Group"}';
        values['answer'] = true;
        values['link'] = link;
    } else {
        var gr_req_item = new GlideRecord('sc_req_item');
        gr_req_item.addEncodedQuery('cat_item=456___syid__^state=1700^variables.87----sys_id=' + grpName);
        gr_req_item.query();
        if (gr_req_item.next()) {
            var sysID = gr_req_item.sys_id;
            var url1 = 'https://' + gs.getProperty('instance_name') + '.service-now.com/';
            var link1 = url1 + 'sc_req_item.do?sys_id=' + sysID;
            values['answer'] = true;
            values['number'] = gr_req_item.number.toString();
            values['reqLink'] = link1;
        }
    }
    return JSON.stringify(values);
},

 

 

Client script:

var ga = new GlideAjax('userGroupVerification');

ga.addParam('sysparm_name', 'getGroupDuplicate');
ga.addParam('sysparm_gname', newValue);
ga.getXML(notifyUser);
}

function notifyUser(response) {

    var answer = response.responseXML.documentElement.getAttribute("answer");
    var returnedData = JSON.parse(answer);
    var groupName = g_form.getValue('gname');

    if (returnedData.answer == true) {
        if (returnedData.number != '') {
            var msg = getMessage('request.exists');
            g_form.addErrorMessage(msg + groupName + ',  Existing Request <a href=' + returnedData.reqLink + ' target="_blank">' + returnedData.number + '</a>');
            g_form.clearValue('gname');
        } else {
            var msg1 = getMessage('group.exists');
            g_form.addErrorMessage(msg1 + '<a href=' + returnedData.link + ' target="_blank">' + 'Contact Team' + '</ a>');
            g_form.clearValue('gname');
        }

    }

 

Regards,

Sunil

Thank you for your reply 

 

tried this code but not working.

admin user the functionality working fine but for itil it is not