set a value by using runscript in workflow

Rakhesh
Kilo Guru

Hi ALL,

 

I want to set a field value(string) in approval table by using runscript in Workflow. I wrote one runscript but it did not works. Guys, please have a look once.

 

var gr = new GlideRecord('sysapproval_approver');
gr.addQuery('sysapproval', current.sys_id);
gr.query();
if(gr.next()){
gr.u_approval_type='First leval Approval';// u_approval_type is a field name
}

 

Regards,

Rakhesh

1 ACCEPTED SOLUTION

Erm, from what I see right now - you are trying to execute the script before actually creating the approval. Could you perhaps try to swap the places of the Run Script activity and the Approval activity and see what your logs log then? It just seems like you're trying to edit the record before actually creating it 🙂

View solution in original post

17 REPLIES 17

Bozhidar Dimitr
Giga Expert

Hey,

The script looks fine, however you are forgetting to actually update after making the changes, add gr.update() after setting the approval level as so:

if(gr.next()){
    gr.u_approval_type='First leval Approval';// u_approval_type is a field name

    gr.update();
}

thanks for the response.

 

var gr = new GlideRecord('sysapproval_approver');
gr.addQuery('sysapproval', current.sys_id);
gr.query();
if(gr.next()){
getapprovar.u_approval_type='First level Approval';
gr.update();
gs.log("TEST FOUND APPROVAL RECORD : " + gr.sysapproval);
}

i tried the above code.still no luck.It was in RUNSCRIPT.even logs also not showing.

Where did the getapprovar.u_approval_type line come from? Also, sysapproval isn't a field on the sysapproval_approver table so query condition isn't going to match anything. Try the script below, check the number of records returned in your query, if there are multiple approvals you might want to loop through them with 'while' instead of 'if' and update them all.

var gr = new GlideRecord('sysapproval_approver');
gr.addQuery('document_id', current.sys_id);
gr.query();
gs.log('found ' + gr.getRowCount() + ' records');
if(gr.next()){    //change this line to while(gr.next()){ to loop through records
gs.log("TEST FOUND APPROVAL RECORD");
gr.u_approval_type='First level Approval';
gr.update();
}

find_real_file.png

 

i follow your suggestion and i wrote in the script like above screenshot. still no luck.

 

i think i will need to write glide to ritm also