2017-10-24 9 views
0

TFS 2017で新しいブールフィールドを使用するように作業項目テンプレートを編集しようとしていますが、ステータスを変更する前に特定のフィールドをtrueに設定します。これを行う方法はありますか? ALLOWEDVALUESとMATCHはサポートされていない可能性があります。TFS 2017ブールフィールドの検証

+0

私はあなたがXAMLビルドTFS 2017年に構築していないチームについて話していると推定?私がこの問題を解決したのは、入力フィールドを検証するインラインPowershellタスクを使用することです。 –

+0

私は作業アイテムテンプレートフィールドについて話しています。私はそれを明確にするために編集します –

+0

それを得ました!あなたが望むことができる唯一の方法は、条件付きルールを作成することです。条件ルールを確認してください。https://docs.microsoft.com/en-us/vsts/work/customize/reference/assign-conditional-based-values-and-rules –

答えて

0

上記のHamidのように要件に基づいて条件付きルールを適用することで可能です。

Booleanは、データ型に過ぎません。カスタムブールフィールドを追加し、そのチェックボックスを追加することができます。

  1. WIT定義のFIELDS セクション内のブールフィールドを追加するには、次の構文を使用します。

    <FIELD name="Triagelc" refname="lc.Triage" type="Boolean" > <DEFAULT from="value" value="True" /> <HELPTEXT>Triage work item</HELPTEXT> </FIELD>

  2. そして フィールドがフォームに表示されるようにするにはFORMセクション内に次の構文を追加します。

    <Control Label="Triagelc" Type="FieldControl" FieldName="lc.Triage" />

    フィールドは、フォーム上のチェックボックスとして表示されます。

  3. その後に出願ターゲットのWhenルールを適用指定 ブールフィールドが指定された値を有する場合、従って、Whenルールは ターゲットフィールドに適用されます。

EG1:に値を設定すると

<FieldDefinition name="Description" refname="System.Description" type="HTML"> 
    <WHEN field="lc.Triage" value="True"> 
    <REQUIRED /> 
    </WHEN> 
</FieldDefinition> 

その後、説明領域がです:

は、タスクの作業項目の種類でDescriptionフィールドの "とき" ルールが適用が必要ですが、空にすることはできません。

EG2:あなたはそれ以外の場合は、ブールフィールド値があるとき、Assigned Toフィールドは読み取り専用である、したがって

<FieldDefinition name="Assigned To" refname="System.AssignedTo" type="String" syncnamechanges="true" reportable="dimension"> 
    <WHEN field="lc.Triage" value="True"> 
    <READONLY /> 
    </WHEN> 
    <ALLOWEXISTINGVALUE /> 
    <HELPTEXT>The person currently owning this task</HELPTEXT> 
</FieldDefinition> 

あなたはまた、他の領域を制限するREADONLYルールを使用することができます既存のユーザーに割り当てることができます。


UPDATE:

EG3:

私たちは、Booleanデータ型と直接それを達成することはできません。回避策としては、さまざまな方法の下に試すことができます。

  • は、この例では「Triagelc」ブールフィールド用( 値としてコピーTrueCopyルールをWhenルールを適用して埋め込みます。したがって、 ステータスがDoneの場合、Triagelcは値をTrueに設定して に自動的に設定し、保存します。しかし、この方法では、値はまだ をfalseに変更することができます。スクリーンショット1以下参照:(この例では、Triagelc フィールド)ブールフィールドの

    にデフォルト値を設定し

    <FieldDefinition name="Triagelc" refname="lc.Triage" type="Boolean"> <WHEN field="System.State" value="Done"> <COPY from="value" value="True" /> </WHEN> <HELPTEXT>Triage work item</HELPTEXT> </FieldDefinition>

  • 、その後、組み込みREADONLYルール でWhenルールを適用します。この方法は、あなたの要件を満たしている必要があります(いったん値を変更することはできません)。スクリーンショット2以下参考:

    <FieldDefinition name="Triagelc" refname="lc.Triage" type="Boolean"> <DEFAULT from="value" value="True" /> <WHEN field="System.State" value="Done"> <READONLY /> </WHEN> <HELPTEXT>Triage work item</HELPTEXT> </FieldDefinition>

はその点に注意してください。

Booleanデータ型のフィールドのみVSTSとTFS 2017.2 およびそれ以降のバージョンでサポートされています。

スクリーンショット1: enter image description here

スクリーンショット2: enter image description here

+0

私の問題は少し異なります。私の問題は、ブールフィールドが真であるときに別のフィールドが必要ではなく、ブールフィールドが真でなければならないということではありません。 –

+0

@StevenBrookes @StevenBrookes上記の例2と似ていますか?あなたは例を見せてもらえますか? –

+0

あなたの例2では、​​Triagelcがtrueの場合、説明を読み取り専用に設定します。ステータスが完了したときに、Triagelcが偽になることはありません。 –

関連する問題