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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.