copy comments from one task to another task
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-21-2014 05:38 AM
I have a requirement where I need to copy the comments entered in the first task to next task..
I have created a BR but no luck.. could anybody please help on this.
BR: push comments
when: before insert/update
script:
var gr = new GlideRecord('sc_task');
gr.addQuery('parent',current.sys_id);
gr.addQuery('short_description', "xyz");
gr.query();
while (gr.next()) {
var num = current.number;
gr.comments = current.comments.getJournalEntry(-1);
gr.update();
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-21-2014 06:31 AM
Could you try running this BR as After Insert/Update
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-21-2014 06:49 AM
for maintenance purposes i would probably put the function to copy the comments in the create task item in the workflow.. a year from now when you are trying to figure out where that came from it will be easier to find there than in a BR.
you should be able to use almost the same function but set task.comments = xxxx
just put it in the advanced script section and look up the previous task like you did in the br.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-21-2014 06:53 AM
If I understand the requirement correctly, when a new sc_task is created it should copy the comments from the previous sc_task. If this is the case, here is what the script should look like:
BR: push comments
when: before insert/update
script:
(function() {
var gr = new GlideRecord('sc_task');
gr.addQuery('parent', current.parent.sys_id); // Get an sc_task with the same parent as the current one
gr.addQuery('short_description', 'xyz');
gr.query();
if (gr.next()) {
current.comments = gr. comments.getJournalEntry(-1); // Need to set the current comments not the GlideRecords
}
})();
I wrapped the whole thing in a self-executing anonymous function because this is a good practice to keep the global BR context clear.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-21-2014 07:18 AM
I used to do it that way a lot Travis and started changing.. because if you change the short description of a task you can mess it up...
instead what i do now is put this line at the bottom of any task i need to find...
workflow.scratchpad.rma_task = task.sys_id;
now when you go to find the task you add
task1.addQuery('sys_id',workflow.scratchpad.rma_task );
just seems a lil cleaner to me.
