Update RITM watch list from catalog item variable

rachelconstanti
Mega Sage

Looking for help on how to update the the RITM watch list from values from 2 variables on that Catalog Item.

How best to accomplish this?

Thank you.

Rachel

1 ACCEPTED SOLUTION

@rachelconstanti 

then combine both the scripts in your 1 business rule and delete the other one

updated script for both

(function executeRule(current, previous) {

    var list = [];
	
    if (current.variables.primary_program_poc)
        list.push(current.variables.primary_program_poc.toString());

    if (current.variables.secondary_program_poc)
        list.push(current.variables.secondary_program_poc.toString());

    if (current.variables.requested_for)
        list.push(current.variables.requested_for.toString());

    if (list.length > 0) {
        current.watch_list = list.join(',');
        current.setWorkflow(false);
        current.update();
    }

})(current, previous);

💡 If my response helped, please mark it as correct and close the thread 🔒— this helps future readers find the solution faster! 🙏

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

View solution in original post

16 REPLIES 16

Both the variables are reference type, pointing to the sys user table

What should the script look like?

@rachelconstanti 

then after insert BR will work

Condition: current.cat_item.name == 'Your Item Name Here'

(function executeRule(current, previous) {

    var list = [];
    if (current.variables.primary_program_poc)
        list.push(current.variables.primary_program_poc.toString());
    if (current.variables.secondary_program_poc)
        list.push(current.variables.secondary_program_poc.toString());
    if (list.length > 0) {
        current.watch_list = list.join(',');
        current.setWorkflow(false);
        current.update();
    }

})(current, previous);

💡 If my response helped, please mark it as correct and close the thread 🔒— this helps future readers find the solution faster! 🙏

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

@Ankur Bawiskar 

THANK YOU this worked however it removed the 'requested for' - can we include that?

I do have a business rule in place for the requested for:

(function executeRule(current, previous /*null when async*/) {
var reqFor = current.variables.requested_for;
var wlArray = [];
if (reqFor != '') {
wlArray.push(reqFor.toString());
current.watch_list = wlArray.toString();
}
})(current, previous);

 

I need this business rule to continue to execute along with the business rule for the one catalog item.

@rachelconstanti 

then combine both the scripts in your 1 business rule and delete the other one

updated script for both

(function executeRule(current, previous) {

    var list = [];
	
    if (current.variables.primary_program_poc)
        list.push(current.variables.primary_program_poc.toString());

    if (current.variables.secondary_program_poc)
        list.push(current.variables.secondary_program_poc.toString());

    if (current.variables.requested_for)
        list.push(current.variables.requested_for.toString());

    if (list.length > 0) {
        current.watch_list = list.join(',');
        current.setWorkflow(false);
        current.update();
    }

})(current, previous);

💡 If my response helped, please mark it as correct and close the thread 🔒— this helps future readers find the solution faster! 🙏

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

@rachelconstanti 

💡 If my response helped, please mark it as correct and close the thread 🔒— this helps future readers find the solution faster! 🙏

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader