Issue in displaying Relationships

Community Alums
Not applicable

Hi Team,

 

I have a requirement wherein there is list of Order Tasks with concerned fields "Assignment Group" and "Assigned To".

There is a requirement to show only Assignment Group and Assigned To values from Order Tasks to Work Order .For example below records we have for Order Tasks for group and user :

Group is "Network" and "Assigned To" is "Raj", 

Group is "hardware" and "Assigned To" is "Rakesh", 

Group is "Database" and "Assigned To" is "Danny"

Now in "sys_user_grmember" table Danny is part of all the above 3 groups.

In the related list which we have created in "wm_order" form should only show as below:

Network  Raj

Hardware Rakesh

Database Danny

 

but its showing below records:

Network  Raj

Network Rakesh

Database Danny

Network  Danny

Network Danny

 

The related list should only show :

Network  Raj

Hardware Rakesh

Database Danny

 

Below is the code which I have written to define the Relationships:

"Applied to " : wm_order

"Queries From": sys_user_grmember

 

 

 

(function refineQuery(current, parent) {
        var groups = [];
        var assignee = [];
        //var proj_start= parent.initiated_from.number;
        if (parent.initiated_from.top_program.u_order == '') {

            current.addEncodedQuery('groupIN' + groups);
            current.addEncodedQuery('userIN' + assignee);

        } else {

            var proj = new GlideRecord('customer_project_task');
            proj.addQuery('sys_id', parent.initiated_from.toString());
            proj.addEncodedQuery('top_program.u_orderISNOTEMPTY');
            proj.query();

            if (proj.getRowCount() >= 1) {

                while (proj.next()) {

                    var omt = new GlideRecord('sn_ind_tmt_orm_order_task');
                    omt.addQuery('u_customer_order_number', proj.top_program.u_order.sys_id.toString());
                    omt.addEncodedQuery('numberSTARTSWITHOMT');
                    omt.query();

                    while (omt.next()) {

                        var group_mem = new GlideRecord('sys_user_grmember');
                        group_mem.addQuery('group', omt.assignment_group.sys_id.toString());
                        group_mem.addQuery('user', omt.assigned_to.sys_id.toString());
                        group_mem.query();

                        if (group_mem.next()) {
                           

                            if (omt.assigned_to.indexOf(group_mem.user)!=-1 && omt.assignment_group.indexOf(group_mem.group)!=-1) {
                                    groups.push(group_mem.group.sys_id.toString());
                                    assignee.push(group_mem.user.sys_id.toString());
                               }
                            }


                        }
                        current.addQuery('group', groups);
                        current.addQuery('user', assignee);
                    }
                }

            }

        })(current, parent);
0 REPLIES 0