在一个项目下比如有工时管理和项目管理两个标准问题类型,在但此项目下有多个子任务,
我们需要在工时管理的父任务下,限制创建子任务只能选择加班和调整,可以使用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) }
1 Comment
红旗公
低版本的有可能是获得不到parentIssueId