После обновления TFS поле заголовка ожидает идентификатора

Я обновился с tfs 2013 update 3 до tfs 2015 update 2. У меня есть две коллекции проектов, одна из которых работает нормально. Другая коллекция вызывает у меня огромные головные боли!

У меня есть командные проекты, использующие настраиваемые шаблоны, но также scrum / agile, и у всех командных проектов есть одна и та же проблема в проблемной коллекции.

Когда я обновил свою старую версию tfs (tfs 2013 update 3), все выглядело нормально, однако в проектах группы сбора данных все поля рабочего элемента «Заголовок» были «00000000-0000-0000-0000-000000000000». Я более подробно изучил проблему, и похоже, что поле system.title ищет «Identity».

При создании нового элемента журнала резервного копирования продукта я ввожу «тест» в поле «Заголовок» и получаю следующую ошибку: «Идентификатор значения« ТЕСТ »для поля« НАЗВАНИЕ »является неизвестным идентификатором». Предыдущая версия TFS (обновление 3 2013 г.), к которой была прикреплена коллекция, тоже работала отлично, без проблем с веб-интерфейсом. Мы экспортировали определения рабочих элементов XML, ни одно из полей «Заголовок» не имеет каких-либо ограничений, связанных со списком пользователей или каким-либо списком в этом отношении - единственное ограничение состоит в том, что поле является обязательным.

У кого-нибудь была эта проблема или могло ли быть какое-либо указание на то, что произошло? Единственное изменение от старой среды к новой - в старой среде был сервер SharePoint.

Просто для подтверждения, все рабочие элементы содержат значение «00000000-0000-0000-0000-000000000000.

Ошибка идентификации - элемент невыполненной работы

System.Title после обновления

Пример элемента Backlog продукта system.title

pbi.layout

<?xml version="1.0" encoding="UTF-8"?>

-<witd:WITD xmlns:witd="http://schemas.microsoft.com/VisualStudio/2008/workitemtracking/typedef" version="1.0" application="Work item type editor">


-<WORKITEMTYPE name="Product Backlog Item">

<DESCRIPTION>Tracks an activity the user will be able to perform with the product.</DESCRIPTION>


-<FIELDS>

<FIELD name="Iteration Path" reportable="dimension" type="TreePath" refname="System.IterationPath"/>

<FIELD name="Iteration ID" type="Integer" refname="System.IterationId"/>

<FIELD name="External Link Count" type="Integer" refname="System.ExternalLinkCount"/>

<FIELD name="Team Project" reportable="dimension" type="String" refname="System.TeamProject"/>

<FIELD name="Hyperlink Count" type="Integer" refname="System.HyperLinkCount"/>

<FIELD name="Attached File Count" type="Integer" refname="System.AttachedFileCount"/>

<FIELD name="Node Name" type="String" refname="System.NodeName"/>

<FIELD name="Area Path" reportable="dimension" type="TreePath" refname="System.AreaPath"/>

<FIELD name="Revised Date" reportable="detail" type="DateTime" refname="System.RevisedDate"/>

<FIELD name="Changed Date" reportable="dimension" type="DateTime" refname="System.ChangedDate"/>

<FIELD name="ID" reportable="dimension" type="Integer" refname="System.Id"/>

<FIELD name="Area ID" type="Integer" refname="System.AreaId"/>

<FIELD name="Authorized As" type="String" refname="System.AuthorizedAs" syncnamechanges="true"/>


-<FIELD name="Title" reportable="dimension" type="String" refname="System.Title">

<REQUIRED/>

</FIELD>

<FIELD name="State" reportable="dimension" type="String" refname="System.State"/>

<FIELD name="Authorized Date" type="DateTime" refname="System.AuthorizedDate"/>

<FIELD name="Watermark" type="Integer" refname="System.Watermark"/>

<FIELD name="Rev" reportable="dimension" type="Integer" refname="System.Rev"/>

<FIELD name="Changed By" reportable="dimension" type="String" refname="System.ChangedBy" syncnamechanges="true"/>

<FIELD name="Reason" reportable="dimension" type="String" refname="System.Reason"/>


-<FIELD name="Assigned To" reportable="dimension" type="String" refname="System.AssignedTo" syncnamechanges="true">

<ALLOWEXISTINGVALUE/>

<VALIDUSER group="[project]\Scrum Team"/>

</FIELD>

<FIELD name="Work Item Type" reportable="dimension" type="String" refname="System.WorkItemType"/>

<FIELD name="Created Date" reportable="dimension" type="DateTime" refname="System.CreatedDate"/>

<FIELD name="Created By" reportable="dimension" type="String" refname="System.CreatedBy" syncnamechanges="true"/>

<FIELD name="Description" type="HTML" refname="System.Description"/>

<FIELD name="History" type="History" refname="System.History"/>

<FIELD name="Related Link Count" type="Integer" refname="System.RelatedLinkCount"/>

<FIELD name="Tags" type="PlainText" refname="System.Tags"/>

<FIELD name="Board Column" reportable="dimension" type="String" refname="System.BoardColumn"/>

<FIELD name="Board Column Done" reportable="dimension" type="Boolean" refname="System.BoardColumnDone"/>

<FIELD name="Board Lane" reportable="dimension" type="String" refname="System.BoardLane"/>


-<FIELD name="Integration Build" reportable="dimension" type="String" refname="Microsoft.VSTS.Build.IntegrationBuild">


-<SUGGESTEDVALUES expanditems="true">

<LISTITEM value="<None>"/>

</SUGGESTEDVALUES>


-<SUGGESTEDVALUES expanditems="true" filteritems="excludegroups">

<GLOBALLIST name="Builds - Software"/>

</SUGGESTEDVALUES>

</FIELD>


-<FIELD name="Description HTML" type="HTML" refname="Microsoft.VSTS.Common.DescriptionHtml">

<DEFAULT value="The User Story must include: A Role, the Requirement and a Justification for the requirement. EXAMPLE USER STORY: As an [Electrical Lead], I want [to be able to navigate to the Results Analyser from a web browser], so that [I can analyse test results]." from="value"/>

</FIELD>

<FIELD name="Backlog Priority" reportable="detail" type="Double" refname="Microsoft.VSTS.Common.BacklogPriority"/>


-<FIELD name="Effort" reportable="measure" type="Double" refname="Microsoft.VSTS.Scheduling.Effort" formula="sum">


-<ALLOWEDVALUES expanditems="true">

<LISTITEM value="1"/>

<LISTITEM value="13"/>

<LISTITEM value="2"/>

<LISTITEM value="3"/>

<LISTITEM value="5"/>

<LISTITEM value="8"/>

</ALLOWEDVALUES>

</FIELD>


-<FIELD name="Business Value" reportable="measure" type="Integer" refname="Microsoft.VSTS.Common.BusinessValue" formula="sum">


-<ALLOWEDVALUES expanditems="true">

<LISTITEM value="1"/>

<LISTITEM value="2"/>

<LISTITEM value="3"/>

<LISTITEM value="4"/>

<LISTITEM value="5"/>

</ALLOWEDVALUES>

<DEFAULT value="3" from="value"/>

</FIELD>


-<FIELD name="Detailed Requirement" type="HTML" refname="Custom.DetailedRequirement">

<HELPTEXT>Detailed Business Requirement</HELPTEXT>

</FIELD>


-<FIELD name="Department" type="String" refname="Custom.Department">

<HELPTEXT>Department</HELPTEXT>

</FIELD>


-<FIELD name="Office" type="String" refname="Custom.Office">

<HELPTEXT>Stakeholder's Office</HELPTEXT>

</FIELD>


-<FIELD name="Telephone Number" type="String" refname="Custom.Telephone">

<HELPTEXT>Telephone Number</HELPTEXT>

</FIELD>


-<FIELD name="Email Address" type="String" refname="Custom.Email">

<HELPTEXT>Stakeholder's email address</HELPTEXT>

</FIELD>


-<FIELD name="Acceptance Test" type="HTML" refname="Custom.AcceptanceTest">

<HELPTEXT>Acceptance Test</HELPTEXT>

</FIELD>


-<FIELD name="Stakeholder" type="String" refname="Custom.StakeholderName">

<HELPTEXT>Stakeholder Name</HELPTEXT>

</FIELD>


-<FIELD name="WorkItem Notes" type="HTML" refname="Custom.WINotes">

<HELPTEXT>Work Item Notes</HELPTEXT>

</FIELD>


-<FIELD name="Dependancy" type="String" refname="Custom.Dependancy">

<HELPTEXT>Story is dependant on another story</HELPTEXT>


-<ALLOWEDVALUES expanditems="true">

<LISTITEM value="No"/>

<LISTITEM value="Yes"/>

</ALLOWEDVALUES>

<DEFAULT value="No" from="value"/>

</FIELD>


-<FIELD name="Relates" type="String" refname="Custom.Relates">

<HELPTEXT>Story relates to another story</HELPTEXT>


-<ALLOWEDVALUES expanditems="true">

<LISTITEM value="No"/>

<LISTITEM value="Yes"/>

</ALLOWEDVALUES>

<DEFAULT value="No" from="value"/>

</FIELD>


-<FIELD name="Support" type="String" refname="Custom.Support">

<HELPTEXT>Related to a Support Ticket</HELPTEXT>


-<ALLOWEDVALUES expanditems="true">

<LISTITEM value="No"/>

<LISTITEM value="Yes"/>

</ALLOWEDVALUES>

<DEFAULT value="No" from="value"/>

</FIELD>


-<FIELD name="Rank" reportable="detail" type="Integer" refname="Custom.Rank">

<HELPTEXT>Delivery Order</HELPTEXT>

</FIELD>


-<FIELD name="Planned Sprint" type="String" refname="Custom.PlannedSprint">


-<ALLOWEDVALUES expanditems="true">

<LISTITEM value="Sprint 1"/>

<LISTITEM value="Sprint 2"/>

<LISTITEM value="Sprint 3"/>

</ALLOWEDVALUES>

</FIELD>


-<FIELD name="Planned Release" type="String" refname="Custom.PlannedRelease">


-<ALLOWEDVALUES expanditems="true">

<LISTITEM value="Rel 1"/>

<LISTITEM value="Rel 2"/>

<LISTITEM value="Rel 3"/>

<LISTITEM value="Rel 4"/>

<LISTITEM value="Rel 5"/>

<LISTITEM value="Rel 6"/>

<LISTITEM value="Rel 7"/>

<LISTITEM value="Rel 8"/>

<LISTITEM value="Rel 9"/>

</ALLOWEDVALUES>

</FIELD>

<FIELD name="Version" type="String" refname="Custom.Version"/>

</FIELDS>


-<WORKFLOW>


-<STATES>


-<STATE value="Accepted">


-<FIELDS>


-<FIELD refname="Microsoft.VSTS.Common.BusinessValue">

<READONLY/>

</FIELD>


-<FIELD refname="Microsoft.VSTS.Scheduling.Effort">

<READONLY/>

</FIELD>

</FIELDS>

</STATE>

<STATE value="Deleted"/>

<STATE value="In Analysis"/>

<STATE value="In Development"/>

<STATE value="In test"/>

<STATE value="New"/>

<STATE value="Pending Approval"/>

<STATE value="Ready For Analysis"/>

<STATE value="Ready for Development"/>

<STATE value="Ready for Signoff"/>

<STATE value="Ready For Test"/>

<STATE value="Test Failed"/>

</STATES>


-<TRANSITIONS>


-<TRANSITION from="Ready for Development" for="[project]\Scrum Team" to="In Development">


-<REASONS>

<DEFAULTREASON value="Backlog Item: Assigned"/>

</REASONS>

</TRANSITION>


-<TRANSITION from="In Development" for="[project]\Scrum Team" to="Ready For Test">


-<REASONS>

<DEFAULTREASON value="Backlog Item: Development Completed"/>

</REASONS>

</TRANSITION>


-<TRANSITION from="Ready For Test" for="[project]\Scrum Team" to="In test">


-<REASONS>

<DEFAULTREASON value="Backlog Item: In Test"/>

</REASONS>

</TRANSITION>


-<TRANSITION from="In test" for="[project]\Scrum Team" to="Ready for Signoff">


-<REASONS>

<DEFAULTREASON value="Backlog Item: QA Tests Completed"/>

</REASONS>

</TRANSITION>


-<TRANSITION from="Ready for Signoff" for="[project]\Scrum Master" to="Accepted">


-<REASONS>

<DEFAULTREASON value="Backlog Item: Stakeholder Accepted"/>

</REASONS>


-<FIELDS>


-<FIELD refname="Custom.Version">

<REQUIRED for="[global]\Project Collection Valid Users"/>

</FIELD>

</FIELDS>

</TRANSITION>


-<TRANSITION from="In test" to="In Development">


-<REASONS>

<DEFAULTREASON value="Backlog Item - Development Issues Found"/>

</REASONS>

</TRANSITION>


-<TRANSITION from="In test" for="[project]\Scrum Team" to="Test Failed">


-<REASONS>

<DEFAULTREASON value="Backlog Item: Failed Quality Assurance"/>

</REASONS>

</TRANSITION>


-<TRANSITION from="Test Failed" for="[project]\Scrum Team" to="In Development">


-<REASONS>

<DEFAULTREASON value="Backlog Item: In Re-test"/>

</REASONS>

</TRANSITION>


-<TRANSITION from="" for="[project]\Scrum Team" to="New">


-<REASONS>

<DEFAULTREASON value="New backlog item"/>

<REASON value="Build Failure"/>

</REASONS>


-<FIELDS>


-<FIELD refname="Microsoft.VSTS.Common.DescriptionHtml">

<DEFAULT value="As a &lt;type of user&gt; I want &lt;some goal&gt; so that &lt;some reason&gt;" from="value"/>

</FIELD>


-<FIELD refname="Microsoft.VSTS.Common.BacklogPriority">

<DEFAULT value="3" from="value"/>

</FIELD>

</FIELDS>

</TRANSITION>


-<TRANSITION from="In Analysis" for="[project]\Product Owner" to="New">


-<REASONS>

<DEFAULTREASON value="Backlog Item: Out of Scope"/>

</REASONS>

</TRANSITION>


-<TRANSITION from="Ready for Development" for="[project]\Scrum Master" to="New">


-<REASONS>

<DEFAULTREASON value="Backlog Item: Out of Scope"/>

</REASONS>

</TRANSITION>


-<TRANSITION from="New" for="[project]\Scrum Team" to="Deleted">


-<REASONS>

<DEFAULTREASON value="Backlog Item: Obsolete"/>

<REASON value="Backlog Item: Created in Error"/>

<REASON value="Backlog Item: Duplicated"/>

</REASONS>

</TRANSITION>


-<TRANSITION from="New" to="In Analysis">


-<REASONS>

<DEFAULTREASON value="-"/>

</REASONS>

</TRANSITION>


-<TRANSITION from="In Analysis" to="Ready for Development">


-<REASONS>

<DEFAULTREASON value="Analysis Complete"/>

</REASONS>

</TRANSITION>


-<TRANSITION from="Deleted" to="New">


-<REASONS>

<DEFAULTREASON value="Deleted in error"/>

</REASONS>

</TRANSITION>


-<TRANSITION from="Ready for Signoff" to="Test Failed">


-<REASONS>

<DEFAULTREASON value="Failed Regression or UAT"/>

</REASONS>

</TRANSITION>


-<TRANSITION from="Ready for Signoff" to="In Analysis">


-<REASONS>

<DEFAULTREASON value="Customer Amendment"/>

</REASONS>

</TRANSITION>

</TRANSITIONS>

</WORKFLOW>


-<FORM>


-<Layout>


-<Group>


-<Column PercentWidth="100">

<Control LabelPosition="Left" Label="&Title:" Type="FieldControl" FieldName="System.Title"/>

<Control LabelPosition="Left" Label="&Sprint:" Type="WorkItemClassificationControl" FieldName="System.IterationPath"/>

<Control LabelPosition="Left" Label="Feature:" Type="WorkItemClassificationControl" FieldName="System.AreaPath"/>

</Column>

</Group>


-<Group>


-<Column PercentWidth="50">


-<Group Label="Status">


-<Column PercentWidth="100">

<Control LabelPosition="Left" Label="Assi&gned To:" Type="FieldControl" FieldName="System.AssignedTo"/>

<Control LabelPosition="Left" Label="&State:" Type="FieldControl" FieldName="System.State"/>

<Control LabelPosition="Left" Label="Reason:" Type="FieldControl" FieldName="System.Reason"/>

<Control LabelPosition="Left" Label="In Version:" Type="FieldControl" FieldName="Custom.Version"/>

</Column>

</Group>

</Column>


-<Column PercentWidth="50">


-<Group Label="Details">


-<Column PercentWidth="100">

<Control LabelPosition="Left" Label="Business Value:" Type="FieldControl" FieldName="Microsoft.VSTS.Common.BusinessValue"/>

<Control LabelPosition="Left" Label="Story Points:" Type="FieldControl" FieldName="Microsoft.VSTS.Scheduling.Effort"/>

<Control LabelPosition="Left" Label="Backlog Priority:" Type="FieldControl" FieldName="Microsoft.VSTS.Common.BacklogPriority"/>

<Control LabelPosition="Left" Label="Rank:" Type="FieldControl" FieldName="Custom.Rank"/>

</Column>

</Group>

</Column>

</Group>


-<Group Label="">


-<Column PercentWidth="20">

<Control LabelPosition="Top" Label="Dependant User Story?" Type="FieldControl" FieldName="Custom.Dependancy"/>

</Column>


-<Column PercentWidth="20">

<Control LabelPosition="Top" Label="Related User Story?" Type="FieldControl" FieldName="Custom.Relates"/>

</Column>


-<Column PercentWidth="20">

<Control LabelPosition="Top" Label="Related Support Ticket?" Type="FieldControl" FieldName="Custom.Support"/>

</Column>

</Group>


-<Group Label="">


-<Column PercentWidth="50">


-<TabGroup>


-<Tab Label="User Story">

<Control LabelPosition="Top" Label="" Type="HtmlFieldControl" FieldName="Microsoft.VSTS.Common.DescriptionHtml"/>

</Tab>


-<Tab Label="Detailed Requirement">

<Control LabelPosition="Left" Label="" Type="HtmlFieldControl" FieldName="Custom.DetailedRequirement" MinimumSize="(0,600)"/>

</Tab>


-<Tab Label="Acceptance Criteria">

<Control LabelPosition="Top" Label="" Type="HtmlFieldControl" FieldName="Custom.AcceptanceTest" MinimumSize="(0,600)"/>

</Tab>


-<Tab Label="Storyboards">


-<Control LabelPosition="Top" Type="LinksControl" Name="StoryboardsControl">


-<LinksControlOptions>


-<LinkColumns>

<LinkColumn RefName="System.Title"/>

<LinkColumn LinkAttribute="System.Links.Comment"/>

</LinkColumns>

<WorkItemLinkFilters FilterType="excludeAll"/>


-<ExternalLinkFilters FilterType="include">

<Filter LinkType="Storyboard"/>

</ExternalLinkFilters>

</LinksControlOptions>

</Control>

</Tab>

</TabGroup>

</Column>


-<Column PercentWidth="50">


-<TabGroup>


-<Tab Label="Tasks">


-<Control LabelPosition="Top" Type="LinksControl" Name="Task">


-<LinksControlOptions>


-<LinkColumns>

<LinkColumn RefName="System.Id"/>

<LinkColumn RefName="System.Title"/>

<LinkColumn RefName="System.AssignedTo"/>

<LinkColumn RefName="System.State"/>

</LinkColumns>


-<WorkItemLinkFilters FilterType="include">

<Filter LinkType="System.LinkTypes.Hierarchy" FilterOn="forwardname"/>

</WorkItemLinkFilters>

<ExternalLinkFilters FilterType="excludeAll"/>


-<WorkItemTypeFilters FilterType="include" Scope="project">

<Filter WorkItemType="Sprint Backlog Task"/>

</WorkItemTypeFilters>

</LinksControlOptions>

</Control>

</Tab>


-<Tab Label="Links">


-<Control LabelPosition="Top" Label="" Type="LinksControl" Name="GeneralLinks">


-<LinksControlOptions>


-<LinkColumns>

<LinkColumn RefName="System.Id"/>

<LinkColumn RefName="System.Title"/>

<LinkColumn RefName="System.AssignedTo"/>

<LinkColumn RefName="System.State"/>

<LinkColumn LinkAttribute="System.Links.Comment"/>

</LinkColumns>

<WorkItemLinkFilters FilterType="includeAll"/>

<ExternalLinkFilters FilterType="includeAll"/>

<WorkItemTypeFilters FilterType="includeAll"/>

</LinksControlOptions>

</Control>

</Tab>


-<Tab Label="Attachments">

<Control LabelPosition="Top" Label="" Type="AttachmentsControl"/>

</Tab>


-<Tab Label="Stakeholder Information">


-<Group Label="Contact Information">


-<Column PercentWidth="100">

<Control LabelPosition="Left" Label="Name:" Type="FieldControl" FieldName="Custom.StakeholderName"/>

<Control LabelPosition="Left" Label="Department:" Type="FieldControl" FieldName="Custom.Department"/>

<Control LabelPosition="Left" Label="Office:" Type="FieldControl" FieldName="Custom.Office"/>

<Control LabelPosition="Left" Label="Telephone:" Type="FieldControl" FieldName="Custom.Telephone"/>

<Control LabelPosition="Left" Label="Email Address:" Type="FieldControl" FieldName="Custom.Email"/>

</Column>

</Group>


-<Group Label="Additional Information">


-<Column PercentWidth="100">

<Control LabelPosition="Left" Label="Notes:" Type="HtmlFieldControl" FieldName="Custom.WINotes"/>

</Column>

</Group>

</Tab>


-<Tab Label="History">

<Control LabelPosition="Top" Label="" Type="WorkItemLogControl" FieldName="System.History" Dock="Fill"/>

</Tab>

</TabGroup>

</Column>

</Group>


-<Group>


-<Column PercentWidth="10">

<Control LabelPosition="Top" Label="Planned Release:" Type="FieldControl" FieldName="Custom.PlannedRelease"/>

</Column>


-<Column PercentWidth="10">

<Control LabelPosition="Top" Label="Planned Sprint:" Type="FieldControl" FieldName="Custom.PlannedSprint"/>

</Column>

</Group>

</Layout>

</FORM>

</WORKITEMTYPE>

</witd:WITD>

person LookBusy    schedule 06.05.2016    source источник
comment
Можете ли вы поделиться определением рабочего элемента для одного из затронутых рабочих элементов? И можно ли запустить witadmin listfields /collection:http://server:8080/tfs/DefaultCollection и опубликовать результат?   -  person jessehouwing    schedule 09.05.2016


Ответы (2)


Согласно вашему снимку экрана, в вашем поле заголовка используется не ссылка system.Title по умолчанию, а ссылка System.AssignedTo. Вам необходимо проверить определение типа рабочего элемента и исправить это.

введите описание изображения здесь

введите описание изображения здесь

person Cece Dong - MSFT    schedule 09.05.2016
comment
См. Последнее изменение - я загрузил system.title для рабочего элемента PBI. - person LookBusy; 09.05.2016
comment
Проверьте вкладку Layout, как показано на скриншоте, который я опубликовал. - person Cece Dong - MSFT; 09.05.2016
comment
Загружено ... см. Ссылку. - person LookBusy; 09.05.2016
comment
Поделитесь определением рабочего элемента для одного из затронутых рабочих элементов как @ jessehouwing, упомянутого в комментарии. - person Cece Dong - MSFT; 10.05.2016
comment
См. Редактирование - я также подтвердил, что поля заголовка все еще присутствуют в SQL, используя: Выберите * from tbl_WorkItemCustomLatest, где Id = ‘‹ PBI Id ›’ - person LookBusy; 11.05.2016

Я знаю, что это старый пост, но он может кому-то помочь в будущем.

У меня возникла эта проблема при обновлении с TFS 2013 до TFS 2017. Проблема была связана с тем, что в некоторых проектах был WIT со следующими строками:

<FIELD refname="System.Title">
<WHEN field="System.WorkItemType" value="Test Case">
  <VALIDUSER for="{cliente_user_group}" />
</WHEN>
</FIELD>

При этом после обновления мы получали этот параметр в поле коллекции System.Title:

>witadmin listfields /collection:{collection} /n:System.Title

...
Synchronizes Identity Name Changes: True

Этот флаг нельзя изменить в System.Title, поэтому нам пришлось вернуться к TFS 2013, чтобы изменить проблемный WIT.

После удаления этих строк из WITD затронутых проектов и повторного обновления проблема больше не возникала.

person António Dente    schedule 05.02.2018