Search code examples
tfs-workitemmultivalue

Cannot Create MultiValueControl in TFS 2017


I am updating existing Workitem Template to have a new field that should be "MultiLineControl". Below is what all i did. 1) Changed WorkItem template as

     <FIELD name="IssueOwner" refname="test.IssueOwner" type="String" reportable="dimension" >
      <HELPTEXT>Issue Owner</HELPTEXT>
        <SUGGESTEDVALUES expanditems="true">
        <LISTITEM value="test1" />
        <LISTITEM value="test2" />
        <LISTITEM value="test3" />      
        </SUGGESTEDVALUES>
      </FIELD>

 <Control FieldName="test.IssueOwner" Type="FieldControl"  PreferredType="MultiValueControl" Label="Issue Owner" LabelPosition="Left" />

2) Installed extension First i tried from below location under "Install control on Web Access" https://devblogs.microsoft.com/devops/multivaluelist-control-in-tfs-work-item-tracking/ But then the extension is deprecated for TFS 2017

So then I installed https://marketplace.visualstudio.com/items?itemName=ms-devlabs.vsts-extensions-multivalue-control

But still my field is Simple dropdown. Not sure what i am missing. Can someone plz help

Update 1) I also tried stuff from Entension but it doesn't effect any change. in my Work Item export I have two section in FORM. Layout and WebLayout. The link talks abt changing WebLayout. But how to change Layout as thats what my TFS load when i use it on explorer?


Solution

  • Tested on TFS 2017 (Version 15.117.27414.0), everything works as expected. Please follow below steps to do that:

    1. Install Multivalue control extension.

    2. Export the specific WIT with witadmin tool (you can also use the TFS Process Template Editorif you are using Visual Studio 2015 or 2017, reference this thread for details. ) :
      witadmin exportwitd /collection:CollectionURL /p:Project /n:TypeName /f:FileName

    3. Open the exported xml file with text editor and add an Extensiontag to make the control available to the work item form.

          <Extensions>
              <Extension Id="ms-devlabs.vsts-extensions-multivalue-control" />
          </Extensions>
      

      enter image description here

    4. Add your customized field:

       <FIELD name="IssueOwner" refname="test.IssueOwner" type="String" reportable="dimension" >
        <HELPTEXT>Issue Owner</HELPTEXT>
          <SUGGESTEDVALUES expanditems="true">
          <LISTITEM value="test1" />
          <LISTITEM value="test2" />
          <LISTITEM value="test3" />      
          </SUGGESTEDVALUES>
        </FIELD>
      
    5. Add the ControlContribution tag for your Multivalue control. This example adds it to the "Status" group.

          <Group Label="Status">
            <Control Label="Reason" Type="FieldControl" FieldName="System.Reason" />
            <ControlContribution Label="IssueOwner" Id="ms-devlabs.vsts-extensions-multivalue-control.multivalue-form-control">
                  <Inputs>
                      <Input Id="FieldName" Value="test.IssueOwner" />
                  </Inputs>
            </ControlContribution>                  
          </Group>
      
    6. Import the modified xml file to your project:

      witadmin importwitd /collection:CollectionURL /p:Project /n:TypeName /f:FileName

    7. Check the result:

    enter image description here