Below code throws no such property: transientVars for the below code:
import com.opensymphony.workflow.WorkflowContext
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.event.issue.AbstractIssueEventListener
import com.atlassian.jira.event.issue.IssueEvent
import org.apache.log4j.Logger
import static org.apache.log4j.Level.DEBUG
import com.atlassian.jira.bc.issue.IssueService.UpdateValidationResult
import com.atlassian.jira.bc.issue.IssueService.IssueResult
import com.atlassian.jira.bc.issue.IssueService
import com.atlassian.jira.bc.issue.IssueService.TransitionValidationResult
import com.atlassian.jira.issue.IssueInputParametersImpl
import com.atlassian.jira.issue.IssueInputParameters
import com.atlassian.jira.util.ErrorCollection
import com.atlassian.jira.issue.index.IssueIndexManager
import java.sql.Timestamp
import com.atlassian.jira.issue.comments.CommentManager
import com.atlassian.crowd.embedded.api.User
import com.atlassian.jira.component.ComponentAccessor
import com.opensymphony.workflow.WorkflowContext
class SummaryStatusDate extends AbstractIssueEventListener {
Logger log = Logger.getLogger(SummaryStatusDate.class)
@Override
void workflowEvent(IssueEvent event) {
log.setLevel(org.apache.log4j.Level.DEBUG)
def field = event.getChangeLog().getRelated('ChildChangeItem').any{ it.field.toString().equalsIgnoreCase("Summary Updated")}
if (field){
def today = new Date()
log.debug "Date: " + today
Issue issue = event.getIssue()
//String currentUser = ((WorkflowContext) transientVars.get("context")).getCaller();
//User user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
//User user = event.getUser()
String currentUser = ((WorkflowContext) transientVars.get("context")).getCaller();
log.debug "i'm here: " + currentUser
//User currentUserObj = UserUtils.getUser(currentUser);
ComponentManager componentManager = ComponentManager.getInstance()
CommentManager commentManager = componentManager.getCommentManager()
commentManager.create(issue, user, "Comment automatically generated...", false)
}
}
}
Hello,
you can easily retrieve caller just using getUser method from event
String currentUser = event.getUser().getName();
Please, take care that CommentManager create methods need an ApplicationUser and not a User.
In this way, you can use the following approach :
...
ApplicationUser user = ComponentAccessor.getJiraAuthenticationContext().getUser();
...
Hope this helps,
Fabio
In future can you use the "code" formatting from the toolbar, otherwise the code is more or less unreadable.
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.