私はここ数年、TFS をうまく使ってきましたが、解決できないような問題に遭遇しました。バグ作業項目にカスタム フィールド (Ipsum.UTC) を追加しました (TFS 2010 を使用しています)。イテレーション パス (スプリント 1、スプリント 2、スプリント 3、UAT など) が「UAT」に等しい場合に、このフィールドを必須にしたいと考えています。バグが最初に記録されたときにこれが発生するようにしたいので、移行の理由を設定しました。ただし、不適切なルールを使用している可能性があります。
疑似コード: ユーザーが新しいバグ作業項目を記録する場合。ユーザーが反復パス リストから「UAT」を選択した場合、Ipsum.UTC フィールドが必要です。それ以外の場合、Ipsum.UTC フィールドは必要ありません。
明らかに期待どおりに動作しない XML を次に示します。それは整形式ですが、必要なものが得られません:
<Transition from="" to="Untriaged">
<REASONS>
<DEFAULTREASON value="New defect reported">
<FIELDS>
<FIELD refname="System.AssignedTo">
<ALLOWEXISTINGVALUE />
<EMPTY />
</FIELD>
<FIELD refname="Lorum.Build">
<REQUIRED />
</FIELD>
<FIELD refname="Ipsum.UTC">
<REQUIRED />
<WHEN field="System.IterationPath" value="UAT">
<MATCH pattern="UAT" />
</WHEN>
</FIELD>
</FIELDS>
</DEFAULTREASON>
</REASONS>
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.BacklogPriority">
<DEFAULT from="value" value="1000" />
</FIELD>
</FIELDS>
</Transition>