jira 的scriptrunner操作 例三 例四

例子三   有些需要从连接的问题中复制字段到当前任务
//从选择的用户需求中拷贝以下字段:
//摘要
//需求简要说明
import com.atlassian.jira.ComponentManager;
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.issue.issuetype.IssueType;
import com.atlassian.jira.issue.IssueManager;
import com.atlassian.jira.issue.fields.FieldManager;
import com.atlassian.jira.issue.CustomFieldManager;
import com.atlassian.jira.issue.fields.IssueLinksSystemField;
import com.atlassian.jira.issue.fields.CustomField;
import java.util.List;
import webwork.action.ActionContext;

import webwork.action.ActionContext;

IssueManager issueManager = ComponentManager.getInstance().getIssueManager();
FieldManager fieldManager = ComponentManager.getInstance().getFieldManager();
CustomFieldManager customFieldManager = ComponentManager.getInstance().getCustomFieldManager();

IssueLinksSystemField linksSystemField = fieldManager.getField("issuelinks");//链接的问题字段


def request = ActionContext.getRequest();
if (request) {
    def params = request.getParameterMap();
    def issueLinkingValue = linksSystemField.getRelevantParams(params) as IssueLinksSystemField.IssueLinkingValue;
    
    List<String> linkedIssueIds = issueLinkingValue.getLinkedIssues();
    Issue linkIssue = null;
    for(String linkedIssueId:linkedIssueIds){
        Issue linkedIssue = issueManager.getIssueObject(linkedIssueId);
        IssueType issueType = linkedIssue.getIssueTypeObject();
        String issueTypeName = issueType.getName();

        //链接的问题类型

        if("用户需求".equals(issueTypeName)){
            linkIssue = linkedIssue;
        }
    }
    if(linkIssue != null){

        CustomField briefDescription = customFieldManager.getCustomFieldObjectByName("需求简要说明");//拿到的自定义字段
        issue.setCustomFieldValue(briefDescription, linkIssue.getCustomFieldValue(briefDescription));//赋值到当前任务
    }

}

例子三  子任务从父级任务中获取相关字段
        类似案列二,只是获取的问题变成父任务了
 //系统集成测试_系统集成测试子任务
//从选择的系统集成测试任务中拷贝一下字段:
//需求提交人
//预计系统集成测试开始日期
import com.atlassian.jira.ComponentManager;
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.issue.issuetype.IssueType;
import com.atlassian.jira.issue.IssueManager;
import com.atlassian.jira.issue.fields.FieldManager;
import com.atlassian.jira.issue.CustomFieldManager;
import com.atlassian.jira.issue.fields.IssueLinksSystemField;
import com.atlassian.jira.issue.fields.CustomField;
import java.util.List;

import java.util.Date;
import java.sql.Timestamp;
import webwork.action.ActionContext;

IssueManager issueManager = ComponentManager.getInstance().getIssueManager();
FieldManager fieldManager = ComponentManager.getInstance().getFieldManager();
CustomFieldManager customFieldManager = ComponentManager.getInstance().getCustomFieldManager();

//IssueLinksSystemField linksSystemField = fieldManager.getField("issuelinks");//链接的问题字段
    Issue  pIssue =  issue.getParentObject();//获取父任务
 
  if(pIssue!=null){
        CustomField reqPerson= customFieldManager.getCustomFieldObjectByName("需求提交人");
        issue.setCustomFieldValue(reqPerson, pIssue.getCustomFieldValue(reqPerson));
        //这里因为两个问题中的自定义字段不同,所以需要进行分别获取到后,进行赋值,如果两个问题的自定义字段是相同的,就不要这么赋值了,同上面的一样
        CustomField planSysTestStartDate = customFieldManager.getCustomFieldObjectByName("预计系统集成测试开始日期");
        CustomField sysTestStartDate = customFieldManager.getCustomFieldObjectByName("系统集成测试开始日期");
        issue.setCustomFieldValue(sysTestStartDate, pIssue.getCustomFieldValue(planSysTestStartDate));
    
  }

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值