上一篇文章中介绍了在页面上创建子任务时通过Behavior插件实现添加前置任务时自动计算开始日期及到期日的方法,本文中将介绍子任务批量导入时,开始日期及到期日计算的方法。
还是这个需求
开始日期:默认为当前日期+1,若添加了问题链接为”is blocked by”的子任务,则根据所有阻塞任务计算最晚到期日,此时创建issue的开始日期=最晚到期日+1,开始日期也允许自行选择更晚的时间
工期预估:默认为1,允许自行输入,单位为工作日
到期日:根据开始时间+工期预估获得,计算时需剔除周末及节假日
在子任务批量导入时,考虑到精简用户的excel编辑工作量,将excel的字段精简如下:
问题类型 | 问题ID | 概要 | 描述 | 开始日期 | 经办人 | 父问题ID | 预计工期 | “Link Blocks” |
---|
在”Link Blocks”字段可以指定当前任务是哪个”问题ID”对应的子任务的前置任务,例如下表所示:
问题类型 | 问题ID | 概要 | 描述 | 开始日期 | 经办人 | 父问题ID | 预计工期 | “Link Blocks” |
---|---|---|---|---|---|---|---|---|
子任务 | 1 | csv批量导入阻塞任务 | csv批量导入阻塞任务 | 2018/8/17 | echo | SDP-387 | 1 | 2 |
子任务 | 2 | csv批量导入被阻塞任务1 | csv批量导入被阻塞任务1 | echo | SDP-387 | 2 | 3 |
这个功能的实现,需要利用两个插件的功能:Scripts Runner 及 automation。
Scripts Runner中需要用到它的scripted field的功能,automation则是用到其schedule的rule。
Scripted Field配置
脚本型字段配置过程
首先添加两个scripted field字段,分别为latest_begin_date及latest_duedate。
【设置】->【插件】->【Scripts Runner- scripted Field】
点击【Add New Item】,选择 “Create a new Script Field”
在”Create a new Script Field”的界面上,选择Template为”Custom”,然后在”Custom Template”的多行文本框中输入以下内容:
$datePickerFormatter.withStyle($dateTimeStyle.DATE).format($value)
这样返回的字段类型为Date型,而不是缺省提供模板中的datetime型
然后在”Script file”字段中,输入脚本的路径
保存退出。
然后将对应字段的searcher配置为日期时间范围选择器
点击上图中红框框住的链接,进入自定义字段的搜索器配置界面