Get a first look at what's coming. The Developer Passport Australia Release Preview kicks off March 12. Dive in! 

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  ||  10x 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  ||  10x 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  ||  10x 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  ||  10x ServiceNow MVP  ||  ServiceNow Community Leader