Approver comments on Task

Brian Lancaster
Tera Sage

I have a request to make it so that the approvers comments they put in the comments section.   How to I go about placing the approver comments into the task?

1 ACCEPTED SOLUTION

This is what our Approval Events (Task) business rule look like.   It was modified by the company that helped us setup ServiceNow.   How ever even if you want to use a group for approve you still have to use the approval user task in the workflow as that one works for both individuals and groups.   That is the only time that approval comments show up.



function checkRequest() {
      var task = current.sysapproval.sys_class_name;
      return (task == 'sc_request');
}


function checkSCTask() {
      var task = current.sysapproval.sys_class_name;
      return (task == 'sc_task');
}


var isRequest = checkRequest();
var isSCTask = checkSCTask();


if (current.state.changes() && current.state=='cancelled') {
      var event = "approval.cancelled";
      if (isRequest)
              event = "request.approval.cancelled";
      else if (isSCTask)
              event = "sc_task.approval.cancelled";
     
      gs.eventQueue(event, current, gs.getUserID(), gs.getUserName());
}


if (current.state.changes() && current.state=='requested') {
      var event = "approval.inserted";
      if (isRequest)
              event = "request.approval.inserted";
      else if (isSCTask)
              event = "sc_task.approval.inserted";
     
      gs.eventQueue(event, current, gs.getUserID(), gs.getUserName());
      updateTask(current, current.approver.getDisplayValue() + " requested to approve task");
}


if (current.state.changes() && current.state=='rejected') {
      var event = "approval.rejected";
      if (isRequest)
              event = "request.approval.rejected";
      else if (isSCTask)
              event = "sc_task.approval.rejected";
     
      gs.eventQueue(event, current, current.state, previous.state);
      updateTask(current, gs.getUserDisplayName()+ " rejected the task.", current.comments.getJournalEntry(1));
      notifyMyFriends(current);
}


if (current.state.changes() && current.state=='approved') {


      updateTask(current, gs.getUserDisplayName() + " approved the task.", current.comments.getJournalEntry(1));
}


function notifyMyFriends(me) {
      var friends = new GlideRecord('sysapproval_approver');
      friends.addQuery('sysapproval', me.sysapproval);
      friends.query();
      while(friends.next()) {
              if (friends.approver.toString() != me.approver.toString()) {
                      gs.eventQueue("approval.rejected.by.other", me, friends.approver);
              }
      }
}


function updateTask(me, journal, comments) {
      // if this is for a group approval, don't log this user action since the Group Approval Activity will handle the logging
    // if (!current.group.nil())
        //     return;
     
      // only log the user approval activity for workflows when specifically turned on
      // otherwise, we spam the approval history log when it is almost never desired to track via the approval history journal field
      var isWorkflow = !current.wf_activity.nil();
      if (isWorkflow && (gs.getProperty("glide.workflow.user_approval_history") != "true"))
              return;
     
      if (comments)
  journal += " Comments: " + comments;
     
      var task = new GlideRecord('task');
      if (task.get(me.sysapproval)) {
              if (isWorkflow)
                      task.setWorkflow(false);
             
              task.approval_history.setJournalEntry(journal);
              task.update();
      }
}



View solution in original post

44 REPLIES 44

Do you also display "Additional Comments" in the formatter?


Also make sure you have not a filter set for it either.



Next go to an approval record, add a comment and approve it.


Now open the referenced record of that approval; task and the comment should show


This is what my personalize activity looks like


2014-02-18 13_50_48-ServiceNow DEVELOPMENT SYSTEM.png
This is what my formatter looks like. Additonal comments is not visible.


2014-02-18 13_53_25-ServiceNow DEVELOPMENT SYSTEM.png


Did you try this also in a demo instance?


Maybe there was some code changed in your own instance?


Seems like there is an issue with the field type.


You need to update its dictionary record to have a type of "Journal" (basically set the type again) and then it shows up within the activity formatter.


if your talking about the apprver comments it is a Journal for the filed type.