Hi, I am net to script runner and have only the basic knowledge.
I am trying to automate an task where we update an custom field.
The custom field is an radio button with 3 options None , planned ,Unplanned .
the task is Each time an story is marked as done and if this story is linked to a RM ticket we should change the type of change field to be planned or unplanned :
conditions :
If issue linked while Status = Scheduled, then “Type of change” field for issue = Planned
If issue linked while Status = Scope Freeze, then “Type of change” field for issue = Unplanned
If issue linked while Status = Code Freeze, then “Type of change” field for issue = Unplanned
In a postfunction for your workflow transition where the main story is being marked as done, you can add a sriptrunner post function using "custom script post function" with a script somewhat like this:
import com.atlassian.jira.component.ComponentAccessor
def issueLinkManager = ComponentAccessor.issueLinkManager
def customFieldManager = ComponentAccessor.customFieldManager
def optionsManager = ComponentAccessor.optionsManager
def currentUser = ComponentAccessor.jiraAuthenticationContext.loggedInUser
def typeOfChangeCf = customFieldManager.getCustomFieldObjectByName('Type of change')
def cfConfig = typeOfChangeCf.getRelevantConfig(issue)
def changeOptions = optionsManager.getOptions(cfConfig)
def plannedOpt = changeOptions.find{it.value == 'Planned'}
def unplannedOpt = changeOptions.find{it.value == 'Unplanned'}
def linkedRMIssues = issueLinkManager.getLinkCollection(issue, currentUser)?.allIssues?.findAll{it.projectObject.key == 'RM'}
if(linkedRMIssues){
if (linkedRMIssues.any{it.status.name == 'Scheduled'}) {
issue.setCustomFieldValue(typeOfChangeCf, plannedOpt )
} else if (linkedRMIssues.any{it.status.name == 'Scope Freeze'}) {
issue.setCustomFieldValue(typeOfChangeCf, unplannedOpt )
} else if (linkedRMIssues.any{it.status.name == 'Code Freeze'}) {
issue.setCustomFieldValue(typeOfChangeCf, unplannedOpt )
}
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.