- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-20-2017 02:29 AM
Hi,
Basically, my requirement is to create a new Catalog Task if user commented on the RITM and no Open Catalog Tasks available. Here is my code:
function onBefore(current, previous) {
var cmt = current.comments;
var verifyTask = 0;
var task = new GlideRecord("sc_task");
task.addQuery("parent", "=", current.sys_id);
task.addQuery("state", "<", 3);
task.query();
while (task.next()) {
task.comments = cmt;
verifyTask = 1;
task.update();
}
if (verifyTask == 0){
task.initialize();
task.insert();
task.request_item = current.sys_id;
task.assignment_group.setDisplayValue('Service Desk');
task.short_description = 'Verify approval';
task.description = 'Check if Approver replied to RITM';
task.comments = cmt;
task.state = 1;
verifyTask = 1;
task.update();
}
}
This code creates a new Catalog Task with State = Open. So this should not create another new Catalog Task anymore but it's creating one. What's wrong with my code?
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-20-2017 03:23 AM
Ok.. You can try below should work...Let me know in case of any issues
function onBefore(current, previous) {
var cmt = current.comments;
var task = new GlideRecord('sc_task');
task.addQuery('request_item', "=", current.sys_id);
task.addQuery('state', "<", 3);
task.query();
if(task.next())
{
while (task.next()) {
task.comments = cmt;
// verifyTask = 1;
task.update();
}
}
else
{
var task1 = new GlideRecord("sc_task");
task1.initialize();
task1.request_item = current.sys_id;
task1.assignment_group.setDisplayValue('Service Desk');
task1.short_description = 'Verify approval';
task1.description = 'Check if Approver replied to RITM';
task1.comments = cmt;
task1.state = 1;
task1.insert();
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-20-2017 02:52 AM
Can you print in log and see if your task.query() is retrieving any records?? Also
//var task = new GlideRecord("sc_task");
task.addQuery("parent", "=", current.sys_id);
task.addQuery("state", "<", 3);//
Also in the above lines are you using single or double quotes?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-20-2017 03:07 AM
Hi Nivedita,
I am using double quotes.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-20-2017 03:23 AM
Ok.. You can try below should work...Let me know in case of any issues
function onBefore(current, previous) {
var cmt = current.comments;
var task = new GlideRecord('sc_task');
task.addQuery('request_item', "=", current.sys_id);
task.addQuery('state', "<", 3);
task.query();
if(task.next())
{
while (task.next()) {
task.comments = cmt;
// verifyTask = 1;
task.update();
}
}
else
{
var task1 = new GlideRecord("sc_task");
task1.initialize();
task1.request_item = current.sys_id;
task1.assignment_group.setDisplayValue('Service Desk');
task1.short_description = 'Verify approval';
task1.description = 'Check if Approver replied to RITM';
task1.comments = cmt;
task1.state = 1;
task1.insert();
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-20-2017 04:56 AM
Hi Nivedita,
Although it doesn't create another catalog task, the comments are not added to the created catalog task. Do you have any idea?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-20-2017 06:08 AM
Hi Nivedita,
I added task1.update(); and it worked fine with your code. Many thanks for your help.