Hello! I'm trying to create comment on servicedesk portal with scriptrunner via workflow postfunction. Problem is that this comment don't become visible on Service Desk portal, and visible only on "browse issue" screen. Can anybody help ?
Here is code:
import com.atlassian.jira.user.ApplicationUser;
import com.atlassian.jira.issue.MutableIssue;
import com.atlassian.jira.issue.IssueManager;
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.util.json.JSONObject
String messageToAdd = "We got your request and will answer you ASAP";
final SD_PUBLIC_COMMENT = "sd.public.comment";
def properties = [(SD_PUBLIC_COMMENT): (new JSONObject(["internal": false] as Map))];
ApplicationUser johnGalt = ComponentAccessor.getUserManager().getUserByName("jhon.galt");
log.warn("Getted user is " + johnGalt.getName());
ComponentAccessor.getCommentManager().create(issue, johnGalt, messageToAdd, true);
This has been extracted from Adaptavist documentation, modified it a little and tested in the Script Console and it works:
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.util.json.JSONObject
final SD_PUBLIC_COMMENT = "sd.public.comment"
def commentManager = ComponentAccessor.getCommentManager()
def issueManager = ComponentAccessor.getIssueManager()
def properties = [(SD_PUBLIC_COMMENT): new JSONObject(["internal": false])]
commentManager.create(issue, user, "mi comentario", null, null, new Date(), properties, true)
Source:
https://scriptrunner.adaptavist.com/latest/jira/recipes/misc/jira-service-desk.html
@Cristian Rosas [Tecnofor] It is works from script console. Also it works from postfunction, when you manually press on transition button.
But when you attach this postfunction to automatically passing workflow step ( for example on "create issue transition" or to some step that passes automaticaly wirh scriptrunner on some conditions) it creates internal comment, that is not visible on servicedesk script.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
@Evgeniy Buturlia This is because possibly the user who creates the comment is not an agent, that is, a user of the service-desk-agents group.
I tried the following script and it worked in a "create issue transition":
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.comments.CommentManager
import com.atlassian.jira.user.ApplicationUser
import com.atlassian.jira.util.json.JSONObject
final SD_PUBLIC_COMMENT = "sd.public.comment"
def issueKey = issue
def userManager = ComponentAccessor.getUserManager()
def CurrentUser = userManager.getUserByName("sysbot") as ApplicationUser // Test user, sd-agent
CommentManager commentManager = ComponentAccessor.getCommentManager()
def comment = "My external comment." // Comment
def properties = [(SD_PUBLIC_COMMENT): new JSONObject(["internal": false] as Map)]
commentManager.create(issueKey, CurrentUser,comment, null, null, new Date(), properties, true)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
This will now work, because when script runs from a non-servicedesk agent user, it can'not add comment with visibility level "public", even if comment user is servcedesk agent.
To make it work you need add this code before "commentManager.create(...)":
ComponentAccessor.getJiraAuthenticationContext().setLoggedInUser(ComponentAccessor.getUserManager().getUserByKey("sysbot"))
Where "sysbot" is user with servicedesk agent permission.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
@Evgeniy Buturlia i try and doesn't work. But i changed last argument of method to "false" and script add public comment.
commentManager.create(issueKey, CurrentUser,comment, false)
I wonder if this is correct
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Comment manager creates comment from CommentUser BUT it run's from current loggined in user. If current user can not post puclic comments, it will not be able to create public comment.
Last argument is responcible for dispatching event. You may read about it here : https://docs.atlassian.com/software/jira/docs/api/7.6.1/com/atlassian/jira/issue/comments/CommentManager.html#create-com.atlassian.jira.issue.Issue-com.atlassian.jira.user.ApplicationUser-java.lang.String-boolean-
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.