refernce qualifier to get ci assigned to user

gtk
Mega Sage

on catalog form, we have two fields, 1 - requestor 2 - ci

if a user selects requestor then in ci - it has to show the list of ci's with class computer assigned to user, if there is no ci then it should show all ci of class computer

here is my code and is not working

script include name: getCI

client callable - unchecked

var getCI = Class.create();
getCI.prototype = {
    initialize: function() {},
    getAssigned: function() {
        var requestor = current.variables.requestor1;
        gs.log("RITM1234567 ccu" + requestor);
        var users = '';
        var count = 0;
        var user = [];
        var members = new GlideRecord('cmdb_ci');
        members.addQuery('sys_class_name', 'cmdb_ci_computer');
        members.addQuery('assigned_to', requestor);
        members.query();
        while (members.next()) {

            count = members.getRowCount();
        }

        gs.log("RITM1234567 count = " + count);
        if (count != 0) {
            gs.log("RITM1234567 ifloop requestor " + requestor);
            var assignedci = new GlideRecord('cmdb_ci');
            assignedci.addEncodedQuery('sys_class_name=cmdb_ci_computer^assigned_to=' + requestor);
            assignedci.query();
            while (assignedci.next()) {
                //gp += (',' + grp.u_group);
                users += (',' + assignedci.sys_id);
            }
        } else {
            gs.log("RITM1234567 elseloop");
            var assigned = new GlideRecord('cmdb_ci');
            assigned.addQuery('sys_class_name', 'cmdb_ci_computer');

            assigned.query();
            while (assigned.next()) {
                users += (',' + assigned.sys_id);
            }
        }

        return users;

    },


    type: 'getCI'
};

and reference qualifier is of type ADVANCED

find_real_file.png

 

 

2 REPLIES 2

Anil Lande
Kilo Patron

Hi,

Please try below:

var getCI = Class.create();
getCI.prototype = {
    initialize: function() {},
    getAssigned: function(requestor) {
        
        gs.log("RITM1234567 ccu" + requestor);
        //var users = '';
        //var count = 0;
        //var user = [];
        var members = new GlideRecord('cmdb_ci');
        members.addQuery('sys_class_name', 'cmdb_ci_computer');
        members.addQuery('assigned_to', requestor);
        members.query();
        if (members.hasNext()) {

            return 'sys_class_name=cmdb_ci_computer^assigned_to='+requestor.toString();
        }else{
return 'sys_class_name=cmdb_ci_computer';
}

    },


    type: 'getCI'
};

 

And update reference qualifier like below:

javascript: new getCI().getAssigned(current.variables.requestor1.toString())

 

Thanks,
Anil Lande

Please appreciate the efforts of community contributors by marking appropriate response as correct answer and helpful, this may help other community users to follow correct solution in future.
Thanks
Anil Lande

Hello anil Can you guide me in below requirement. https://community.servicenow.com/community?id=community_question&sys_id=e16e29b51b218950be4955fa234bcba8