Page tree
Skip to end of metadata
Go to start of metadata

在一个项目下比如有工时管理和项目管理两个标准问题类型,在但此项目下有多个子任务,

我们需要在工时管理的父任务下,限制创建子任务只能选择加班和调整,可以使用behaviour设置如下脚本。


import com.atlassian.jira.component.ComponentAccessor;
import static com.atlassian.jira.issue.IssueFieldConstants.ISSUE_TYPE;
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.issue.MutableIssue;


//获得当产有所选的项目
def projectKey = getIssueContext().projectObject.name
if( projectKey != "HM"){
   return
}
//获得当前所选的问题类型
def issueTypeName = getIssueContext().issueType.name
//查看一下是否能够获得父任务的ID
def parentIssueId = getFieldById("parentIssueId").getValue() as Long;
if( parentIssueId  == null){
	return
}

//父任务对象 
def parentIssue = ComponentAccessor.getIssueManager().getIssueObject(parentIssueId)
 //父任务对象的问题类型 
def parentIssueTypeName =parentIssue.getIssueType().getName();

//如果是工时管理,对之进行子任务限制
if("工时管理" == parentIssueTypeName){
	def allIssueTypes = ComponentAccessor.constantsManager.allIssueTypeObjects

	def availableIssueTypes = []
	availableIssueTypes.addAll(allIssueTypes.findAll { it.name in ["加班", "调休"]})
	def issueTypeField = getFieldById(ISSUE_TYPE)
	issueTypeField.setFieldOptions(availableIssueTypes)
}

  • No labels

1 Comment

  1. 低版本的有可能是获得不到parentIssueId