TFS2012任务工作项定义 - 每当“剩余工作”为空时,使用“原始估算”更新“剩余工时”

时间:2014-02-05 11:00:51

标签: tfs tfs2012 tfs-workitem

在vs2013上:工具>过程编辑器>工作项类型>从服务器打开WIT。

通过编辑任务工作项规则,我得出了以下xml项定义:

<FieldDefinition name="Remaining Work" refname="Microsoft.VSTS.Scheduling.RemainingWork" type="Double" reportable="measure">
  <WHENCHANGED field="Microsoft.VSTS.Scheduling.OriginalEstimate">
    <COPY for="[global]\Project Collection Valid Users" from="field" field="Microsoft.VSTS.Scheduling.OriginalEstimate" />
  </WHENCHANGED>
</FieldDefinition>

我想要实现的目标更像是这样:

<FieldDefinition name="Remaining Work" refname="Microsoft.VSTS.Scheduling.RemainingWork" type="Double" reportable="measure">
  <WHENCHANGED field="Microsoft.VSTS.Scheduling.OriginalEstimate">
    <WHEN field="Microsoft.VSTS.Scheduling.RemainingWork" value="">
        <COPY for="[global]\Project Collection Valid Users" from="field" field="Microsoft.VSTS.Scheduling.OriginalEstimate" />
    </WHEN>
  </WHENCHANGED>
</FieldDefinition>

问题是我现在没有为我工作(每当我更改原始估计,剩余工作没有更新),我无法弄清楚如何坚​​持WHEN条款。

2 个答案:

答案 0 :(得分:1)

我终于通过witadmin export / import:

更改了我的项目的Task tfs字段定义

在VS2013的开发人员命令提示符

> witadmin exportwitd /collection:http://myTFSserver:8080/tfs/DefaultCollection /p:myTFSProject /n:Task /f:"c:\tfs\Task.xml"

替换Task.xml上的相关部分

  <FIELD name="Remaining Work" refname="Microsoft.VSTS.Scheduling.RemainingWork" type="Double" reportable="measure" formula="sum">
    <WHENCHANGED field="Microsoft.VSTS.Scheduling.OriginalEstimate">
      <COPY for="[global]\Project Collection Valid Users" from="field" field="Microsoft.VSTS.Scheduling.OriginalEstimate" />
    </WHEN>
  </FIELD>

  <FIELD name="Remaining Work" refname="Microsoft.VSTS.Scheduling.RemainingWork" type="Double" reportable="measure" formula="sum">
    <WHEN field="Microsoft.VSTS.Scheduling.RemainingWork" value="">
      <COPY from="field" field="Microsoft.VSTS.Scheduling.OriginalEstimate" />
    </WHEN>
  </FIELD>

然后传达变化

> witadmin importwitd /collection:http://myTFSserver:8080/tfs/DefaultCollection /p:myTFSProject /f:"c:\tfs\Task.xml"

答案 1 :(得分:0)

我想不出用WITD做你想要的方法。

另一个(更复杂的)选项是创建一个部署到TFS的ISubscriber插件。它可以检测您的工作项何时更改,并使用您可以在C#中编写的任何逻辑来适当地更新字段。