Close Service Catalog Task via Email

rba-chris
Kilo Expert

Hi Everyone,

I'm trying to automatically close a service catalog task based on and end user clicking on a link in an automatically-sent email. Here's the inbound action script that I'm trying to use:

closeUserAcceptanceTask();  

     

function closeUserAcceptanceTask(){

// Go through all of the RITMs in this REQ and see if they are approved

var gr_task = new GlideRecord('sc_task');

gr_task.addActiveQuery();

gr_task.addQuery('sc_req_item', current.request_item.request);

gr_task.addQuery('short_description', 'STARTSWITH', 'User Acceptance');

gr_task.query();

while(gr_task.next()) {

gr_task.state = "closed_complete";

}

}

I have also checked out the following URL, but I couldn't get it working either:

https://community.servicenow.com/thread/176755?q=Close%20Service%20Catalog%20Task%20via%20Email

Thanks in advance for your help.

1 ACCEPTED SOLUTION

Thanks so much - this was resolved by a co-worker. If anyone's interested in the solution, I can then type it out at another date - it's too long to do unless someone asks. Many thanks for everyone's time and effort - you got me closer to the solution that you may know!


View solution in original post

21 REPLIES 21

Harsh Vardhan
Giga Patron

Hi Chris,



i think you did not mention the gr_task.update() in last line


sethivarun
Kilo Guru

Hi Chirs,



gr_task.addQuery('sc_req_item', current.request_item.request); will always give a null result because you are looking for item but you are providing sys id of the request.



Alos, you are using current in that , for inbound action using current is of no use.





sethivarun
Kilo Guru

Also, even once you correct that your quesry is going to update all the task which would be active and start with user acceptance, I am sure you don't want that


Thank you both for the help. Yes, I am trying to just update the one task that the user is replying to. What query would I need to do that? I certainly do not want to close all tasks that are open.