Just a heads up: On March 24, 2025, starting at 4:30pm CDT / 19:30 UTC, the site will be undergoing scheduled maintenance for a few hours. During this time, the site might be unavailable for a short while. Thanks for your patience.
×HI All,
Could you please let me know how to store the issue change history like transition time, tansition from, tansition to and the comment to a free text field?
I guess its possible by script runner in post function. Could you please share some sample script to get this info.
Thanks,
Sanu P Soman
Hi Sanu,
Below I have attached a sample script wrote for JIRA 6.4 which will get the change history information for the previous transition. This script should be placed inside a Scripted Field.
Please note if you are using this on a different version of JIRA then you may need to update this slightly.
import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.event.type.EventDispatchOption import com.atlassian.jira.ComponentManager import com.atlassian.jira.issue.Issue import com.atlassian.core.util.DateUtils // Get access to the required issue managers def componentManager = ComponentManager.getInstance() def issueManager = componentManager.getIssueManager() def changeHistoryManager = ComponentManager.getInstance().getChangeHistoryManager() // Get the current User def User = ComponentAccessor.getJiraAuthenticationContext().getUser() // Get the current Issue SubjectIssue = issue // Get Change History information def currentStatus = issue.getStatusObject().getName(); def previousStatus = "In Progress" def updated = issue.getUpdated().format("HH:mm (dd MMM yyyy)") String previousTransitison = changeHistoryManager.getChangeItemsForField(issue, "status").getAt(changeHistoryManager.getChangeItemsForField(issue, "status").size() - 1).toString() // Extract the from and to statuses below String fromStatus = previousTransitison.substring(previousTransitison.indexOf("fromString="), previousTransitison.indexOf(",to=")); String fromStatusVal = fromStatus.substring(11); String toStatus = previousTransitison.substring(previousTransitison.indexOf("toString="), previousTransitison.indexOf(",created")); String toStatusVal = toStatus.substring(9); def previousTransitisonVal = fromStatusVal + " --> " + toStatusVal // Construct the format to be output def TransitionInfo = "Current Logged In User = " + User.getDisplayName() + "<br/>" + "Last Updated Time = " + updated + "<br/>" + "Curent Status = " + currentStatus + "<br/>" + "Previous Transition Info = " + previousTransitisonVal return TransitionInfo
Also the Issue History Plugin may be of use to you.
I hope this helps
Kristian
Basically I want to store transition information like current user, from status, to status and time to a unlimited free text field.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
IssueService? can you please elaborate little bit?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
If you want to store transition information use IssueService to make the issue undergo a transition.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
i'm using below script for this but it;s not working. import com.atlassian.jira.bc.JiraServiceContextImpl import com.atlassian.jira.bc.issue.search.SearchService import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.Issue import com.atlassian.jira.issue.changehistory.ChangeHistoryManager import com.atlassian.jira.security.JiraAuthenticationContext import com.atlassian.jira.web.bean.PagerFilter import com.atlassian.jira.issue.history.ChangeItemBean ChangeHistoryManager changeHistoryManager = ComponentAccessor.getChangeHistoryManager() SearchService searchService = ComponentAccessor.getComponent(SearchService.class); JiraAuthenticationContext jiraAuthenticationContext = ComponentAccessor.getJiraAuthenticationContext() user = jiraAuthenticationContext.getLoggedInUser() ctx = new JiraServiceContextImpl(user) List<Issue> issues = null List<ChangeItemBean> changeItems changeItems = changeHistoryManager.getAllChangeItems(issue) log.warn (changeItems) logs = changeItems.findAll{it.getField()=='status'}{result += "${it.created}; ${it.getFrom()}; ${it.getTo()}"} log.warn (logs) IssueManager issueManager = ComponentAccessor.getIssueManager(); CustomFieldManager cfm=ComponentAccessor.getCustomFieldManager(); def MeD =cfm.getCustomFieldObjectByName("StatusLog"); issue.setCustomFieldValue(MeD, String.valueOf(logs)); Any suggestions?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Any suggestions?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Atlassian Government Cloud has achieved FedRAMP Authorization at the Moderate level! Join our webinar to learn how you can accelerate mission success and move work forward faster in cloud, all while ensuring your critical data is secure.
Register Now
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.