How to Automatically create Sub - task using script runner post function?

We have a requirement to be able to automatically create a few sub tasks, when an issue type called Feature is created. I have tried to use the script runner in post function of Submit. I do not see any sub task created after the feature being created.

I tried with having no specific criteria , when creating a sub task other than the Target Type being sub task. Didn't work either. Am I missing some thing?

3 answers

This widget could not be displayed.

Hi Srillatha

Below is a sample custom script that you can use in order to create a number of subtasks.

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.customfields.manager.OptionsManager

def constantManager = ComponentAccessor.getConstantsManager()
def user = ComponentAccessor.getJiraAuthenticationContext().get
def issueFactory = ComponentAccessor.getIssueFactory()
def subTaskManager = ComponentAccessor.getSubTaskManager()
def issueManager = ComponentAccessor.getIssueManager()

Issue parentIssue = issue

if (parentIssue.getIssueTypeObject().getName() == 'Sub-task')
return

if (parentIssue.getIssueTypeObject().name != 'Feature')
return

def summariesList = ["Summary 1", "Summary 2", "Summary 3"]

// code in order to create the values to update a CascadingSelect custom field
def cascadingSelect = ComponentAccessor.customFieldManager.getCustomFieldObjectByName("CascadingSelect")
def fieldConfig = cascadingSelect?.getRelevantConfig(parentIssue)
def listOfOptions = ComponentAccessor.getComponent(OptionsManager).getOptions(fieldConfig)
def parentOption = listOfOptions?.find {it.value == "AAA"}
def childOption = parentOption?.getChildOptions()?.find {it.value == "A2"}

def mapWithValues = [:]
mapWithValues.put(null, parentOption)
mapWithValues.put('1', childOption)

summariesList.each {
MutableIssue newSubTask = issueFactory.getIssue()
newSubTask.setAssigneeId(parentIssue.assigneeId)
newSubTask.setSummary(it)
newSubTask.setParentObject(parentIssue)
newSubTask.setProjectObject(parentIssue.getProjectObject())
newSubTask.setIssueTypeId(constantManager.getAllIssueTypeObjects().find{
it.getName() == "Sub-task"
}.id)
// Add any other fields you want for the newly created sub task
newSubTask.setCustomFieldValue(cascadingSelect, mapWithValues)

def newIssueParams = ["issue" : newSubTask] as Map<String,Object>

//for JIRA v6.*
issueManager.createIssueObject(user.directoryUser, newIssueParams)
subTaskManager.createSubTaskIssueLink(parentIssue, newSubTask, user.directoryUser)
// for JIRA v7.*
issueManager.createIssueObject(user, newIssueParams)
subTaskManager.createSubTaskIssueLink(parentIssue, newSubTask, user)

log.info "Issue with summary ${newSubTask.summary} created"
}

Note. Add it as a post function -> script post function -> custom script post function and make sure this goes after the 'Creates the issue originally' action (because before that the issue doesn't really exist, unless you get it's values using the transientVars). Hope that helps.

PS. If you are in a JIRA v7.* then you will need the application user therefore use user instead of user.directoryUser

Hi Thanos,

 

Any chance you could help me with this line:

Map&lt;String,Object&gt; newIssueParams = ["issue" : newSubTask] as Map&lt;String,Object&gt

It seems like it has been HTML formatted.

Hey Shaw, I edited the snippet, now it should display the code fine. 

@Thanos Batagiannis [Adaptavist] How to add cascading field value while creating a subtask? 

// Add any other fields you want for the newly created sub task

Hey there, 

I updated the script above in order to include setting values to a cascading select list.

Thank you for script update. I have this error method and also am trying to add few more fields when subtask is created like

1. cascading select field

2. due date(issue due date)

3. dropdown single select

4.drop down single selectUntitled.png

This widget could not be displayed.

What troubleshooting have you done so far? Did you follow any document to create your script? Try following the instructions here in the JIRA ScriptRunner Built-in scripts.

Reference: https://scriptrunner.adaptavist.com/latest/jira/builtin-scripts.html

This widget could not be displayed.

Did you remember to publish the workflow?

If you want complete control you can use a script like the one @Thanos Batagiannis [Adaptavist] published above, although you should try to work out what the problem with the built-in script is first.

Suggest an answer

Log in or Sign up to answer
Atlassian Summit 2018

Meet the community IRL

Atlassian Summit is an excellent opportunity for in-person support, training, and networking.

Learn more
Community showcase
Posted Wednesday in New to Jira

Are you planning to trial, or are currently trialling Jira Software? - We want to talk to you!

Hello! I'm Rayen, a product manager at Atlassian. My team and I are working hard to improve the trial experience for Jira Software Cloud. We are interested in   talking to 20 people planning t...

256 views 5 0
Join discussion

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you