We've updated the ServiceNow Community Code of Conduct, adding guidelines around AI usage, professionalism, and content violations. Read more

Santhana Rajhan
Mega Sage

This article is to trigger approvals for selected CIs from variable and create tasks only for the approved CIs

Step 1:

Workflow activity: Approval User, in case of group use Approval group and set the getValue appropriately

answer = myScript();

function myScript() {
    var apps = current.variables.variable_name.toString();
    var list = apps.split(',');
    var appList = [];
    for (var i = 0; i < list.length; i++) {
        var ci = new GlideRecord('cmdb_ci');
        if (ci.get(list[i])) {
            appList.push(ci.getValue('approver_field'));
            }
        }
        return appList;
    }

Step 2:

Create tasks only to the approved CIs

Workflow activity: Run script

var options = current.variables.variable_name.toString().split(',');
for (i=0; i < options.length; i++) {
	var ci = new GlideRecord('cmdb_ci');
	ci.get(options[i]);

	var gr = new GlideRecord("sysapproval_approver");
	gr.addQuery("sysapproval", current.sys_id);
	gr.addQuery("approver", ci.field_name_of_approving_user);
	gr.addQuery("state", "approved");
	gr.query();
	if (gr.next()) {
		var sct = new GlideRecord('sc_task');
		sct.initialize();
		sct.short_description = 'This is the short description  ' + ci.name;
		sct.assignment_group = ci.support_group;
		sct.request_item = current.sys_id;
		sct.insert();
	}
}
Version history
Last update:
‎05-11-2022 07:05 AM
Updated by: