0

I am using scriptrunner postfunction and validator to perform 3 transitions back to back. The problem is that I receive an error message saying 

[comment:Please, add a comment.] although a comment has actually been adde as you can see in the screenshot  enter image description here

Here is the code I have used, anyone knows how to fix this?

package CombineTransitions

import com.onresolve.scriptrunner.runner.util.UserMessageUtil

import com.atlassian.jira.issue.Issue;

import org.apache.log4j.Logger

import com.atlassian.jira.bc.issue.IssueService

import com.atlassian.jira.issue.Issue;

import CombineTransitions.Configuration_CombineTransitions

import com.atlassian.jira.bc.issue.IssueService.IssueResult

import com.atlassian.jira.bc.issue.IssueService.TransitionValidationResult

import com.atlassian.jira.event.type.EventDispatchOption

import  java.util.concurrent.TimeUnit

import  java.util.concurrent.ScheduledExecutorService

import java.util.concurrent.Executors

import com.atlassian.jira.component.ComponentAccessor

import com.atlassian.jira.issue.MutableIssue

import com.atlassian.jira.workflow.WorkflowTransitionUtil

import com.opensymphony.workflow.WorkflowContext;

import com.atlassian.jira.workflow.WorkflowTransitionUtilImpl;

import com.atlassian.jira.util.JiraUtils;

import com.atlassian.jira.issue.MutableIssue;

import com.atlassian.jira.util.ErrorCollection

import com.atlassian.jira.workflow.WorkflowException

import com.atlassian.jira.issue.fields.CustomField

import com.onresolve.jira.groovy.user.FormField

import com.atlassian.jira.issue.CustomFieldManager

import com.atlassian.jira.component.ComponentAccessor

import com.opensymphony.workflow.InvalidInputException

import com.atlassian.jira.component.ComponentAccessor;

import com.atlassian.jira.issue.MutableIssue;

import com.atlassian.jira.issue.fields.screen.FieldScreenRenderLayoutItem;

import com.atlassian.jira.issue.fields.screen.FieldScreenRenderTab;

import com.atlassian.jira.issue.fields.screen.FieldScreenRenderer;

def log1 = Logger.getLogger("atlassian-jira.log")

def combineTransitionsHashMap= Configuration_CombineTransitions.getCombineTransitionsHashMap()

def issueStatusTypeId = combineTransitionsHashMap["issueStatusTypeId"] as String;

def transitionFromOpentoFixed = combineTransitionsHashMap["transitionFromOpentoFixed"] as Integer;

def transitionFromFixedToTested = combineTransitionsHashMap["transitionFromFixedToTested"] as Integer;

def transitionFromTestedToCompleted = combineTransitionsHashMap["transitionFromTestedToCompleted"] as Integer;

def fixedStatusName = combineTransitionsHashMap["fixedStatusName"] as String;

def testedStatusName = combineTransitionsHashMap["testedStatusName"] as String;

def completedStatusName = combineTransitionsHashMap["completedStatusName"] as String;

def fixedStatusId = combineTransitionsHashMap["fixedStatusId"] as String;

def testedStatusId = combineTransitionsHashMap["testedStatusId"] as String;

def completedStatusId = combineTransitionsHashMap["completedStatusId"] as String;

def errorMessage = combineTransitionsHashMap["errorMessage"] as String;

if (issue.getStatus().getSimpleStatus().getId().equals(issueStatusTypeId)) {

        def ok = false

         ok=performTransition(transitionFromOpentoFixed, fixedStatusName, fixedStatusId, errorMessage);

         log.warn("MOUNA first boolean "+ok +" "+fixedStatusName)

   if(ok){

         ok= performTransition(transitionFromFixedToTested, testedStatusName, testedStatusId, errorMessage);

         log.warn("MOUNA second boolean "+ok +" "+testedStatusName)

         if(ok){

          ok= performTransition(transitionFromTestedToCompleted, completedStatusName, completedStatusId, errorMessage);

          log.warn("MOUNA third boolean "+ok +" "+completedStatusName)

         }

  

  }

   

   

}

def  performTransition(int transitionToBeDone, String destinationStatus, String statusId , String errorMessage) {

  log.warn("MOUNA  ORIGINAL STATUS "+ issue.getStatus()  + "DEST STATUS "+ destinationStatus)

//issue = ComponentAccessor.getIssueManager().getIssueObject(issue.id)

issue = transientVars.get("issue");

  def currentUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()

  

  

 

  String issueKey = issue.getKey()

  IssueService issueService = ComponentAccessor.getIssueService()

  def issueInputParameters = issueService.newIssueInputParameters()

  issueInputParameters.setComment("Transitioning issue from status "+ issue.getStatus().getName()+" to status "+ destinationStatus );

WorkflowTransitionUtil workflowTransitionUtil = (WorkflowTransitionUtil) JiraUtils.loadComponent(WorkflowTransitionUtilImpl.class)

workflowTransitionUtil.setIssue(issue)

workflowTransitionUtil.setAction(transitionToBeDone)

//workflowTransitionUtil.addAdditionalInput(transientVars.get("comment"))

log.warn("MOUNA "+transientVars)

ErrorCollection errorCollection=workflowTransitionUtil.validate()

if (errorCollection.hasAnyErrors()) {

    log.warn("MOUNA here 1 "+errorCollection.getErrorMessages().toString())

    throw new InvalidInputException(errorCollection.getErrors().toString())

return false; 

}else{

   

      

    ErrorCollection progressErrorCollection=workflowTransitionUtil.progress()

    if(progressErrorCollection.hasAnyErrors()){

        log.warn("MOUNA here 2 "+progressErrorCollection.getErrors().toString())

       throw new InvalidInputException(progressErrorCollection.getErrors().toString())

    

    

          return true; 

    }else{

      return true; 

    }

}

}

//@SuppressWarnings("rawtypes")

  //  Map getPopulatedFieldValuesHolder(WorkflowTransitionUtil workflowTransitionUtil, MutableIssue issue) throws Exception{

        

  //  Map fieldValuesHolder = new HashMap();

        

  //  FieldScreenRenderer fieldScreenRenderer = workflowTransitionUtil.getFieldScreenRenderer();

        

  //  for (FieldScreenRenderTab fieldScreenRenderTab in fieldScreenRenderer.getFieldScreenRenderTabs()) 

  //    for (FieldScreenRenderLayoutItem fieldScreenRenderLayoutItem in fieldScreenRenderTab.getFieldScreenRenderLayoutItems()) 

  //      if (fieldScreenRenderLayoutItem.isShow(issue)) {

  //                   fieldScreenRenderLayoutItem.populateFromIssue(fieldValuesHolder, issue);

  //                     log.warn("fieldScreenRenderLayoutItem MOUNA "+fieldScreenRenderLayoutItem.getFieldScreenLayoutItem().getFieldScreenTab().getFieldScreen().getName())

  //       }

                

  //       return fieldValuesHolder;

  //   }

// String getError(String error){

//   return error; 

// }
 

 

0 Answers0