How can I access the approvers from a workflow approval step in a run script later on in that same workflow?

jordi3
Kilo Contributor

Hello,

This is probably a stupid question, but I can't seem to find an answer in the documentation or in the community forums.

How can I access the approvers from a workflow approval step in a run script step later on in that same workflow?

Looking at the image below, I have a simple workflow in a London (p4) developer instance with an approval step, some timer thing, and a run script. 

find_real_file.png

If the approval step results in an approve, I want the run script to make an API call containing the name(s) of the approver(s) and the item that was approved.  For this particular post, I am more interested in getting the names of the approvers.  I currently have a script attached to the approval step that sets the approver name to a workflow.scartchpad variable, but it is hard-coded as you can see below.

gs.info('Inside of Test Approval');
workflow.scratchpad.jordi = 'admin'; // TODO: get approver dynamically
gs.info('Workflow Scratchpad Jordi: ' + workflow.scratchpad.jordi);
gs.info('Inside of Run Script');
gs.info('The transient workflow scratchpad jordi variable: ' + workflow.scratchpad.jordi);

gs.info('Making API Call...');
try {
	var r = new sn_ws.RESTMessageV2...
} catch(ex) {
	var message = ex.message;
}

gs.info('Processing Response...');

...

How can I dynamically set this scratchpad variable? Maybe something like workflow.scratchpad.jordi = workflow.getVariable('approvers');?

Please let me know if you have any ideas or resources.

1 ACCEPTED SOLUTION

Deepak Ingale1
Mega Sage

In the approver user activity, use generate the approval via script and there itself initialize the scratchpad variable

 

https://docs.servicenow.com/bundle/london-servicenow-platform/page/administer/workflow-activities/re...

https://community.servicenow.com/community?id=community_question&sys_id=b92e6942db2a1b805129a851ca96...

eg answer = [];



var gr = new GlideRecord("sys_user");

gr.addQuery("user_name", "able.tuter");

gr.query();



while (gr.next()) {  

   answer.push(gr.getValue("sys_id"));

}

workflow.scratchpad.approvers = answer;

 

Note: Please mark reply as correct / closed if it has answered your question.

 

View solution in original post

10 REPLIES 10

jordi3
Kilo Contributor

What do you think I could substitute in where you have task.setNewGuid()?

That's really where I'm stuck.  I imagine it's some workflow variable, but maybe not...