Apply several templates
When a template value is selected then accordingly stories and tasks are created with teams assigned automatically.
Note
Please be sure to update the Team ID in the rule. And also be sure to assign the team to the Project before using the rule.
[
{
"type": "source:targetprocess:EntityChanged",
"entityTypes": [
"feature"
],
"modifications": {
"created": true,
"deleted": false,
"updated": false
}
},
{
"type": "filter:Relational",
"or": [
{
"and": [
{
"target": {
"type": "field",
"name": "Template",
"target": {
"type": "pipelineBlockOutput"
}
},
"value": null,
"operator": {
"type": "exists"
}
}
]
}
]
},
{
"type": "action:JavaScript",
"script": "let stories = [];\n\nswitch (args.Current.Template) {\n\n case \"Tech\":\n stories = [\n { name: \"US1\", teams: [2718], descirption: \"Test\", tasks: [\"T1\", \"T2\"] },\n { name: \"US2\", teams: [3122], descirption: \"Test\", tasks: [\"T1\", \"T2\", \"T3\"] }\n ]\n break;\n\n case \"Compliance\":\n stories = [\n { name: \"US3\", teams: [123, 321], descirption: \"Test\", tasks: [\"T1\", \"T2\"] },\n { name: \"US4\", teams: [123, 321], descirption: \"Test\", tasks: [\"T1\"] }\n ]\n break;\n\n case \"New Functionality\":\n stories = [\n { name: \"US5\", teams: [123, 321], descirption: \"Test\", tasks: [\"T1\", \"T2\"] },\n ]\n break;\n}\n\nreturn stories.map(story => {\n let teams = story.teams.map(teamId => {\n return { Team: { Id: teamId } }\n });\n return {\n command: \"targetprocess:CreateResource\",\n payload: {\n resourceType: \"UserStory\",\n fields: {\n Project: { Id: args.Current.Project.Id },\n Feature: { Id: args.Current.Id },\n Name: story.name,\n Description: story.description,\n AssignedTeams: { items: teams },\n Tasks: {\n items: story.tasks.map(taskName => {\n return {\n Project: { Id: args.Current.Project.Id },\n Name: taskName,\n AssignedTeams: { items: teams }\n }\n })\n },\n }\n }\n }\n});"
}
]
Updated almost 3 years ago