How to modify a workflow to add an approver which is entered on a reference variable

yonathanperez
Kilo Contributor

I have an item on the service catalog that contains a reference variable called "Line Manager". I need to modify the workflow, so an activity can be included to create a task for the "Line manager" to approve the request.

1 ACCEPTED SOLUTION

I see it now. You are running that workflow on the request table and not the Request Item as I thought. That is why the activity is being skiped. Please add the following script on the approval activity and let me know if it works (Might need to work further):



//Begin Script


answer = [];


var item = new GlideRecord('sc_req_item');


item.addQuery('request', current.sys_id);


item.query();


while (item.next()) {


if( (item.variables.line_manager   !=   '') {


    answer.push(item.variables.line_manager.sys_id);


}


}


//End Script


Note: If it did not work with "answer.push(item.variables.line_manager.sys_id);" please try again with "answer.push(item.variables.line_manager);"


View solution in original post

25 REPLIES 25

1. Add below as the first line in your code:


                  gs.log(current.variables.line_manager.sys_id,'YP');


2. Run the code


3. Go to System Logs and filter out the logs where the create date is Today and Source = YP



What value do you see in the log message? Can you share the screenshot of the log.



Regards,


Hardik Vora


This is what I am getting:



find_real_file.png


I see it now. You are running that workflow on the request table and not the Request Item as I thought. That is why the activity is being skiped. Please add the following script on the approval activity and let me know if it works (Might need to work further):



//Begin Script


answer = [];


var item = new GlideRecord('sc_req_item');


item.addQuery('request', current.sys_id);


item.query();


while (item.next()) {


if( (item.variables.line_manager   !=   '') {


    answer.push(item.variables.line_manager.sys_id);


}


}


//End Script


Note: If it did not work with "answer.push(item.variables.line_manager.sys_id);" please try again with "answer.push(item.variables.line_manager);"


You got it. That is the correct script. That worked for me just perfectly. Thanks a lot.


is that reference field (line_manager) pointing to the right table (sys_user) ? Just to discard possible issues.