TFS 2018 过渡字段更新无法正常工作
Posted
技术标签:
【中文标题】TFS 2018 过渡字段更新无法正常工作【英文标题】:TFS 2018 Transition Field Updates Not Working Properly 【发布时间】:2020-04-29 23:54:11 【问题描述】:-
我在我的 TFS 流中创建了两个自定义状态。 (用于反馈和分配)。
我创建了两个自定义字段,用于保存转换到状态后的日期(反馈日期和分配日期)
在过渡到阶段期间,我已将当前服务器时钟的值设置为映射字段。
<FIELD name="Assigned Date" refname="CustomFields.Groundup.Workitem.AssignedDate" type="DateTime" reportable="dimension" />
<FIELD name="Feedback Date" refname="CustomFields.Groundup.Workitem.FeedbackDate" type="DateTime" reportable="dimension" />
<STATE value="Assigned">
</STATE>
<STATE value="For Feedback">
</STATE>
<TRANSITION from="For Feedback" to="Assigned">
<REASONS>
<DEFAULTREASON value="Assigned" />
</REASONS>
<FIELDS>
<FIELD refname="CustomFields.Groundup.Workitem.AssignedDate">
<SERVERDEFAULT from="clock" />
</FIELD>
</FIELDS>
</TRANSITION>
<TRANSITION from="Assigned" to="For Feedback">
<REASONS>
<DEFAULTREASON value="For Feedback" />
</REASONS>
<FIELDS>
<FIELD refname="CustomFields.Groundup.Workitem.FeedbackDate">
<SERVERDEFAULT from="clock" />
</FIELD>
</FIELDS>
</TRANSITION>
两个日期(两个转换的分配日期和反馈日期都会更新)。有人可以将我推向正确的方向为什么它会以这种方式运行以及如何解决它。
当前使用 TFS 2018 On Prem
【问题讨论】:
【参考方案1】:您在两个转换中使用相同的 CustomFields.Groundup.Workitem.AssignedDate 字段。
【讨论】:
是拼写错误。有一些关于字段名称的公司信息,所以不得不调整。实际机智没有那个错误。固定问题【参考方案2】:我已经在 Tfs2018.Update3.2 中使用以下定义进行了测试,它按预期工作。从Assigned
转换到For Feedback
时,字段Feedback Date
更新为当前时间。当从For Feedback
转换到Assigned
时,字段Assigned Date
更新为当前时间。
<FieldDefinition name="Assigned Date" refname="CustomFields.Groundup.Workitem.AssignedDate" type="DateTime" reportable="dimension" />
<FieldDefinition name="Feedback Date" refname="CustomFields.Groundup.Workitem.FeedbackDate" type="DateTime" reportable="dimension" />
<State value="Assigned" />
<State value="For Feedback" />
<Transition from="Assigned" to="For Feedback">
<REASONS>
<DEFAULTREASON value="For Feedback" />
</REASONS>
<FIELDS>
<FIELD refname="CustomFields.Groundup.Workitem.FeedbackDate">
<SERVERDEFAULT from="clock" />
</FIELD>
</FIELDS>
</Transition>
<Transition from="For Feedback" to="Assigned">
<REASONS>
<DEFAULTREASON value="Assigned" />
</REASONS>
<FIELDS>
<FIELD refname="CustomFields.Groundup.Workitem.AssignedDate">
<SERVERDEFAULT from="clock" />
</FIELD>
</FIELDS>
</Transition>
【讨论】:
我的版本是 TFS 2018 Update 2。你认为更新会解决它吗? @TheProvost 不,更新不会解决这个问题。问题出在逻辑上,也许还有其他地方可以更新您的字段。 @Cece Dong - MSFT 矿井更新,但两个日期都更新了。检查它们是否都没有更新? @ShamraiAleksander 你说的另一个地方是什么意思?这是一个新创建的字段,所有更新都在 xml 文件中。快速搜索所有字段名称将告诉我它是否在任何其他部分中用于机智。【参考方案3】:这是非常有趣的情况,但我们无法看到您的工作项类型定义的全部内容。但是,您可以测试解决方法:
-
为您的字段添加新规则 WHENNOT(例如 CustomFields.Groundup.Workitem.FeedbackDate)。
类似这样的规则:
<WHENNOT field="System.State" value="For Feedback">
<READONLY/> //or frozen
</WHENNOT>
【讨论】:
以上是关于TFS 2018 过渡字段更新无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章