Query SCTASK from Request
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-24-2017 09:35 AM
I'm deploying a UI action that allows users to convert an INC to a Request item in the service catalog. Upon creation, I want to redirect the fulfiller to the newly created SCTASK (Note: Not the REQ or RITM).
function serverResolve(){
var cartId = GlideGuid.generate(null);
var cart = new Cart(cartId);
var item = cart.addItem('17c590e9047531006802a6e8a2359514'); // sys_ID for the request sc_catalog item
cart.setVariable(item, 'u_requested_for', current.u_requested_for);
cart.setVariable(item, 'description', current.comments.getJournalEntry(-1));
var rc = cart.placeOrder();
if(!rc){
gs.addInfoMessage("Error: Request was not created.");
}
//Resolve the current incident upon request creation
current.state = 6; //Resolved
current.close_code = "Closed/Resolved by Caller";
current.close_notes = "Converted to Request: " + rc.number;
current.update();
current.resolved_by = gs.getUserID();
// Retrieve SCTASK Number (Request -> SC Task ->Task number)
var sctask = new GlideRecord('sc_task');
sctask.addQuery('request_item', '=',rc.number);
sctask.query();
var task = new GlideRecord('task');
task.addQuery('number','=',sctask.number);
task.query(callback);
function callback(gr){
while (gr.next()){
gs.addInfoMessage("Request " + task.number + " created.");
}
}
gs.addInfoMessage("Incident " + incident.number + " has been resolved.");
action.setRedirectURL(task);
action.setReturnURL(current);
}
I know the issue is in 23-27, I'm probably querying things in the wrong order.
Thoughts?
- Labels:
-
Scripting and Coding
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-24-2017 09:41 AM
sctask.query() is missing at line 25.
Thanks.
PS: Hit like, Helpful, Correct and Endorse, if it answers your question.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-24-2017 09:43 AM
Great catch, thank you Nisha. I've corrected this, but it's still coming back with no record found.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-24-2017 09:47 AM
Please try below code.
- var cartId = GlideGuid.generate(null);
- var cart = new Cart(cartId);
- var item = cart.addItem('17c590e9047531006802a6e8a2359514'); // sys_ID for the request sc_catalog item
- cart.setVariable(item, 'u_requested_for', current.u_requested_for);
- cart.setVariable(item, 'description', current.comments.getJournalEntry(-1));
- var rc = cart.placeOrder();
- if(!rc){
- gs.addInfoMessage("Error: Request was not created.");
- }
- //Resolve the current incident upon request creation
- current.state = 6; //Resolved
- current.close_code = "Closed/Resolved by Caller";
- current.close_notes = "Converted to Request: " + rc.number;
- current.update();
- current.resolved_by = gs.getUserID();
- // Retrieve SCTASK Number (Request -> SC Task ->Task number)
- var sctask = new GlideRecord('sc_task');
- sctask.addQuery('request_item',rc.number);
- sctask.query();
- if (sc_task.next())
- {
- gs.addInfoMessage("Request " + rc.number+ " created.");
- }
- gs.addInfoMessage("Incident " + incident.number + " has been resolved.");
- action.setRedirectURL(sc_task);
- }
Please mark this response as correct or helpful if it assisted you with your question.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-24-2017 09:48 AM
Also note that, it takes some time to create request, requested item and then task. You code might be running ahead of record creation.
Please mark this response as correct or helpful if it assisted you with your question.