Built something you're proud of? Tell the story. A quick G2 review of App Engine or Build Agent helps other developers see what's possible on ServiceNow. Share your experience.

Client script is not able to submit when assigned to user belongs to assignment group

Shree Nag
Tera Expert

Hello,

We did not have a validation on project form to have "Assigned To"  users be part of  the assignment group .

Currently there are random users on assigned to who don't belong to assignments groups in few project assignments.

I put in place a reference qualifier for project assignment for user to be part of chosen assignment Group only.

This works well when a new project is submitted.

 

For projects already in place/submitted, there are assigned to users who don't belong to assignment group.

To validate this, I put in a client script and script include.

The form validates when user is not part of assignment group. But even when a I select user who is part of assignment group, the form does not get submitted.

Stays with Error message

Please help me identify the error in the client script, where the form is not getting submitted even when the right user is chosen.

Thank you and appreciate your help.

//Script include

var AssignmentGroupUtils = Class.create();
AssignmentGroupUtils.prototype = Object.extendsObject(AbstractAjaxProcessor, {

    isUserInGroup: function() {

        var user = this.getParameter('sysparm_user');
        var group = this.getParameter('sysparm_group');

        if (!user || !group) {
            return 'false';
        }

        var gr = new GlideRecord('sys_user_grmember');
        gr.addQuery('user', user);
        gr.addQuery('group', group);
        gr.addQuery('user.active', true); // ✅ ensures user is active
        gr.query();

        return gr.hasNext() ? 'true' : 'false';
    }

});

 

 

//Clients cript
function onSubmit() {

    var assignedTo = g_form.getValue('assigned_to');
    var assignmentGroup = g_form.getValue('assignment_group');

    // Allow submit if either is empty (optional — adjust if needed)
    if (!assignedTo || !assignmentGroup) {
        return true;
    }

    var isValid = false;

    var ga = new GlideAjax('AssignmentGroupUtils');
    ga.addParam('sysparm_name', 'isUserInGroup');
    ga.addParam('sysparm_user', assignedTo);
    ga.addParam('sysparm_group', assignmentGroup);

    // IMPORTANT: synchronous call to block submit
    ga.getXMLWait();

    var answer = ga.getAnswer();

    if (answer == 'true') 
	{
        return true;
    } else 
	{
       g_form.showFieldMsg('assigned_to', 'User must belong to the selected Assignment Group and be active.', 'error');
        return false;
    }
}

 

0 REPLIES 0