Azure DevOps批量导入工作项时如何设置非‘New’状态
嗨Shubham,我完全理解你不想先把所有工作项导入成New状态再批量更新的困扰——数据量一大的话,重复操作确实太耗精力了。其实ADO的批量工作项导入功能是支持直接设置非New状态的,只要你在导入模板里做对配置就行,具体步骤和注意事项我给你梳理一下:
先确认项目的工作流状态值
不同的项目过程模板(比如Scrum、Agile、CMMI)对应的工作项状态名称是不一样的,比如Scrum里User Story的状态是New/Active/Resolved/Closed,而Agile模板里可能是New/Active/Closed。你需要先在ADO项目里确认目标工作项类型(User Story/Task)的所有可用状态,确保你在模板里填写的状态名称和系统里的完全一致(大小写、空格都不能错)。在导入模板中直接指定目标状态
从ADO的批量导入页面下载官方模板(Excel或CSV格式都可以),找到对应工作项类型的State列(有些模板里可能叫Workflow State),直接在这一列填写你想要的状态,比如Closed或者Active。
另外,如果你的工作流要求状态变更时必须填写关联字段(比如Closed Date、Resolved By、Reason),记得在模板里对应的列也填上符合要求的值——比如设置Closed状态时,Reason列要选项目允许的选项(比如Completed、Deferred),否则导入时会触发工作流规则报错。提前验证工作流规则兼容性
有些项目的工作流会限制状态的直接跳转,比如不允许从New直接跳到Closed,这时候你需要确认模板里的字段是否满足跳转条件。如果导入时出现错误,ADO会在导入结果明细里明确提示哪个字段不符合规则,你可以根据提示调整模板内容后重新导入。先做小批量测试
建议先挑选几行数据做测试导入,确认状态能正确设置、没有规则冲突后,再导入全部数据,这样可以避免因为格式或规则问题导致大量数据导入失败,节省返工时间。
另外还有个小技巧:如果需要还原工作项的原始创建时间、创建人等信息,也可以在模板里的Created Date、Created By列填写对应的值,导入后这些历史信息会被保留,让工作项的状态更贴合实际情况。
备注:内容来源于stack exchange,提问作者Shubham Gupta

