将 TFS 2013 升级到 DevOps 2018。现在 Boards、Backlogs 和 Sprint 不起作用。错误 TF400507

发布于 2025-01-09 18:18:59 字数 14926 浏览 0 评论 0原文

我们将 TFS 2013 服务器升级到 DevOps 2018,现在当我们进入 Boards、Backlogs 和 Sprints 时,我们会收到以下错误:

TF400917:当前配置对此功能无效。在更正配置之前,无法使用此功能。 以下元素包含错误:BugWorkItems/BugWorkItems。 TF400507:每个工作项类型必须支持与 BugWorkItems 中定义的状态之一匹配的初始状态值。以下工作项类型的初始状态不包括 bug 状态配置中定义的任何状态:Bug。

我下载了 processconfig.xml 并查看了 BugWorkItems 部分,但它看起来是正确的。

  <BugWorkItems category="Microsoft.BugCategory" pluralName="Bugs" singularName="Bug">
    <States>
      <State type="Proposed" value="New" />
      <State type="InProgress" value="Active" />
      <State type="Complete" value="Closed" />
      <State type="Resolved" value="Resolved" />
    </States>
  </BugWorkItems>

我还下载了 Bug.xml,但我在文件中没有看到任何带有“初始状态”标签的内容。
所以我不确定“必须支持初始状态值”是什么意思......

这是工作流程部分。

    <WORKFLOW>
  <STATES>
    <STATE value="Active">
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
          <EMPTY />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
          <ALLOWEXISTINGVALUE />
          <EMPTY />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ResolvedReason">
          <EMPTY />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
          <EMPTY />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ClosedBy">
          <ALLOWEXISTINGVALUE />
          <EMPTY />
        </FIELD>
      </FIELDS>
    </STATE>
    <STATE value="Closed">
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ResolvedReason">
          <READONLY />
        </FIELD>
      </FIELDS>
    </STATE>
    <STATE value="Code Review">
      <FIELDS>
        <FIELD refname="Custom.Developer">
          <ALLOWEXISTINGVALUE />
          <REQUIRED for="[global]\Developers" />
          <REQUIRED not="[global]\ITProjectManagers" />
        </FIELD>
      </FIELDS>
    </STATE>
    <STATE value="Acceptance Testing" />
    <STATE value="Beta" />
    <STATE value="On Hold" />
    <STATE value="QA Testing" />
    <STATE value="Ready For Beta" />
    <STATE value="Ready For Prod" />
    <STATE value="Requirement" />
  </STATES>
  <TRANSITIONS>
    <TRANSITION from="Closed" to="Active">
      <REASONS>
        <DEFAULTREASON value="Regression" />
        <REASON value="Reactivated" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
          <ALLOWEXISTINGVALUE />
          <COPY from="currentuser" />
          <VALIDUSER />
          <REQUIRED />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
          <SERVERDEFAULT from="clock" />
        </FIELD>
        <FIELD refname="System.AssignedTo">
          <COPY from="field" field="Microsoft.VSTS.Common.ResolvedBy" />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.StackRank">
          <COPY from="value" value="0" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="Beta" to="Active">
      <REASONS>
        <DEFAULTREASON value="Returned to Development" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="Active" to="Closed">
      <REASONS>
        <DEFAULTREASON value="Happy Customer" />
        <REASON value="Cancelled" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
          <SERVERDEFAULT from="clock" />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ClosedBy">
          <SERVERDEFAULT from="currentuser" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="On Hold" to="Active">
      <REASONS>
        <DEFAULTREASON value="Back in Business" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.StackRank">
          <COPY from="value" value="0" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="On Hold" to="Beta" for="[global]\ITProjectManagers">
      <REASONS>
        <DEFAULTREASON value="Back in Business" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.StackRank">
          <COPY from="value" value="0" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="Acceptance Testing" to="Closed" for="[global]\ITProjectManagers">
      <REASONS>
        <DEFAULTREASON value="Happy Customer" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
          <SERVERDEFAULT from="clock" />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ClosedBy">
          <SERVERDEFAULT from="currentuser" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="QA Testing" to="Beta">
      <REASONS>
        <DEFAULTREASON value="PASSED QA TESTING" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="QA Testing" to="Active">
      <REASONS>
        <DEFAULTREASON value="Back to Development" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.StackRank">
          <COPY from="value" value="0" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="Beta" to="Ready For Prod">
      <REASONS>
        <DEFAULTREASON value="Passed Beta - Ready to Deploy" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="Active" to="Ready For Beta">
      <REASONS>
        <DEFAULTREASON value="Development is done" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="Ready For Beta" to="Active">
      <REASONS>
        <DEFAULTREASON value="Not Ready Yet" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.StackRank">
          <COPY from="value" value="0" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="Ready For Beta" to="QA Testing">
      <REASONS>
        <DEFAULTREASON value="Ready to be moved to Beta" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="Beta" to="On Hold">
      <REASONS>
        <DEFAULTREASON value="Waiting on Resources" />
        <REASON value="Waiting on 3rd Party" />
        <REASON value="Waiting on Development" />
        <REASON value="Waiting on Requirements" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="Ready For Prod" to="On Hold">
      <REASONS>
        <DEFAULTREASON value="Waiting on Resources" />
        <REASON value="Waiting on 3rd Party" />
        <REASON value="Waiting on Development" />
        <REASON value="Waiting on Requirements" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="QA Testing" to="On Hold">
      <REASONS>
        <DEFAULTREASON value="Waiting on Resources" />
        <REASON value="Waiting on 3rd Party" />
        <REASON value="Waiting on Development" />
        <REASON value="Waiting on Requirements" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="Active" to="On Hold">
      <REASONS>
        <DEFAULTREASON value="Waiting on Requirements" />
        <REASON value="Waiting on Development" />
        <REASON value="Waiting on Resources" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.StackRank">
          <COPY from="value" value="1" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="Ready For Beta" to="On Hold">
      <REASONS>
        <DEFAULTREASON value="Waiting for Resources" />
        <REASON value="Waiting for Development" />
        <REASON value="Waiting for Requirements" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="" to="Requirement">
      <REASONS>
        <DEFAULTREASON value="New" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
          <ALLOWEXISTINGVALUE />
          <COPY from="currentuser" />
          <VALIDUSER />
          <REQUIRED />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
          <SERVERDEFAULT from="clock" />
        </FIELD>
        <FIELD refname="System.AssignedTo">
          <DEFAULT from="value" value="Unassigned User" />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.StackRank">
          <DEFAULT from="value" value="25" />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Scheduling.CompletedWork">
          <DEFAULT from="value" value="0" />
        </FIELD>
        <FIELD refname="Custom.TestEstimate">
          <DEFAULT from="value" value="15" />
        </FIELD>
        <FIELD refname="Custom.StepsReproduce">
          <REQUIRED for="[global]\Project Collection Valid Users" />
        </FIELD>
        <FIELD refname="Custom.ServiceAgreement">
          <DEFAULT from="value" value="Bug" />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.TCM.ReproSteps">
          <REQUIRED />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="Requirement" to="Active">
      <REASONS>
        <DEFAULTREASON value="Active" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.StackRank">
          <COPY from="value" value="0" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="Active" to="Code Review">
      <REASONS>
        <DEFAULTREASON value="Code Complete" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="Code Review" to="Ready For Beta">
      <REASONS>
        <DEFAULTREASON value="Passed Code Review" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.StackRank">
          <COPY from="value" value="0" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="Code Review" to="Closed">
      <REASONS>
        <DEFAULTREASON value="Cancelled" />
        <REASON value="Complete" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
          <SERVERDEFAULT from="clock" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="Requirement" to="Closed">
      <REASONS>
        <DEFAULTREASON value="Cancelled" />
        <REASON value="Complete" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="Active" to="Requirement">
      <REASONS>
        <DEFAULTREASON value="Need Requirements" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.StackRank">
          <COPY from="value" value="1" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="On Hold" to="Closed">
      <REASONS>
        <DEFAULTREASON value="Cancelled" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
          <SERVERDEFAULT from="clock" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="On Hold" to="Ready For Prod" for="[global]\ITProjectManagers">
      <REASONS>
        <DEFAULTREASON value="Ready for Production" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="On Hold" to="Ready For Beta">
      <REASONS>
        <DEFAULTREASON value="Ready to Deploy to BETA" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="On Hold" to="QA Testing">
      <REASONS>
        <DEFAULTREASON value="Ready for QA Testing" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.StackRank">
          <COPY from="value" value="0" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="Beta" to="Closed">
      <REASONS>
        <DEFAULTREASON value="Cancelled" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
          <SERVERDEFAULT from="clock" />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ClosedBy">
          <SERVERDEFAULT from="currentuser" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="Ready For Prod" to="Closed">
      <REASONS>
        <DEFAULTREASON value="Cancelled" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
          <SERVERDEFAULT from="clock" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="Ready For Prod" to="Acceptance Testing">
      <REASONS>
        <DEFAULTREASON value="Ready for Acceptance Testing" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="Acceptance Testing" to="Ready For Prod" for="[global]\ITProjectManagers">
      <REASONS>
        <DEFAULTREASON value="Back to QA" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="Code Review" to="Active">
      <REASONS>
        <DEFAULTREASON value="Back to Developer" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="Active" to="Acceptance Testing" for="[global]\ITProjectManagers">
      <REASONS>
        <DEFAULTREASON value="No Development Required" />
      </REASONS>
    </TRANSITION>
  </TRANSITIONS>
</WORKFLOW>

We upgraded our TFS 2013 server to DevOps 2018 and now when we go to Boards, Backlogs, and Sprints we get the following error:

TF400917: The current configuration is not valid for this feature. This feature cannot be used until you correct the configuration.
The following element contains an error: BugWorkItems/BugWorkItems. TF400507: Each work item type must support an initial state value that matches one of the states defined in: BugWorkItems. The following work item types have initial states that do not include any states defined in the bug state configuration: Bug.

I downloaded the processconfig.xml and looked at the BugWorkItems section but it looks correct.

  <BugWorkItems category="Microsoft.BugCategory" pluralName="Bugs" singularName="Bug">
    <States>
      <State type="Proposed" value="New" />
      <State type="InProgress" value="Active" />
      <State type="Complete" value="Closed" />
      <State type="Resolved" value="Resolved" />
    </States>
  </BugWorkItems>

I also downloaded the Bug.xml but I don't see anything in the file with the tag "initial state".
So I'm not sure what it means by "must support an initial state value"...

Here is the WORKFLOW section.

    <WORKFLOW>
  <STATES>
    <STATE value="Active">
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
          <EMPTY />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
          <ALLOWEXISTINGVALUE />
          <EMPTY />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ResolvedReason">
          <EMPTY />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
          <EMPTY />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ClosedBy">
          <ALLOWEXISTINGVALUE />
          <EMPTY />
        </FIELD>
      </FIELDS>
    </STATE>
    <STATE value="Closed">
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ResolvedReason">
          <READONLY />
        </FIELD>
      </FIELDS>
    </STATE>
    <STATE value="Code Review">
      <FIELDS>
        <FIELD refname="Custom.Developer">
          <ALLOWEXISTINGVALUE />
          <REQUIRED for="[global]\Developers" />
          <REQUIRED not="[global]\ITProjectManagers" />
        </FIELD>
      </FIELDS>
    </STATE>
    <STATE value="Acceptance Testing" />
    <STATE value="Beta" />
    <STATE value="On Hold" />
    <STATE value="QA Testing" />
    <STATE value="Ready For Beta" />
    <STATE value="Ready For Prod" />
    <STATE value="Requirement" />
  </STATES>
  <TRANSITIONS>
    <TRANSITION from="Closed" to="Active">
      <REASONS>
        <DEFAULTREASON value="Regression" />
        <REASON value="Reactivated" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
          <ALLOWEXISTINGVALUE />
          <COPY from="currentuser" />
          <VALIDUSER />
          <REQUIRED />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
          <SERVERDEFAULT from="clock" />
        </FIELD>
        <FIELD refname="System.AssignedTo">
          <COPY from="field" field="Microsoft.VSTS.Common.ResolvedBy" />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.StackRank">
          <COPY from="value" value="0" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="Beta" to="Active">
      <REASONS>
        <DEFAULTREASON value="Returned to Development" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="Active" to="Closed">
      <REASONS>
        <DEFAULTREASON value="Happy Customer" />
        <REASON value="Cancelled" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
          <SERVERDEFAULT from="clock" />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ClosedBy">
          <SERVERDEFAULT from="currentuser" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="On Hold" to="Active">
      <REASONS>
        <DEFAULTREASON value="Back in Business" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.StackRank">
          <COPY from="value" value="0" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="On Hold" to="Beta" for="[global]\ITProjectManagers">
      <REASONS>
        <DEFAULTREASON value="Back in Business" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.StackRank">
          <COPY from="value" value="0" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="Acceptance Testing" to="Closed" for="[global]\ITProjectManagers">
      <REASONS>
        <DEFAULTREASON value="Happy Customer" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
          <SERVERDEFAULT from="clock" />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ClosedBy">
          <SERVERDEFAULT from="currentuser" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="QA Testing" to="Beta">
      <REASONS>
        <DEFAULTREASON value="PASSED QA TESTING" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="QA Testing" to="Active">
      <REASONS>
        <DEFAULTREASON value="Back to Development" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.StackRank">
          <COPY from="value" value="0" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="Beta" to="Ready For Prod">
      <REASONS>
        <DEFAULTREASON value="Passed Beta - Ready to Deploy" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="Active" to="Ready For Beta">
      <REASONS>
        <DEFAULTREASON value="Development is done" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="Ready For Beta" to="Active">
      <REASONS>
        <DEFAULTREASON value="Not Ready Yet" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.StackRank">
          <COPY from="value" value="0" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="Ready For Beta" to="QA Testing">
      <REASONS>
        <DEFAULTREASON value="Ready to be moved to Beta" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="Beta" to="On Hold">
      <REASONS>
        <DEFAULTREASON value="Waiting on Resources" />
        <REASON value="Waiting on 3rd Party" />
        <REASON value="Waiting on Development" />
        <REASON value="Waiting on Requirements" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="Ready For Prod" to="On Hold">
      <REASONS>
        <DEFAULTREASON value="Waiting on Resources" />
        <REASON value="Waiting on 3rd Party" />
        <REASON value="Waiting on Development" />
        <REASON value="Waiting on Requirements" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="QA Testing" to="On Hold">
      <REASONS>
        <DEFAULTREASON value="Waiting on Resources" />
        <REASON value="Waiting on 3rd Party" />
        <REASON value="Waiting on Development" />
        <REASON value="Waiting on Requirements" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="Active" to="On Hold">
      <REASONS>
        <DEFAULTREASON value="Waiting on Requirements" />
        <REASON value="Waiting on Development" />
        <REASON value="Waiting on Resources" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.StackRank">
          <COPY from="value" value="1" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="Ready For Beta" to="On Hold">
      <REASONS>
        <DEFAULTREASON value="Waiting for Resources" />
        <REASON value="Waiting for Development" />
        <REASON value="Waiting for Requirements" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="" to="Requirement">
      <REASONS>
        <DEFAULTREASON value="New" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
          <ALLOWEXISTINGVALUE />
          <COPY from="currentuser" />
          <VALIDUSER />
          <REQUIRED />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
          <SERVERDEFAULT from="clock" />
        </FIELD>
        <FIELD refname="System.AssignedTo">
          <DEFAULT from="value" value="Unassigned User" />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.StackRank">
          <DEFAULT from="value" value="25" />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Scheduling.CompletedWork">
          <DEFAULT from="value" value="0" />
        </FIELD>
        <FIELD refname="Custom.TestEstimate">
          <DEFAULT from="value" value="15" />
        </FIELD>
        <FIELD refname="Custom.StepsReproduce">
          <REQUIRED for="[global]\Project Collection Valid Users" />
        </FIELD>
        <FIELD refname="Custom.ServiceAgreement">
          <DEFAULT from="value" value="Bug" />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.TCM.ReproSteps">
          <REQUIRED />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="Requirement" to="Active">
      <REASONS>
        <DEFAULTREASON value="Active" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.StackRank">
          <COPY from="value" value="0" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="Active" to="Code Review">
      <REASONS>
        <DEFAULTREASON value="Code Complete" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="Code Review" to="Ready For Beta">
      <REASONS>
        <DEFAULTREASON value="Passed Code Review" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.StackRank">
          <COPY from="value" value="0" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="Code Review" to="Closed">
      <REASONS>
        <DEFAULTREASON value="Cancelled" />
        <REASON value="Complete" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
          <SERVERDEFAULT from="clock" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="Requirement" to="Closed">
      <REASONS>
        <DEFAULTREASON value="Cancelled" />
        <REASON value="Complete" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="Active" to="Requirement">
      <REASONS>
        <DEFAULTREASON value="Need Requirements" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.StackRank">
          <COPY from="value" value="1" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="On Hold" to="Closed">
      <REASONS>
        <DEFAULTREASON value="Cancelled" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
          <SERVERDEFAULT from="clock" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="On Hold" to="Ready For Prod" for="[global]\ITProjectManagers">
      <REASONS>
        <DEFAULTREASON value="Ready for Production" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="On Hold" to="Ready For Beta">
      <REASONS>
        <DEFAULTREASON value="Ready to Deploy to BETA" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="On Hold" to="QA Testing">
      <REASONS>
        <DEFAULTREASON value="Ready for QA Testing" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.StackRank">
          <COPY from="value" value="0" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="Beta" to="Closed">
      <REASONS>
        <DEFAULTREASON value="Cancelled" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
          <SERVERDEFAULT from="clock" />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ClosedBy">
          <SERVERDEFAULT from="currentuser" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="Ready For Prod" to="Closed">
      <REASONS>
        <DEFAULTREASON value="Cancelled" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
          <SERVERDEFAULT from="clock" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="Ready For Prod" to="Acceptance Testing">
      <REASONS>
        <DEFAULTREASON value="Ready for Acceptance Testing" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="Acceptance Testing" to="Ready For Prod" for="[global]\ITProjectManagers">
      <REASONS>
        <DEFAULTREASON value="Back to QA" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="Code Review" to="Active">
      <REASONS>
        <DEFAULTREASON value="Back to Developer" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="Active" to="Acceptance Testing" for="[global]\ITProjectManagers">
      <REASONS>
        <DEFAULTREASON value="No Development Required" />
      </REASONS>
    </TRANSITION>
  </TRANSITIONS>
</WORKFLOW>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夏日浅笑〃 2025-01-16 18:18:59

Azure DevOps 中的每个进程都有 4 个元状态。这些更高级别的状态必须映射到每个工作项类型中的工作流程状态。

此时,您的 BugWorkItems 具有以下 4 个映射:

 <BugWorkItems category="Microsoft.BugCategory" pluralName="Bugs" singularName="Bug">
    <States>
      <State type="Proposed" value="New" />
      <State type="InProgress" value="Active" />
      <State type="Complete" value="Closed" />
      <State type="Resolved" value="Resolved" />
    </States>
  </BugWorkItems>

在这 4 个映射中,Bug 的 WORKFLOW 中缺少状态 NewResolved定义。

您有几个选项...

  • 您可以选择将Propose 映射到现有工作流程状态,例如Requirement
  • 您可以添加 New 状态来执行 Bug 的工作流程和转换。

这同样适用于 Resolved 状态。

Each process in Azure DevOps has 4 meta-states. These higher level states must be mapped to your workflow states in each work item type.

At this point your BugWorkItems has these 4 mappings:

 <BugWorkItems category="Microsoft.BugCategory" pluralName="Bugs" singularName="Bug">
    <States>
      <State type="Proposed" value="New" />
      <State type="InProgress" value="Active" />
      <State type="Complete" value="Closed" />
      <State type="Resolved" value="Resolved" />
    </States>
  </BugWorkItems>

And of those 4, the state New and Resolved are missing from your Bug's WORKFLOW definition.

You have a few options...

  • You can chose to map Proposed to an existing workflow state, e.g. Requirement.
  • You can add the New state do the Bug's workflow and transitions.

The same applies to the Resolved state.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文