How to create a numeric field with a value that increments value for every new issue created in a project.
got the solution with the script runner plugin.
Create a text custom field (single line). In the example I added "Numbers" as field name. Then create a postfuntion with the script below.
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.jql.parser.JqlQueryParser
import com.atlassian.jira.web.bean.PagerFilter
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.search.SearchProvider
// get all the used numbers so far
def query = ComponentAccessor.getComponent(JqlQueryParser).parseQuery("project = JA AND 'Numbers' is not EMPTY ORDER BY 'Numbers' DESC")
def results = ComponentAccessor.getComponent(SearchProvider).search(query,ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser(),new PagerFilter(1))
int maxNumbers = 0
CustomField cField = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("Numbers")
// get the highest used number
for(Issue documentIssue: results.getIssues())
{ maxNumbers = documentIssue.getCustomFieldValue(cField) as Integer }
// set the new number
def newNumbers = ++maxNumbers as String
issue.setCustomFieldValue(cField, newNumbers)
Hope this helps to anyone looking similar type of fields
Hi @Sid
I'm getting error in the last line " issue.setCustomFieldValue(cField, newNumbers) "
saying that - " The variable [issue] is undeclared "
Please help.
Did you follow the same steps?
updated script for jira 8
def results = ComponentAccessor.getComponent(SearchProvider).search(query,ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser(),new PagerFilter(1)) to import com.atlassian.jira.bc.issue.search.SearchService def search = ComponentAccessor.getComponent(SearchService).search(ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser(), query, new PagerFilter(1)) and from for(Issue documentIssue: results.getIssues()) { maxNumbers = documentIssue.getCustomFieldValue(cField) as Integer } to for(Issue documentIssue: search.results) { maxNumbers = documentIssue.getCustomFieldValue(cField) as Integer }
Hello @Sid
I want a script that will auto-increment the number field that is "Issue Ranking" having numbers from 1 to 100. So when I create an issue and manually number that issue say - 49(edit that issue ) then I need that the already existing 49 should become 50 and already existing 50 should become 51.. that is, it should automatically increment itself on the basis of what number I have selected in the recently created ticket.
similarly when I number the issue manually as 30 then already existing should be 31 and already existing 31 should be 32 and so on...
.
Hi im trying to use and i got an error:
the variable issue is undeclared
can someone please help
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.jql.parser.JqlQueryParser
import com.atlassian.jira.web.bean.PagerFilter
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.search.SearchProvider
// get all the used Old_Test_ID so far
def query = ComponentAccessor.getComponent(JqlQueryParser).parseQuery("project = CEQB AND 'Old_Test_ID' is not EMPTY ORDER BY 'Old_Test_ID' DESC")
def results = ComponentAccessor.getComponent(SearchProvider).search(query,ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser(),new PagerFilter(1))
int maxOld_Test_ID = 0
CustomField cField = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("Old_Test_ID")
// get the highest used number
for(Issue documentIssue: results.getIssues())
{ maxOld_Test_ID = documentIssue.getCustomFieldValue(cField) as Integer }
// set the new number
def newOld_Test_ID = ++maxOld_Test_ID as String
issue.setCustomFieldValue(cField, newOld_Test_ID)
Hi Dan,
I also got stuck at this point. The failure seems to be with the last line.
issue.setCustomFieldValue(cField, newOld_Test_ID)
Did you find a solution?
Recommended Learning For You
Level up your skills with Atlassian learning
Learning Path
Jira Administrator
Configure Jira Software, Jira Core, or Jira Service Management, including global settings, permissions, and schemes.
Managing Jira Projects Cloud
Learn to create and configure company-managed projects in Jira Software and partner effectively with Jira Admins.
Learning Path
Become an effective Jira Software Project Admin
This learning path is designed for team leaders who configure Jira Software projects to match a team's processes.