Client script is not able to submit when assigned to user belongs to assignment group
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2 hours ago
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;
}
}
