TF26049 导入工作项类型描述时出错

TF26049 error on importing work item type description

目前我正在尝试使用 Visual Studio 进程编辑器在 TFS 2013 中编辑工作项类型描述。我只从服务器导出 WIT,即使我没有做任何更改,当我尝试导入 WIT 时,弹出以下错误消息。

TF26049: The field 'Responsible' has rules REQUIRED and EMPTY that are inconsistent.

我查看了 xml 中的状态、工作流和转换,以检查是否同时使用了 REQUIRED 和 EMPTY 规则,但似乎无法找到导致问题的原因。

这里是 Bug.xml 我正在尝试导入,非常感谢任何帮助:

  <!-- Removed some fields due to being too long-->

  <FIELD name="Assigned To" refname="System.AssignedTo" type="String" syncnamechanges="true" reportable="dimension">
    <ALLOWEXISTINGVALUE />
    <VALIDUSER />
  </FIELD>

  <FIELD name="Responsible" refname="Microsoft.VSTS.CMMI.Responsible" type="String" reportable="dimension">
    <VALIDUSER />
  </FIELD>
</FIELDS>
<WORKFLOW>
  <STATES>
    <STATE value="Active">
      <FIELDS>
        <FIELD refname="System.AssignedTo">
          <ALLOWEXISTINGVALUE />
          <REQUIRED />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
          <REQUIRED />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
          <ALLOWEXISTINGVALUE />
          <REQUIRED />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
          <EMPTY />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
          <ALLOWEXISTINGVALUE />
          <EMPTY />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
          <EMPTY />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ClosedBy">
          <ALLOWEXISTINGVALUE />
          <EMPTY />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.CMMI.RootCause">
          <EMPTY />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.CMMI.Responsible">
          <EMPTY />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ReportedBy">
          <ALLOWEXISTINGVALUE />
          <REQUIRED />
        </FIELD>
        <FIELD refname="VpBug.AnalysisOutcome">
          <WHEN field="VpBug.AnalysisPerformed" value="Yes">
            <REQUIRED />
          </WHEN>
        </FIELD>
      </FIELDS>
    </STATE>
    <STATE value="Resolved">
      <FIELDS>
        <FIELD refname="System.AssignedTo">
          <ALLOWEXISTINGVALUE />
          <REQUIRED />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
          <REQUIRED />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
          <ALLOWEXISTINGVALUE />
          <REQUIRED />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
          <EMPTY />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ClosedBy">
          <ALLOWEXISTINGVALUE />
          <EMPTY />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.CMMI.RootCause">
          <REQUIRED />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.CMMI.Responsible">
          <REQUIRED />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ReportedBy">
          <ALLOWEXISTINGVALUE />
          <REQUIRED />
        </FIELD>
      </FIELDS>
    </STATE>
    <STATE value="Closed">
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
          <REQUIRED />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ClosedBy">
          <ALLOWEXISTINGVALUE />
          <REQUIRED />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.CMMI.RootCause">
          <READONLY />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.CMMI.Responsible">
          <ALLOWEXISTINGVALUE />
          <READONLY />
          <VALIDUSER />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ReportedBy">
          <ALLOWEXISTINGVALUE />
          <REQUIRED />
        </FIELD>
      </FIELDS>
    </STATE>
    <STATE value="Proposed">
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
          <EMPTY />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
          <ALLOWEXISTINGVALUE />
          <EMPTY />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
          <EMPTY />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
          <ALLOWEXISTINGVALUE />
          <EMPTY />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
          <EMPTY />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ClosedBy">
          <ALLOWEXISTINGVALUE />
          <EMPTY />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.CMMI.RootCause">
          <EMPTY />
        </FIELD>
        <FIELD refname="VRP.Environment">
          <ALLOWEXISTINGVALUE />
          <REQUIRED />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.CMMI.Responsible">
          <ALLOWEXISTINGVALUE />
          <READONLY />
          <DEFAULT from="field" field="Microsoft.VSTS.CMMI.Responsible" />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ReportedBy">
          <ALLOWEXISTINGVALUE />
          <REQUIRED />
        </FIELD>
      </FIELDS>
    </STATE>
    <STATE value="Rejected">
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.CMMI.RootCause">
          <READONLY />
          <DEFAULT from="field" field="Microsoft.VSTS.CMMI.RootCause" />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.CMMI.Responsible">
          <READONLY />
          <DEFAULT from="field" field="Microsoft.VSTS.CMMI.Responsible" />
        </FIELD>
      </FIELDS>
    </STATE>
    <STATE value="Pending Deployment">
      <FIELDS>
        <FIELD refname="System.AssignedTo">
          <ALLOWEXISTINGVALUE />
          <REQUIRED />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
          <REQUIRED />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
          <ALLOWEXISTINGVALUE />
          <REQUIRED />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
          <EMPTY />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
          <ALLOWEXISTINGVALUE />
          <EMPTY />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
          <EMPTY />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ClosedBy">
          <ALLOWEXISTINGVALUE />
          <EMPTY />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.CMMI.RootCause">
          <READONLY />
          <WHEN field="VpBug.AnalysisOutcome" value="Software Defect">
            <ALLOWEXISTINGVALUE />
            <REQUIRED />
          </WHEN>
          <DEFAULT from="field" field="Microsoft.VSTS.CMMI.RootCause" />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.CMMI.Responsible">
          <EMPTY />
          <WHEN field="VpBug.AnalysisOutcome" value="Software Defect">
            <ALLOWEXISTINGVALUE />
            <VALIDUSER />
            <REQUIRED />
          </WHEN>
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ReportedBy">
          <ALLOWEXISTINGVALUE />
          <REQUIRED />
        </FIELD>
      </FIELDS>
    </STATE>
  </STATES>
  <TRANSITIONS>
    <TRANSITION from="Proposed" to="Active">
      <REASONS>
        <DEFAULTREASON value="Approved" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
          <ALLOWEXISTINGVALUE />
          <COPY from="currentuser" />
          <VALIDUSER />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
          <SERVERDEFAULT from="clock" />
        </FIELD>
        <FIELD refname="VpBug.AnalysisOutcome">
          <WHEN field="VpBug.AnalysisPerformed" value="Yes">
            <REQUIRED />
          </WHEN>
        </FIELD>
      </FIELDS>
      <ACTIONS>
        <ACTION value="Microsoft.VSTS.Actions.StartWork" />
      </ACTIONS>
    </TRANSITION>
    <TRANSITION from="Active" to="Resolved">
      <REASONS>
        <DEFAULTREASON value="Fixed" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
          <ALLOWEXISTINGVALUE />
          <COPY from="currentuser" />
          <VALIDUSER />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
          <SERVERDEFAULT from="clock" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="Closed" to="Resolved">
      <REASONS>
        <DEFAULTREASON value="Closed by error" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
          <ALLOWEXISTINGVALUE />
          <COPY from="currentuser" />
          <VALIDUSER />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
          <SERVERDEFAULT from="clock" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="Pending Deployment" to="Resolved">
      <REASONS>
        <DEFAULTREASON value="Fixed" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
          <ALLOWEXISTINGVALUE />
          <COPY from="currentuser" />
          <VALIDUSER />
          <REQUIRED />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
          <SERVERDEFAULT from="clock" />
          <REQUIRED />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.CMMI.RootCause">
          <REQUIRED />
          <WHEN field="VpBug.AnalysisOutcome" value="Software Defect">
            <ALLOWEXISTINGVALUE />
            <REQUIRED />
          </WHEN>
        </FIELD>
        <FIELD refname="Microsoft.VSTS.CMMI.Responsible">
          <ALLOWEXISTINGVALUE />
          <REQUIRED />
          <WHEN field="VpBug.AnalysisOutcome" value="Software Defect">
            <ALLOWEXISTINGVALUE />
            <VALIDUSER />
            <REQUIRED />
          </WHEN>
        </FIELD>
      </FIELDS>
      <ACTIONS>
        <ACTION value="Microsoft.VSTS.Actions.Checkin" />
      </ACTIONS>
    </TRANSITION>
    <TRANSITION from="Resolved" to="Closed">
      <REASONS>
        <DEFAULTREASON value="Verified" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
          <ALLOWEXISTINGVALUE />
          <COPY from="currentuser" />
          <VALIDUSER />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ClosedBy">
          <ALLOWEXISTINGVALUE />
          <COPY from="currentuser" />
          <VALIDUSER />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
          <SERVERDEFAULT from="clock" />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
          <SERVERDEFAULT from="clock" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="Rejected" to="Closed">
      <REASONS>
        <DEFAULTREASON value="Not a Defect">
          <FIELDS>
            <FIELD refname="System.Reason">
              <READONLY />
            </FIELD>
          </FIELDS>
        </DEFAULTREASON>
        <REASON value="As Designed" />
        <REASON value="Deferred" />
        <REASON value="Duplicate" />
        <REASON value="Obsolete" />
        <REASON value="Overtaken by events" />
        <REASON value="Unable to Reproduce" />
        <REASON value="Coppied to backlog" />
        <REASON value="Known Issue" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
          <DEFAULT from="clock" />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ClosedBy">
          <DEFAULT from="currentuser" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="" to="Proposed">
      <REASONS>
        <DEFAULTREASON value="New" />
      </REASONS>
      <FIELDS>
        <FIELD refname="System.AssignedTo">
          <ALLOWEXISTINGVALUE />
          <REQUIRED />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.TCM.ReproSteps">
          <REQUIRED />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.CMMI.Responsible">
          <ALLOWEXISTINGVALUE />
          <VALIDUSER />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="Active" to="Proposed">
      <REASONS>
        <DEFAULTREASON value="Unable to Reproduce" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.CMMI.RootCause">
          <EMPTY />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="Resolved" to="Proposed">
      <REASONS>
        <DEFAULTREASON value="Not fixed" />
        <REASON value="Test Failed" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
          <EMPTY />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
          <ALLOWEXISTINGVALUE />
          <EMPTY />
        </FIELD>
      </FIELDS>
      <ACTIONS>
        <ACTION value="Microsoft.VSTS.Actions.StartWork" />
      </ACTIONS>
    </TRANSITION>
    <TRANSITION from="Closed" to="Proposed">
      <REASONS>
        <DEFAULTREASON value="Reoccurred" />
        <REASON value="Reopened by Client" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
          <EMPTY />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
          <ALLOWEXISTINGVALUE />
          <EMPTY />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.CMMI.Responsible">
          <ALLOWEXISTINGVALUE />
          <VALIDUSER />
        </FIELD>
        <FIELD refname="System.AssignedTo">
          <DEFAULT from="currentuser" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
    <TRANSITION from="Rejected" to="Proposed">
      <REASONS>
        <DEFAULTREASON value="Its a Bug" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="Proposed" to="Rejected">
      <REASONS>
        <DEFAULTREASON value="Not a Defect" />
        <REASON value="As Designed" />
        <REASON value="Deferred" />
        <REASON value="Duplicate" />
        <REASON value="Obsolete" />
        <REASON value="Overtaken by events" />
        <REASON value="Unable to Reproduce" />
        <REASON value="Coppied to backlog" />
        <REASON value="Known Issue" />
      </REASONS>
    </TRANSITION>
    <TRANSITION from="Active" to="Pending Deployment">
      <REASONS>
        <DEFAULTREASON value="Pending Deployment" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
          <ALLOWEXISTINGVALUE />
          <COPY from="currentuser" />
          <VALIDUSER />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
          <SERVERDEFAULT from="clock" />
        </FIELD>
      </FIELDS>
    </TRANSITION>
  </TRANSITIONS>
</WORKFLOW>

编辑: 更改 'Pending Deployment' 状态规则解决了问题

看看状态转换规则。如果将它们与 WHEN

结合使用,就会出现一些相互冲突的规则