Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Check glidelist values and append new value

Vikram3
Tera Guru

Hello All,

 

I wanted to add the assignment group from change task to change request glidelist field on insert and update. First I need to check values are present or not and then append the new value to the glidelist field. Thanks in advance.

1 ACCEPTED SOLUTION

SwathiPedireddy
Kilo Sage

Hi @Vikram3 

Please try following script

var assignment_group = "679434f053231300e321ddeeff7b12d8"; //mention chg task assignment group
var chg = new GlideRecord('change_request');
chg.addQuery('sys_id', "c83c5e5347c12200e0ef563dbb9a7190"); //mention change sys_id
chg.query();
if (chg.next()) {
    var groups = chg.group_list.toString();
    var groupList = [];
    if (groups != "") {
        groupList = groups.split(',');
    }
    if (groupList.indexOf(assignment_group) == -1) {
        groupList.push(assignment_group);
    }
    chg.group_list = groupList.toString();
    chg.update();
}
 
Thanks,
Swathi

View solution in original post

2 REPLIES 2

SwathiPedireddy
Kilo Sage

Hi @Vikram3 

Please try following script

var assignment_group = "679434f053231300e321ddeeff7b12d8"; //mention chg task assignment group
var chg = new GlideRecord('change_request');
chg.addQuery('sys_id', "c83c5e5347c12200e0ef563dbb9a7190"); //mention change sys_id
chg.query();
if (chg.next()) {
    var groups = chg.group_list.toString();
    var groupList = [];
    if (groups != "") {
        groupList = groups.split(',');
    }
    if (groupList.indexOf(assignment_group) == -1) {
        groupList.push(assignment_group);
    }
    chg.group_list = groupList.toString();
    chg.update();
}
 
Thanks,
Swathi

Mark Manders
Mega Patron

Business rule on the change task table:

(function executeRule(current, previous /*null when async*/) {
    // Get the Change Request record associated with this Change Task
    var changeRequest = new GlideRecord('change_request');
    if (changeRequest.get(current.change_request)) {
        
        // Get the assignment group from the Change Task
        var assignmentGroup = current.assignment_group;
        
        if (assignmentGroup) {
            // Check if the assignment group is already in the Change Request glidelist field
            var groupsList = changeRequest.[your_field].toString().split(',');
            
            if (groupsList.indexOf(assignmentGroup.toString()) === -1) {
                // Append the new assignment group to the glidelist field
                if (changeRequest.assignment_group) {
                    changeRequest.assignment_group += ',' + assignmentGroup;
                } else {
                    changeRequest.assignment_group = assignmentGroup;
                }
                changeRequest.update();
            }
        }
    }
})(current, previous);

Please mark any helpful or correct solutions as such. That helps others find their solutions.
Mark