My reqiuirement is a follows:
1.We will introduce a 'Parent ID' label field for issue types.
2.we are making this field required, to ensure that users will be prompted to fill in the field
3.Upon creating a bug the Parent ID field will trigger a script that will create a link.This script will most likely be scriptrunner and the approach is based on: http://www.denizoguz.com/2013/06/29/jiraautomatically-linking-issues-with-a-script-during-create-transition/
Our Jira version is 6.1.5.
but the code applied on validators is not working properly. It give below exception in logs.
ERROR jiraad 861x2056x1 7ui5y0 10.202.29.46 /secure/QuickCreateIssue.jspa [groovy.canned.utils.ConditionUtils] javax.script.ScriptException: groovy.lang.MissingPropertyException: No such property: issueObject for class: com.atlassian.jira.issue.IssueImpl
Can you help in the code...
+++++++++++++++++++++++++++++
def parentTaskID = cfValues['Parent Task ID'];
if (parentTaskID == null || parentTaskID == '')
{ return true; }
else
{ def parentIssue = ComponentAccessor.getIssueManager(). getIssueObject(parentTaskID); def isValid = parentIssue != null && parentIssue.projectObject.key == issue.projectObject.key && (parentIssue.issueObject.name == 'Review Task' || parentIssue.issueObject.name == 'Test Task'); return isValid; }
Please suggest on the IssueObject property. How can this be exposed.
Hello ,
The post function script mentioned below
+++++++++++++++
import org.apache.log4j.Category
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
import com.atlassian.jira.issue.issuetype.IssueType
import com.atlassian.jira.issue.IssueImpl
import com.atlassian.jira.issue.IssueFactory
import com.atlassian.jira.issue.IssueKey
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.link.*
def ComponentManager componentManager = ComponentManager.getInstance();
def customFieldManager = componentManager.getCustomFieldManager();
def parentTaskIDCF = customFieldManager.getCustomFieldObject('customfield_10105');//write your own custom field id here
def parentTaskID = issue.getCustomFieldValue(parentTaskIDCF);
if (parentTaskID == null || parentTaskID == '') {
return true;
} else {
def issueManager = ComponentAccessor.getIssueManager();
def parentIssue = issueManager.getIssueObject(parentTaskID);
def isParentIssueValid = parentIssue != null &&
parentIssue.projectObject.key == issue.projectObject.key &&
(parentIssue.issueTypeObject.name == 'Review Task' ||
parentIssue.issueTypeObject.name == 'Test Task');
if (isParentIssueValid) {
def issueLinkManager = ComponentAccessor.getIssueLinkManager();
def issueLinkTypeManager = componentManager.
getComponentInstanceOfType(IssueLinkTypeManager.class);
def issueLinkType = issueLinkTypeManager.getIssueLinkTypesByName('is blocked by').get(0);
def authenticationContext = componentManager.
getComponentInstanceOfType(JiraAuthenticationContext.class);
issueLinkManager.createIssueLink(
issue.id, parentIssue.id, issueLinkType.id, 1L, authenticationContext.user);
}
}
++++++++++++++++++++++++++++++++
and the exception retuned given below as ,
+++++++++++++++++++++++++++++
2014-06-10 12:34:26,043 http-bio-11000-exec-1 ERROR jiraad 754x3545x1 o9z41q 10.202.29.46 /secure/QuickCreateIssue.jspa [onresolve.jira.groovy.GroovyRunner] The script failed : javax.script.ScriptException: javax.script.ScriptException: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
2014-06-10 12:34:26,043 http-bio-11000-exec-1 ERROR jiraad 754x3545x1 o9z41q 10.202.29.46 /secure/QuickCreateIssue.jspa [onresolve.jira.groovy.GroovyFunctionPlugin] Script post-function failed on null: /home/jira/linkissues.groovy
javax.script.ScriptException: javax.script.ScriptException: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:117)
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:103)
at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:195)
at com.onresolve.jira.groovy.GroovyRunner.runFile(GroovyRunner.java:102)
at com.onresolve.jira.groovy.GroovyRunner.run(GroovyRunner.java:62)
++++++++++++++++++++++++++++++++++++
please suggest.
Thanks
Can you use the proper code formatting tags from the toolbar... I can't even look at this.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Jamie,
Thanks for your reply. what I am trying to do is mentioned in more detail at http://www.denizoguz.com/2013/06/29/jiraautomatically-linking-issues-with-a-script-during-create-transition/...
Thanks
Abhishek
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
What do you think parentIssue.issueObject is going to do?
I think you want parentIssue.issueTypeObject.name - but I'm not sure exactly what you are trying to do there.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
ok well fix your immediate problem and use: parentIssue.issueTypeObject.name
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.