Forums

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

Groovy Script - Custom field to show on ticket based on sub-task type and value in custom field

bSte March 4, 2018

HI - I am trying to setup a ticket where original date shows on the ticket create(of the subtask ticket) screen only if the sub-task issue type and the value entered in another custom field are as specified. I am struggling with the sub-task ticket. Here is my code.

 

def IssueType = getFieldByName("Campaign")
def subIssueType = getFieldByName("Data Enhancement")
def productField = getFieldByName("Product")
def productFieldValue = productField.getValue()
def originalDueDateField = getFieldByName("Original Due Date")

switch (productFieldValue){
case "Match Analysis":
originalDueDateField.setHidden(false)
break

case "Data Append":
originalDueDateField.setHidden(true)
break

case "Data Feed":
originalDueDateField.setHidden(true)
break

case "Data License":
originalDueDateField.setHidden(true)
break

case "Exposure File":
originalDueDateField.setHidden(true)
break

case "Score Append":
originalDueDateField.setHidden(true)
}

 

3 answers

1 accepted

0 votes
Answer accepted
bSte March 5, 2018

Thanks for all the answers! I am still getting an error on:

issue.getIssueTypeObject().isSubtask() -- error = cannot find matching method com.onresolve.jira.goroovy.user.FormField#getIssueTypeObject(). Please check if the declared type is right and if the method exists.

 

if(!issue.getIssueTypeObject().isSubTask())
return -- error = cannot find matching method com.onresolve.jira.goroovy.user.FormField#getIssueTypeObject(). Please check if the declared type is right and if the method exists.

 

Here is the posted code: 

import com.atlassian.jira.issue.Issue

def IssueType = getFieldByName("Campaign")
def issue = getFieldByName("Data Enhancement")
def productField = getFieldByName("Product")
def productFieldValue = productField.getValue()

if(!issue.get("issueType").isSubTask())
return

def originalDueDateField = getFieldByName("Original Due Date")

switch (productFieldValue){
case "Match Analysis":
originalDueDateField.setHidden(false)
break

case "Data Append":
originalDueDateField.setHidden(true)
break

case "Data Feed":
originalDueDateField.setHidden(true)
break

case "Data License":
originalDueDateField.setHidden(true)
break

case "Exposure File":
originalDueDateField.setHidden(true)
break

case "Score Append":
originalDueDateField.setHidden(true)
}

Vasiliy Zverev
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
March 5, 2018

This code works witout error on my instance

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

def issue = getFieldByName("Data Enhancement")
def productField = getFieldByName("Product")
def productFieldValue = productField.getValue()


//Issue issue = ComponentAccessor.getIssueManager().getIssueObject("")

if(!issue.getIssueTypeObject().isSubTask())
return

def originalDueDateField = getFieldByName("Original Due Date")

switch (productFieldValue){
case "Match Analysis":
originalDueDateField.setHidden(false)
break

case "Data Append":
originalDueDateField.setHidden(true)
break

case "Data Feed":
originalDueDateField.setHidden(true)
break

case "Data License":
originalDueDateField.setHidden(true)
break

case "Exposure File":
originalDueDateField.setHidden(true)
break

case "Score Append":
originalDueDateField.setHidden(true)
}
Gezim Shehu [Communardo]
Community Champion
March 8, 2018

issue.getIssueTyoeObject() is supposed to run for an issue object, not a field one.

 

def issue = getFieldByName("Data Enhancement")

This doesn't make any sense.

Vasiliy Zverev
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
March 9, 2018

Agree, it is not a good name for variable.

0 votes
Gezim Shehu [Communardo]
Community Champion
March 5, 2018

Could you post the whole script?

I don't see any part where you check the subtask or parent relation?

bSte March 5, 2018

Hi - see below, I was missing that from my original code.

0 votes
Vasiliy Zverev
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
March 4, 2018

Dear Ashlee, here is code to check if issue is subtask or not

issue.getIssueTypeObject().isSubTask()

Issue type is build-in field, not a custom one. Since special method to get its value is used.

 Best regards,

Vasiliy.

Vasiliy Zverev
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
March 5, 2018

Here you are

import com.atlassian.jira.issue.Issue

//here is code to check if issue is subtask or not
if(!issue.getIssueTypeObject().isSubTask())
return

def originalDueDateField = getFieldByName("Original Due Date")

switch (getFieldByName("Product").getValue()){
case "Match Analysis":
originalDueDateField.setHidden(false)
break

case "Data Append":
originalDueDateField.setHidden(true)
break

case "Data Feed":
originalDueDateField.setHidden(true)
break

case "Data License":
originalDueDateField.setHidden(true)
break

case "Exposure File":
originalDueDateField.setHidden(true)
break

case "Score Append":
originalDueDateField.setHidden(true)
}

Suggest an answer

Log in or Sign up to answer