0

我正在测试 azure-devops-migration-tools 并使用https://azuredevopsdemogenerator.azurewebsites.net/(部件无限)创建了一个项目。我已经生成了 configuration.json 并更改了 Source 和 Target,以便我可以测试迁移,但是在迁移 Work Items 时出现错误。

[15:14:41 ERR]  Error running query
Microsoft.TeamFoundation.WorkItemTracking.Client.ValidationException: TF51005: The query references a field that does not exist. The error is caused by «ReflectedWorkItemId».

我在“ReflectedWorkItemIDFieldName”字段上尝试了不同的选项,Scrum、Basic、Agile、Custom、空,但仍然无法迁移工作项。

我怎样才能获得为特定项目放在此字段上的值?

谢谢,布鲁诺

4

3 回答 3

1

快速解决方案: 大多数 ADO 实例对新字段使用前缀“自定义”。在您的 configuration.json 中尝试“Custom.ReflectedWorkItemId”,看看是否可以解决问题。

更多详细信息:如果没有实际的 configuration.JSON 文件进行审查,很难判断。一个可能的问题是您需要使用 ReflectedWorkItemID 字段的实际和完整的内部“名称”。这不会显示在 ADO 或创建时的流程模板中。建议您创建一个引用自定义字段的查询,并导出 WIQL 文件(查询文件)。导出 WIQL 文件后,您可以打开该文件并查看自定义字段的完整语法。

导出查询: 如果您不知道如何执行此操作,可以使用 VisualStudio 完成。如果你不知道怎么做,你可以安装这个扩展。这是一个方便的 WIQL 导入/导出和编辑器。安装,并且您的 ADO 查询具有在 WIQL 编辑器中编辑选项。创建一个将您的“ReflectedWorkItemID”公开为列的查询,然后在 WIQL 编辑器中编辑该查询并查看 Reflected Work Items ID Feild 的全名。https://marketplace.visualstudio.com/items?itemName=ottostreifel.wiql-editor

SELECT
    [System.Id],
    [System.WorkItemType],
    [System.Title],
    [System.AssignedTo],
    [System.ChangedBy],
    [Custom.ReflectedWorkItemId]
FROM workitems
WHERE ...
于 2021-08-07T21:01:53.460 回答
0

我找到了一个可能的解决方案。我创建了一个自定义流程,将流程从项目更改为这个新流程并添加一个新字段。这是我在 configuration.json 上使用的字段,现在我可以迁移工作项

于 2021-08-03T09:22:45.797 回答
0

要在“ReflectedWorkItemIDFieldName”中进行迁移,您必须执行以下操作:

 "Organization Settings" -> Process -> Select the process where you project are (Basic, Scrum, Agil, or CMMI).  

然后单击 3 个点并创建一个新的继承进程。然后通过继承的流程,您可以为每个工作项类型创建一个新字段。您键入的名称(可能是“IronMan”)将在您的配置文件中。

于 2021-08-13T20:29:08.093 回答