Find your people. Pick a challenge. Ship something real. The CreatorCon Hackathon is coming to the Community Pavilion for one epic night. Every skill level, every role welcome. Join us on May 5th and learn more here.

Need to copy comment from RITM to sc_task

s_nandhini
Tera Contributor

I need to copy my additional comment from RITM to sc_task . But my sc_task contain group type "Restriction" Only user part of sc_task can able to see the sc_task. So, comment is copying properly.

 

I tried creating an event + BR + script action but it not working

 

BR: (After - update)

 

(function executeRule(current, previous /*null when async*/ ) {
    if (current.comments.changes()) {
     var rawEntry = current.comments.getJournalEntry(1);
    var latestComment = rawEntry.split("\n")[1];
        var userId = gs.getUserID();
       
    gs.log("BR firing event ritm.comment.added");
    gs.log("Latest comment: " + latestComment);
    gs.log("User ID: " + userId);
        gs.eventQueue("ritm.comment.add", current, latestComment, userId);
    }
})(current, previous);
 
Script action:
(function executeAction(event) {

    gs.log("latest: " + event.parm1);
    gs.log("comm: " + event.parm2);

    if (!event.parm1) {
        gs.log("No comment text passed to Script Action");
        return;
    }
   
    var tasks = new GlideRecord("sc_task");
    tasks.addQuery("request_item", current.sys_id);
    tasks.query();
    if (tasks.next()) {
        gs.log("commenttask:" + event.parm1);
        tasks.comments.setJournalEntry(event.parm1);
        tasks.update();
       
    }else{
        gs.log("commentnotfound:"+ event.parm1 + current.sys_id + gs.getUserName());
    }
})(event) ;
 
But commentnotfound log is running instead of if.

 

1 ACCEPTED SOLUTION

@s_nandhini 

in after update BR on RITM, no script action required

BR Condition: Comments Changes

(function executeRule(current, previous /*null when async*/ ) {

    var sctask = new GlideRecord('sc_task');
    sctask.addQuery('request_item', current.sys_id);
    sctask.setWorkflow(false); // disables query BR and allows script to query that record
    sctask.query();
    while (sctask.next()) {
        var comments = current.comments.getJournalEntry(1).match(/\n.+/gm).join("\n");
        comments = comments.replace('\n', '');
        sctask.comments = comments;
        sctask.update();
    }

})(current, previous);

💡 If my response helped, please mark it as correct and close the thread 🔒— this helps future readers find the solution faster! 🙏

Regards,
Ankur
Certified Technical Architect  ||  10x ServiceNow MVP  ||  ServiceNow Community Leader

View solution in original post

16 REPLIES 16

Ankur Bawiskar
Tera Patron

@s_nandhini 

you want to copy comment from RITM To SC Task

how does this depend on the Group type for the Group selected on SC Task?

what's not working?

💡 If my response helped, please mark it as correct and close the thread 🔒— this helps future readers find the solution faster! 🙏

Regards,
Ankur
Certified Technical Architect  ||  10x ServiceNow MVP  ||  ServiceNow Community Leader

s_nandhini
Tera Contributor

In sc_task assigment group - group type is "Restricted" only few people are part of the group

 

E.g If Abel tuter is part of the restricted group if he tries to add comment on RITM it copying to task but if i am not part of the sc_task group but i raised the request as opened by my comment is not copying.

 

As per catalog item - Item will visible for few people who i am part of it but i am not part of sc_task group.I can see only REQ and RITM .Sc_task will be visible for "Restricted

" group people only.

@s_nandhini 

how is the restriction applied on sc_task?

💡 If my response helped, please mark it as correct and close the thread 🔒— this helps future readers find the solution faster! 🙏

Regards,
Ankur
Certified Technical Architect  ||  10x ServiceNow MVP  ||  ServiceNow Community Leader

Tanushree Maiti
Kilo Patron

Hi @s_nandhini 

 

To Copy Ritm comment to sc_task, I guess following code is enough.

BR: (After - update)

 

(function executeRule(current, previous /*null when async*/) {
    
      var ritmComment = current.comments.getJournalEntry(1);
       var grSCTask = new GlideRecord('sc_task');
    grSCTask.addQuery('request_item', current.sys_id);
    grSCTask.query();
    
    while (grSCTask.next()) {
         grSCTask.comments = ritmComment;
        sc_task.update();
    }
    
})(current, previous);

 

Note: Regarding group type "Restriction" , If the sc_task is restricted via ACLs (e.g., Only Assignment Group can read/write), the business rule might fail to update if the user making the RITM comment is not in that restriction group. To bypass this, you can wrap the task update in setWorkflow(false).

Please mark this response as Helpful & Accept it as solution if it assisted you with your question.
Regards
Tanushree Maiti
ServiceNow Technical Architect
Linkedin: