迁移 Azure DevOps 工作项时出错 "ReflectedWorkItemIDFieldName"
Wrong "ReflectedWorkItemIDFieldName" while migrating Azure DevOps Work Items
我正在测试 azure-devops-migration-tools 并使用 https://azuredevopsdemogenerator.azurewebsites.net/(部件无限制)创建了一个项目。我已经生成了 configuration.json 并更改了源和目标以便我可以测试迁移,但是我在迁移工作项时遇到错误。
[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、empty,但仍然无法迁移工作项。
如何获取特定项目的该字段的值?
谢谢,
布鲁诺
我找到了可能的解决方案。我创建了一个自定义流程,将流程从项目更改为这个新流程并添加一个新字段。这是我在 configuration.json 上使用的字段,现在我可以迁移工作项
快速解决方案: 大多数 ADO 实例对新字段使用前缀 'custom'。在 configuration.json 中尝试“Custom.ReflectedWorkItemId”,看看是否能解决问题。
更多详细信息: 如果没有实际的 configuration.JSON 文件来查看,很难判断。一个可能的问题是您需要使用 ReflectedWorkItemID 字段的实际和完整的内部 'Name'。这不会显示在 ADO 中,也不会在创建过程模板中显示。建议您创建引用自定义字段的查询,并导出 WIQL 文件(查询文件)。导出 WIQL 文件后,您可以打开该文件并查看自定义字段的完整语法。
导出查询:如果您不知道如何执行此操作,可以使用 VisualStudio 来完成。如果您不知道该怎么做,可以安装此扩展程序。这是一个方便的 WIQL import/Export 和编辑器。安装,您的 ADO 查询具有在 WIQL 编辑器中编辑选项。创建一个将您的 'ReflectedWorkItemID' 公开为列的查询,然后在 WIQL 编辑器中编辑该查询并查看反映的工作项 ID 字段的全名。 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 ...
要在“ReflectedWorkItemIDFieldName”中进行迁移,您必须执行以下操作:
"Organization Settings" -> Process -> Select the process where you project are (Basic, Scrum, Agil, or CMMI).
然后单击 3 个点并创建一个新的继承进程。
然后通过继承过程,您可以为每个工作项类型创建一个新字段。您键入的名称(可以是“IronMan”)该名称将出现在您的配置文件中。
我正在测试 azure-devops-migration-tools 并使用 https://azuredevopsdemogenerator.azurewebsites.net/(部件无限制)创建了一个项目。我已经生成了 configuration.json 并更改了源和目标以便我可以测试迁移,但是我在迁移工作项时遇到错误。
[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、empty,但仍然无法迁移工作项。
如何获取特定项目的该字段的值?
谢谢, 布鲁诺
我找到了可能的解决方案。我创建了一个自定义流程,将流程从项目更改为这个新流程并添加一个新字段。这是我在 configuration.json 上使用的字段,现在我可以迁移工作项
快速解决方案: 大多数 ADO 实例对新字段使用前缀 'custom'。在 configuration.json 中尝试“Custom.ReflectedWorkItemId”,看看是否能解决问题。
更多详细信息: 如果没有实际的 configuration.JSON 文件来查看,很难判断。一个可能的问题是您需要使用 ReflectedWorkItemID 字段的实际和完整的内部 'Name'。这不会显示在 ADO 中,也不会在创建过程模板中显示。建议您创建引用自定义字段的查询,并导出 WIQL 文件(查询文件)。导出 WIQL 文件后,您可以打开该文件并查看自定义字段的完整语法。
导出查询:如果您不知道如何执行此操作,可以使用 VisualStudio 来完成。如果您不知道该怎么做,可以安装此扩展程序。这是一个方便的 WIQL import/Export 和编辑器。安装,您的 ADO 查询具有在 WIQL 编辑器中编辑选项。创建一个将您的 'ReflectedWorkItemID' 公开为列的查询,然后在 WIQL 编辑器中编辑该查询并查看反映的工作项 ID 字段的全名。 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 ...
要在“ReflectedWorkItemIDFieldName”中进行迁移,您必须执行以下操作:
"Organization Settings" -> Process -> Select the process where you project are (Basic, Scrum, Agil, or CMMI).
然后单击 3 个点并创建一个新的继承进程。 然后通过继承过程,您可以为每个工作项类型创建一个新字段。您键入的名称(可以是“IronMan”)该名称将出现在您的配置文件中。