----------------------------------------------------------------------------
It is posible to change an issue link to resolved , ? (change transition)
but, if this action is available but not visible ? ( meaning that I have a condition in workflow )
I can change the resolution in the linked issue, when I resolve the parent issue
but I cannot not change the transition .
where I can get the validation Error ? May I search in LOGS ?
Where I can find a sample to resolve a linked issue ?
here is my code part that is not valid, it works but this code is not executed : (validation is not valid )
// :::::: code part:::::::::::::
// validation of the linked issue transition to resolved
// 2 is the Closed Issue transition ID
// 5 is the Solved Issue transition ID
TransitionValidationResult validationResult = issueService.validateTransition(user, issueLink.getId(), 5, issueInputParameters)
if (validationResult.isValid())
{
IssueResult transitionResult = issueService.transition(user, validationResult);
UpdateValidationResult validationUpdate = issueService.validateUpdate(user, issueLink.getId(), issueInputParameters)
// new way to update interaction ( new API) , not works
issueService.update(user, validationUpdate);
}
complete code :
-----------------------------------------------------------------------------
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.Issue
import org.apache.log4j.Category
import com.atlassian.jira.issue.link.IssueLink
import com.atlassian.jira.util.JiraUtils
import com.atlassian.jira.workflow.WorkflowTransitionUtil
import com.atlassian.jira.workflow.WorkflowTransitionUtilImpl
import com.atlassian.jira.issue.comments.CommentManager
import com.opensymphony.workflow.WorkflowContext
import com.atlassian.jira.event.type.EventDispatchOption
import com.atlassian.jira.util.ImportUtils
import com.atlassian.jira.event.type.EventDispatchOption
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.IssueInputParameters;
import com.atlassian.jira.issue.IssueInputParametersImpl;
import com.atlassian.jira.bc.issue.IssueService;
import com.atlassian.jira.bc.issue.IssueService.CreateValidationResult;
import com.atlassian.jira.bc.issue.IssueService.UpdateValidationResult
import com.atlassian.jira.user.util.DefaultUserManager
import com.atlassian.jira.issue.link.IssueLinkImpl
import com.atlassian.jira.bc.issue.DefaultIssueService
import com.atlassian.jira.bc.ServiceResultImpl
import com.atlassian.jira.bc.issue.IssueService.TransitionValidationResult
import com.atlassian.jira.issue.IssueInputParametersImpl
import com.atlassian.crowd.embedded.api.User
import com.atlassian.jira.bc.issue.IssueService.UpdateValidationResult
import com.atlassian.jira.bc.issue.IssueService.IssueResult
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.bc.issue.IssueService
import java.util.*;
import org.apache.log4j.Logger;
import com.atlassian.core.ofbiz.CoreFactory;
import org.ofbiz.core.entity.GenericValue;
import org.ofbiz.core.entity.GenericDelegator;
import org.ofbiz.core.entity.GenericEntityException;
import org.ofbiz.core.entity.EntityUtil;
import javax.servlet.http.HttpServletRequest;
import com.atlassian.jira.ofbiz.OfBizDelegator;
import com.atlassian.jira.ComponentManager;
import webwork.action.ActionContext;
// we create the linkmanager to manage links in the interaction ( escalated interaction (PO office)--> linked --> new ticket (ohim) )
def linkMgr = componentManager.getIssueLinkManager()
// uncomment this line to test the script in script runner
MutableIssue issue = componentManager.getIssueManager().getIssueObject("CTM-177")
// we create a list to get the list of linked escalated interactions , it will be only one, so we dont need a bucle
def link_list = []
// we get the link of ticket ( the issue.id where we are working on )
link_list = linkMgr.getInwardLinks(issue.id)
// we get the first object of the list, get(0) that will be the interaction
issueLink = link_list.get(0).getSourceObject()
// we change the resolution of the escalated interaction to 8 (solved)
issueLink.setResolutionId("8")
// not used only an example to change TITLE too
//issueLink.setSummary("Escalated interaction SOLVED")
// new way to update interaction ( new API) , not works
def com.atlassian.crowd.embedded.api.User user = ComponentManager.instance.jiraAuthenticationContext.getLoggedInUser()
def issueService = ComponentManager.getInstance().getIssueService()
def issueInputParameters = issueService.newIssueInputParameters(ActionContext.getParameters())
TransitionValidationResult validationResult = issueService.validateTransition(user, issueLink.getId(), 5, issueInputParameters)
if (validationResult.isValid())
{
IssueResult transitionResult = issueService.transition(user, validationResult);
UpdateValidationResult validationUpdate = issueService.validateUpdate(user, issueLink.getId(), issueInputParameters)
// 2 is the Closed Issue transition ID
// 5 is the Solved Issue transition ID
// new way to update interaction ( new API) , not works
issueService.update(user, validationUpdate);
}
else {
log.debug("wrong validation : " + validationResult);
System.out.println("Hola mundo");
}
// System.out.println(validationResult);
// old way to update the interaction - this works
ComponentManager.getInstance().getIssueManager().updateIssue(user, issueLink, EventDispatchOption.DO_NOT_DISPATCH, true)
ComponentManager.getInstance().getIndexManager().reIndex(issueLink);