Ehab Pilloor
Mega Sage

Hi @SumajRajNk,

 

I see that if group name is not empty it executes a glide record for garbage value too. You need to remove first if condition and do a GlideRecord check, if GlideRecord is not returned, then do other checks, also keep else condition as fallback so that assignment group returns Service Management group.

Bonus: add queryNoDomain() for cross domain assignment.

Try this script:

var groupName = fd_data._1__get_catalog_variables.v03_work_group.toString();
var ciName = fd_data._1__get_catalog_variables.v05_affected_cis.toString();
var assign_group = "";

    var groupGR = new GlideRecord('sys_user_group');
    groupGR.addQuery('name', groupName);
    groupGR.queryNoDomain();
    if (groupGR.next()) {
        assign_group = groupGR.sys_id.toString();
        return assign_group;
    }
 else if (ciName != "") {
    var ciGR = new GlideRecord('cmdb_ci');
    ciGR.addQuery('name', ciName);
    ciGR.addQuery('managed_by', '!=', '');
    ciGR.queryNoDomain();
    if (ciGR.next()) {
        assign_group = ciGR.managed_by.toString();
        return assign_group;
    }
} else {
    var requestedFor = fd_data.trigger.request_item.request.requested_for;
    if (requestedFor && requestedFor.company) {
        var atdGR = new GlideRecord('u_account_team_directory');
        atdGR.addQuery('u_company', requestedFor.company.toString());
        atdGR.queryNoDomain();
        if (atdGR.next() && atdGR.u_request_management_group) {
            assign_group = atdGR.u_request_management_group.toString();
        }
        return assign_group;
    }
}

 

 

View solution in original post