Hi Team,
We have a single select field ( T-Shirt Size) and based on the size selected 'Story point' Field must be updated automatically.
if it S then it should be 1, M is 2 and L is 3 and so on. Can this be done using Script Runner.
Please do let us know.
Hi @M Vijay Kumar ,
I would suggest to use behaviours, it would make things visual for your users. Make story points read only, and use this script for the select list (update the ids) :
import com.atlassian.jira.component.ComponentAccessor
int selectListId = 12503
def selectList = getFieldById("customfield_" + selectListId)
def selectListValue = selectList.getValue()
int storyPointsId = 10002
def storyPoints = getFieldById("customfield_" + storyPointsId)
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def storyPointsValue
switch(selectListValue){
case "S": storyPointsValue = 1; break;
case "M": storyPointsValue = 2; break;
case "L": storyPointsValue = 3; break;
default: storyPointsValue = underlyingIssue?.getCustomFieldValue(customFieldManager.getCustomFieldObject(storyPointsId))
}
storyPoints.setFormValue(storyPointsValue)
Antoine
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi @M Vijay Kumar ,
Yes you can
1. If you want only during creation you can go with script runner post-function
2. if you want even during Edit action as well you can consider scriptrunner listener for "Issue created and Issue Updated" events.
below snippet may help you, BTW I haven't tested you may need to correct something
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
import com.atlassian.jira.issue.ModifiedValue
def changeHolder = new DefaultIssueChangeHolder();
def tShirt = ComponentAccessor.customFieldManager.getCustomFieldObjectByName("T-Shirt Size")
def story = ComponentAccessor.customFieldManager.getCustomFieldObjectByName("Story Point")
def myIssue = event.issue
String size = myIssue.getCustomFieldValue(tShirt) as String
def point = null
if(size){
if(size == "S"){
point = 1
}else if(size == "M"){
point = 2
}else{
point = 3
}
}
if(point){
story.updateValue(null, myIssue, new ModifiedValue(myIssue.getCustomFieldValue(story),point), changeHolder)
}
BR,
Leo
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.