Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Post function in a Workflow to trigger another issue transition in another Workflow

Moses Thomas
Community Champion
May 25, 2021

Dear Adaptavist,

I would like to  trigger a transition ( of an  issue-type  Task  with a unique workflow)  from another transition(post-function)  of issueType Subtask with a  unique  workflow.   seems that i am not able to  do  this  but it should be possible i  suppose  any  suggestion ?

transitionId =21,  transitionId = 31 belongs to the transition IDs  that i want to trigger in The task  worflow.  but they are not recognized after debugging.

 

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.MutableIssue

def CustomFieldManager = ComponentAccessor.getCustomFieldManager()
def issueService = ComponentAccessor.getIssueService()
def user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
def targetStatus = CustomFieldManager.getCustomFieldObject("customfield_17000")
def targetStatusValue = issue.getCustomFieldValue(targetStatus) as String

def parentIssue = issue.getParentObject() as MutableIssue

if (!parentIssue) {
return true
}


if(targetStatusValue == "ARS  SSB") {

if (parentIssue && parentIssue.status.name == "Open") {

def IssueInputParameters = issueService.newIssueInputParameters()
IssueInputParameters.with {
setResolutionId("10001") // resolution of "Done"
setSkipScreenCheck(true)
}

def validationResult1 = issueService.validateTransition(user, parentIssue.id, 21, IssueInputParameters)

log.error("$validationResult1")

def validationResult2 = issueService.validateTransition(user, parentIssue.id, 31, IssueInputParameters)
log.error("$validationResult2")

if (validationResult1.isValid() && validationResult2.isValid()) {

def issueResult1 = issueService.transition(user, validationResult1)
log.error("$issueResult1")
def issueResult2 = issueService.transition(user, validationResult2)
log.error("$issueResult2")

if (!issueResult1.isValid() && !issueResult2.isValid()) {
log.warn("Failed to transition ARS ${parentIssue.key}, errors: ${issueResult1.errorCollection}")
}
} else {
log.warn("Could not transition  ARS  ${parentIssue.key}, errors: ${validationResult1.errorCollection}")
}

}

}


 

Thanks,

Moses

0 answers

Suggest an answer

Log in or Sign up to answer