Hi,
I have a script that create two substaks and I'm trying to set a label on my "subtask1".
Before I have a different script that was setting the label, even with permission "Edit Issue" denied for normal users, but now that I created theses differents scripts it is not possible to set this label for subtask1.
SCRIPT 1 THAT CREATE MY SUBTASK:
def subTask1 = SubTask.createSubTask(issue, "Execute Maintenance Window", "SPB", "O&M task", dtMWDate, dtStartDate, dtMWDate, userOm)
SubTask.setLabel(subTask1, "MW")
def subTask2 = SubTask.createSubTask(issue, "Close RFC Ticket", "SPB", "O&M task", dtMWDate+14, dtStartDate, null, userOm)
SCRIPT 2 TO SET LABEL:
static void setLabel(Issue issue, String strLabel) { Logger log = Logger.getInstance("tools.SubTask") log.setLevel(org.apache.log4j.Level.INFO) def user = ComponentAccessor.jiraAuthenticationContext.getLoggedInUser() LabelService labelService = ComponentAccessor.getComponent(LabelService) AddLabelValidationResult validationResult = labelService.validateAddLabel(user, issue.getId(), strLabel) if (!validationResult.errorCollection.hasAnyErrors()) { labelService.addLabel(user, validationResult, false) log.info "Label '${strLabel}' set to issue ${issue}." } else { log.error ${validationResult.errorCollection} } }
LOG ERROR:
2017-05-25 16:33:32,822 http-nio-8081-exec-24 ERROR supplier.team 993x16314x1 kg958x 10.192.63.100 /secure/QuickCreateIssue.jspa [c.o.s.jira.workflow.ScriptWorkflowFunction] Script function failed on issue: SDP-7765, actionId: 1, file: TaskCreationDispatcher.groovy groovy.lang.MissingMethodException: No signature of method: static SubTask.$() is applicable for argument types: (SubTask$_setLabel_closure3) values: [SubTask$_setLabel_closure3@12ee538c] Possible solutions: is(java.lang.Object), run(), run(), any(), any(groovy.lang.Closure), use([Ljava.lang.Object;) at SubTask.setLabel(SubTask.groovy:235) at SubTask$setLabel$1.call(Unknown Source) at SI_-_Software_Version_Upgrade.run(SI - Software Version Upgrade.groovy:45) at TaskCreationDispatcher.run(TaskCreationDispatcher.groovy:29)
How can I do it?
Hi Artur,
Assuming that you have a custom post function that creates two subtasks and this post function is the first one, or at least before the "Save Issue step". Then a script like the one below will create two subtasks and add the label_a and label_b labels in each of your subtasks.
import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.MutableIssue import com.atlassian.jira.issue.label.LabelManager def parentIssue = issue as MutableIssue if (parentIssue.isSubTask()) return def user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser() def summariesList = ["summary1", "summary 2"] def issueFactory = ComponentAccessor.getIssueFactory() def subTaskManager = ComponentAccessor.getSubTaskManager() def constantManager = ComponentAccessor.getConstantsManager() def issueManager = ComponentAccessor.getIssueManager() summariesList.each { subTaskSummary -> MutableIssue newSubTask = issueFactory.getIssue() newSubTask.setSummary(subTaskSummary) 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 Map<String,Object> newIssueParams = ["issue" : newSubTask] as Map<String,Object> def subtask = issueManager.createIssueObject(user, newIssueParams) subTaskManager.createSubTaskIssueLink(parentIssue, newSubTask, user) log.info "Issue with summary ${newSubTask.summary} created" ComponentAccessor.getComponent(LabelManager).setLabels(user, subtask?.id, ["label_a", "label_b"].toSet(), false, false) }
Please let me know if this does the trick.
regards, Thanos
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.