Partager via


Résoudre les erreurs de validation pour l’importation de processus

Azure DevOps Services

Important

Le processus d’importation prend en charge le modèle de processus XML hébergé qui vous permet de gérer les personnalisations via la mise à jour de la définition WIT d’un modèle de processus. Cette fonctionnalité est disponible uniquement pour les organisations migrées vers Azure DevOps Services à l’aide du service d’importation de données Azure DevOps.

Si vous utilisez le modèle de processus d’héritage, vous pouvez personnaliser le suivi de votre travail au moyen de l’interface utilisateur en créant un processus hérité. Si vous utilisez le modèle de processus XML local, vous pouvez personnaliser un modèle de processus : charger ou télécharger un modèle de processus et personnaliser un modèle de processus.

Pour plus d’informations, consultez Personnaliser le suivi du travail.

Pendant l’importation du processus, le processus est validé pour s’assurer que le système fonctionne comme prévu pour le processus personnalisé. Vous recevez une liste de messages d’erreur si le processus échoue.

Processus correctement importé

Si vous avez reçu une erreur de validation lors de la tentative d’importation, résolvez l’erreur avant de réessayer l’importation. Chaque erreur a un lien pour en savoir plus sur l’échec de validation spécifique et des conseils sur la façon de le corriger. Appliquez le correctif de résolution fourni pour le message que vous avez reçu, compressez les fichiers mis à jour et réessayez l’opération d’importation.

Si vous démarrez simplement votre personnalisation, passez en revue les règles de validation fournies.

Conditions préalables

Pour obtenir des conseils sur la personnalisation d’Azure Boards pour s’aligner sur vos besoins métier spécifiques, consultez Configurer et personnaliser Azure Boards.

Catégorie Exigences
Permissions - Pour créer, supprimer ou modifier un processus : membre du groupe Administrateurs de la collection de projets ou possédant les autorisations spécifiques au niveau de la collection Créer un processus, Supprimer le processus, Modifier le processus, ou Supprimer un champ de l'organisation avec l'option Autoriser. Pour plus d’informations, consultez Personnaliser un processus hérité.
- Pour mettre à jour les tableaux : administrateur d’équipe ou un membre du groupe des administrateurs de projet.
Accès - Même si vous disposez d’un accès de base ou inférieur, vous pouvez toujours modifier un processus si quelqu’un vous donne l’autorisation.
- Pour mettre à jour et modifier le type de vos éléments de travail existants : membre du projet.
modèle de processus de projet - Avoir le modèle de processus d’héritage pour la collection de projets contenant le projet.
- Pour migrer des données vers Azure DevOps Services, utilisez le service d’importation de base de données Team Foundation Server.
Connaissances - Connaissance des modèles de personnalisation et de processus.

Utiliser l’IA pour résoudre les erreurs d’importation de processus

L’exemple d’invite suivant pour Copilot Chat vous aide à résoudre les erreurs de validation d’importation de processus et les problèmes de configuration XML. Copiez et collez cette invite dans Copilot Chat, en remplaçant les espaces réservés par vos informations spécifiques.

Pour obtenir la meilleure assistance IA, incluez des détails spécifiques tels que le code d’erreur (TF######), les noms de fichiers affectés, les noms de type d'élément de travail et les noms de référence de champ mentionnés dans une erreur de validation.

I'm getting this Azure DevOps process import error: [PASTE YOUR ERROR MESSAGE HERE]

Process import details:
- Error code: [ERROR CODE like TF402###]
- Affected file: [XML FILE NAME like Bug.xml, ProcessConfiguration.xml]
- Work item type: [WIT NAME if applicable]
- Field reference name: [FIELD REFNAME if applicable]
- Custom namespace: [YOUR CUSTOM NAMESPACE if applicable]

Can you help me troubleshoot this issue? Please provide step-by-step instructions to:
1. Identify the root cause of the validation error
2. Fix the XML configuration or process definition
3. Verify the changes resolve the validation issue

Context: This is for importing a custom process template to Azure DevOps Services using the Hosted XML process model. The error might be related to work item type definitions, field configurations, process configuration, categories, or XML schema violations.

Copilot est alimenté par l’IA, donc les surprises et les erreurs sont possibles. Pour plus d’informations, consultez les FAQ sur l’utilisation générale de Copilot.

Messages d’informations - aucune action n’est requise

TF402555 : le champ [refName] est supprimé.

Le processus que vous importez n’inclut pas le champ nommé dans le processus mis à jour. Par conséquent, il est supprimé dans le cadre de l’opération de mise à jour.

Exemple de scénario

  1. Ajouter un champ personnalisé à l'élément de travail Bug.xml
    <FIELD name="Foo" refname="MyCompany.CustomFields.Foo" type="String" reportable="dimension" />
    
  2. Processus d’importation
  3. Supprimer le champ de Bug.xml
  4. Importer le processus mis à jour

Le système affiche un message d’informations sur le champ à supprimer.
TF402555: Field MyCompany.CustomFields.Foo will be deleted

TF402591 : Le champ portant le nom de référence [refName] ne peut pas être renommé en « [name1] » de « [name2] » dans les processus existants [processName].

Le processus que vous importez contient un champ renommé qui utilise la même refname dans le processus actuel.

Vous ne pouvez pas renommer les noms de champs.

TF402598 : le type d’élément de travail [refName] est supprimé.

Le processus que vous mettez à jour n’inclut pas le WIT nommé qui existe dans le processus actuel. Dans le cadre de la mise à jour du processus existant, le système supprime le WIT nommé du processus en cours.

Exemple de scénario

  1. Créer un nouveau type d’élément de travail appelé « LSI »
    <WORKITEMTYPE name="LSI" refname="My.LSI">  
    
  2. Processus d’importation
  3. Supprimer le type d’élément de travail LSI du processus
  4. Importer le processus mis à jour

Le système affiche un message d’informations sur la suppression.
TF402598: Work item type My.LSI will be deleted

TF402601 : le type d’élément de travail [witName] est renommé [name1] à partir de [name2].

Le processus contient un WIT renommé. Le WIT est renommé dans le processus existant.
Le processus que vous mettez à jour contient un WIT dont le nom a été renommé à partir de celui utilisé dans le processus actuel.
Dans le cadre de la mise à jour du processus existant, le système renomme le WIT dans le processus actuel. Tous les éléments de travail dans les projets existants qui référencent le processus sont également renommés.

Exemple de scénario

  1. Créer un nouveau type d’élément de travail appelé « LSI »
    <WORKITEMTYPE name="LSI" refname="My.LSI">  
    
  2. Processus d’importation
  3. Renommez le type d'élément de travail LSI en Live Site Incident
    <WORKITEMTYPE name="Live Site Incident" refname="My.LSI">  
    
  4. Importer le processus mis à jour

Le système affiche un message d’informations sur le WIT à renommer.
TF402601: Work item type My.LSI will be renamed to 'Live Site Incident' from 'LSI'

Erreurs de fichier diverses

TF402586 : Fichier d’analyse d’erreur : [Message d’erreur]

La syntaxe XML mal formée peut entraîner des erreurs de fichier d’analyse. Des balises fermantes manquantes, des guillemets manquants, des crochets ouverts ou fermés manquants (< ou >) peuvent entraîner une erreur de fichier d’analyse.

À partir du message d’erreur, déterminez et corrigez la source du code XML mal formé.

TF402594 : Le fichier enfreint le schéma avec l’erreur suivante : [Message d’erreur]

Chaque fichier XML du fichier zip de processus doit être conforme au schéma donné. Les erreurs de violation de schéma sont dues à des balises ou attributs XML personnalisés dans le fichier XML. Lisez le message d’erreur pour déterminer la source de violation de schéma et corriger en conséquence.

La définition du schéma pour le suivi des éléments de travail définit tous les éléments enfants de l'élément FORM comme étant des majuscules et tous les autres éléments comme étant des majuscules. Si vous rencontrez des erreurs lors de la validation de vos fichiers de définition de type, vérifiez la structure de casse de vos éléments. En outre, la structure de casse des étiquettes d’ouverture et de fermeture doit respecter les règles pour la syntaxe XML.

Exemples d’erreurs

Balise XML personnalisée :

  <WORKITEMTYPE name="Bug" refname="My.Bug">
    <FOO>Hello World</FOO>
    ...

Attribut supplémentaire ajouté à l’élément XML :

  <WORKITEMTYPE name="Bug" refname="My.Bug" foo="hello world">

VS412450 : erreur de validation de schéma Xml dans [fileName]. [Message d’erreur]

Corrigez l’erreur de schéma dans le fichier nommé.

Erreurs dans le plug-in du modèle de processus

Le ProcessTemplate.xml est le fichier racine qui définit l’intégralité du processus et tous les fichiers de définition XML importés pour ajouter ou mettre à jour un processus. Ce fichier contient tous les plug-ins et groupes de tâches référencés lors de la création d’un projet. Chaque groupe de tâches fait référence à un fichier XML subordonné (souvent dans un sous-dossier) où les tâches spécifiques sont définies. En général, vous spécifiez un groupe de tâches pour chaque plug-in.

Le fichier de définition ProcessTemplate.xml doit être conforme à la syntaxe et aux règles.

VS412457 : impossible de trouver le fichier spécifié « [fileName] » dans le package de processus.

Corrigez le package zip de processus pour inclure le fichier nommé.

VS402452 : le modèle de processus n’a pas spécifié de version ou a spécifié une version non valide.

Pour spécifier une version, modifiez le fichier ProcessTemplate.xml.

Exemple d’erreur

Le fichier ProcessTemplate.xml spécifie le même version GUID que pour le processus Agile, qui est un processus verrouillé.

<ProcessTemplate>
  <metadata>
    <name>Fabrikam Agile</name>
    <description>Use this template to support Fabrikam Agile planning methods.</description>
    <version type="ADCC42AB-9882-485E-A3ED-7678F01F66BC" major="7" minor="36" />

Exemple de résolution

Un GUID différent est spécifié.

<ProcessTemplate>
  <metadata>
    <name>Fabrikam Agile</name>
    <description>Use this template to support Fabrikam Agile planning methods.</description>
    <version type="7710F7A4-1F19-4054-9FBC-D94A5935221E" major="7" minor="1" />

VS412453 : le fichier zip du modèle de traitement ne contient pas le plug-in requis [pluginName].

Tous les fichiers répertoriés dans le fichier ProcessTemplate.xml et ses fichiers de plug-in pris en charge doivent être présents dans le fichier zip de processus.

Utilisez un outil de recherche pour rechercher toutes les instances de filename=value dans l’ensemble de fichiers et dossiers de processus. Ensuite, mettez à jour le plug-in pour supprimer le fichier nommé manquant, ou ajoutez le fichier nommé au dossier de processus auquel il appartient.

 <taskList filename="WorkItem Tracking\WorkItems.xml" />

Exemple d’erreur

Le plug-in WorkItemTracking spécifie fileName="WorkItem Tracking\TypeDefinitions\Epic.xml, mais il n’est pas ajouté au dossier WorkItem Tracking\TypeDefinitions.

     <WORKITEMTYPE fileName="WorkItem Tracking\TypeDefinitions\Epic.xml" />

Exemple de résolution

Ajoutez le fichier Epic.xml au dossier WorkItem Tracking\TypeDefinitions.

VS412454 : Plug-in [pluginName] contient plusieurs taskList{1}, {2}. Un seul taskList est autorisé par plugin.

Corrigez le fichier ProcessTemplate.xml du plug-in nommé pour réduire le nombre tasklist d’éléments définis.

Exemple d’erreur

Le plug-in WorkItemTracking contient deux tasklist instructions.

    <group id="WorkItemTracking" description="Workitem definitions uploading." completionMessage="Work item tracking tasks completed.">
      <dependencies>
        <dependency groupId="Classification" />
        <dependency groupId="Groups" />
      </dependencies>
      <taskList filename="WorkItem Tracking\WorkItems.xml" />
      <taskList filename="WorkItem Tracking\FabrikamWorkItems.xml" />
    </group>

Exemple de résolution

    <group id="WorkItemTracking" description="Workitem definitions uploading." completionMessage="Work item tracking tasks completed.">
      <dependencies>
        <dependency groupId="Classification" />
        <dependency groupId="Groups" />
      </dependencies>
      <taskList filename="WorkItem Tracking\FabrikamWorkItems.xml" />
    </group>

TF402575 : vous ne pouvez inclure qu’un seul fichier de définition de catégorie dans votre processus.

Exemple d’erreur

Le fichier WorkItems.xml contient deux CATEGORIES instructions

  <task id="Categories" name="Categories definitions" plugin="Microsoft.ProjectCreationWizard.WorkItemTracking" completionMessage="Work item type categories created">
    <dependencies>
      <dependency taskId="WITs" />
    </dependencies>
    <taskXml>
      <CATEGORIES fileName="WorkItem Tracking\Categories.xml" />
      <CATEGORIES fileName="WorkItem Tracking\Custom_Categories.xml" />
    </taskXml>
  </task>

Exemple de résolution

Le fichier WorkItems.xml est mis à jour pour contenir une seule CATEGORIES instruction.

  <task id="Categories" name="Categories definitions" plugin="Microsoft.ProjectCreationWizard.WorkItemTracking" completionMessage="Work item type categories created">
    <dependencies>
      <dependency taskId="WITs" />
    </dependencies>
    <taskXml>
      <CATEGORIES fileName="WorkItem Tracking\Custom_Categories.xml" />
    </taskXml>
  </task>

TF402576 : vous ne pouvez inclure qu’un seul fichier de définition ProcessConfiguration dans votre processus.

Exemple d’erreur

Le fichier WorkItems.xml contient des instructions ProjectConfiguration en double.

    <taskXml>
      <PROCESSCONFIGURATION>
        <ProjectConfiguration fileName="WorkItem Tracking\Process\ProcessConfiguration.xml"/>
      </PROCESSCONFIGURATION>
    </taskXml>
    <taskXml>
      <PROCESSCONFIGURATION>
        <ProjectConfiguration fileName="WorkItem Tracking\Process\ProcessConfiguration.xml"/>
      </PROCESSCONFIGURATION>
    </taskXml>

Exemple de résolution

Le fichier WorkItems.xml est mis à jour pour contenir une seule ProjectConfiguration instruction.

    <taskXml>
      <PROCESSCONFIGURATION>
        <ProjectConfiguration fileName="WorkItem Tracking\Process\ProcessConfiguration.xml"/>
      </PROCESSCONFIGURATION>
    </taskXml>

TF402587 : fichier ProcessConfiguration requis manquant.

Le fichier WorkItems.xml spécifie le fichier ProcessConfiguration à charger. Soit le fichier n’est pas spécifié, contient une spécification obsolète, le fichier spécifié est manquant dans le modèle ou le nom du dossier/fichier n’est pas correct.

Exemple d’erreur

La configuration spécifiée est obsolète et spécifie deux fichiers qui ne sont pas contenus dans le dossier Processus.

    <taskXml>
      <PROCESSCONFIGURATION>
        <CommonConfiguration fileName="WorkItem Tracking\Process\CommonConfiguration.xml"/> 
        <AgileConfiguration fileName="WorkItem Tracking\Process\AgileConfiguration.xml"/>
      </PROCESSCONFIGURATION>
    </taskXml>

Exemple de résolution

Le fichier WorkItems.xml est mis à jour pour contenir l’instruction de configuration ProjectConfiguration correcte.

    <taskXml>
      <PROCESSCONFIGURATION>
        <ProjectConfiguration fileName="WorkItem Tracking\Process\ProcessConfiguration.xml"/>
      </PROCESSCONFIGURATION>
    </taskXml>

TF402577 : Champ [refName] spécifie le nom convivial [friendlyName] qui est déjà utilisé par les champs [refName] dans les processus [processNames].

Les noms conviviaux doivent être uniques dans toutes les définitions de champ pour toutes les définitions WIT spécifiées pour tous les processus importés dans Azure DevOps Services.

Les processus nommés contiennent des WIT qui définissent un champ utilisant le nom convivial.

Modifiez la définition WIT dans votre fichier zip de processus qui contient [refName] et spécifiez un autre nom convivial ou faites-le correspondre à un champ existant en cours d’utilisation.

Exemple d’erreur

La définition USERStory WIT contient un FIELD élément pour Fabrikam.Product.Family avec un nom convivial Product.

      <FIELD name="Product" refname="Fabrikam.Product.Family" type="String" reportable="dimension">
        <HELPTEXT>Enter the name of the product family for this story or feature.</HELPTEXT>
      </FIELD>

Toutefois, dans un processus existant, Fabrikam.Product.Versions utilise le nom convivial Product.

      <FIELD name="Product" refname="Fabrikam.Product.Versions" type="String" reportable="dimension">
        <HELPTEXT>Enter the name of the product version for this story or feature.</HELPTEXT>
      </FIELD>

Exemple de résolution

Mettez à jour la définition WIT UserStory pour qu’elle corresponde au champ existant.

      <FIELD name="Product" refname="Fabrikam.Product.Versions" type="String" reportable="dimension">
        <HELPTEXT>Enter the name of the product version for this story or feature.</HELPTEXT>
      </FIELD>

TF402585 : Référence de plug-in WorkItemTracking requise manquante dans le modèle de processus.

Vous devez spécifier le Microsoft.ProjectCreationWizard.WorkItemTracking plug-in dans la metadata section du fichier ProcessTemplate.xml :

Exemple d’erreur

Le Microsoft.ProjectCreationWizard.WorkItemTracking plug-in est manquant dans la plugins section du fichier ProcessTemplate.xml.

   <plugins>
      <plugin name="Microsoft.ProjectCreationWizard.Classification" wizardPage="false" />
      <plugin name="Microsoft.ProjectCreationWizard.Reporting" wizardPage="false" />
      <plugin name="Microsoft.ProjectCreationWizard.Portal" wizardPage="true" />
      <plugin name="Microsoft.ProjectCreationWizard.Groups" wizardPage="false" />
      <plugin name="Microsoft.ProjectCreationWizard.VersionControl" wizardPage="true" />
      <plugin name="Microsoft.ProjectCreationWizard.TestManagement" wizardPage="false" />
      <plugin name="Microsoft.ProjectCreationWizard.Build" wizardPage="false" />
      <plugin name="Microsoft.ProjectCreationWizard.Lab" wizardPage="false" />
    </plugins>

Exemple de résolution

   <plugins>
      <plugin name="Microsoft.ProjectCreationWizard.Classification" wizardPage="false" />
      <plugin name="Microsoft.ProjectCreationWizard.Reporting" wizardPage="false" />
      <plugin name="Microsoft.ProjectCreationWizard.Portal" wizardPage="true" />
      <plugin name="Microsoft.ProjectCreationWizard.Groups" wizardPage="false" />
      <plugin name="Microsoft.ProjectCreationWizard.WorkItemTracking" wizardPage="false" />
      <plugin name="Microsoft.ProjectCreationWizard.VersionControl" wizardPage="true" />
      <plugin name="Microsoft.ProjectCreationWizard.TestManagement" wizardPage="false" />
      <plugin name="Microsoft.ProjectCreationWizard.Build" wizardPage="false" />
      <plugin name="Microsoft.ProjectCreationWizard.Lab" wizardPage="false" />
    </plugins>

Catégories

Le fichier de définition Categories.xml doit être conforme à la syntaxe et aux règles.

TF402546 : La catégorie [categoryName] est manquante dans le fichier de catégories.

Toutes les catégories référencées dans le fichier ProcessConfiguration.xml doivent être définies dans le fichier Categories.xml. En outre, le système exige que le fichier Categories.xml contienne des définitions pour les catégories suivantes :

  • Catégorie des bogues
  • Catégorie de demande de révision de code
  • Catégorie de réponse de révision du code
  • Catégorie de demande de commentaires
  • Catégorie de réponse de commentaires
  • Catégorie des types cachés
  • Catégorie d’exigence
  • Catégorie d’étape partagée
  • Catégorie de paramètres partagés
  • Catégorie de tâche
  • Catégorie de cas de test
  • Catégorie de plan de test
  • Catégorie de suite de tests.

Mettez à jour votre fichier Categories.xml pour définir la catégorie [name] manquante.

Exemple d’erreur

ProcessConfiguration fait référence à la catégorie Épopée, mais elle est manquante dans le fichier de définition Categories.xml.

Exemple de résolution

Epic Category est ajouté au fichier Catégories.

  <CATEGORY name="Epic Category" refname="Microsoft.EpicCategory">
    <DEFAULTWORKITEMTYPE name="Epic" />
  </CATEGORY>

TF402553 : l’élément [name] fait référence à la catégorie [categoryName] qui n’est pas définie dans le fichier catégories.

Mettez à jour votre fichier Categories.xml pour définir la catégorie [categoryName] manquante.

TF402560 : Vous avez défini [n] catégories. Seuls [nn] sont autorisés.

Passez en revue votre fichier Categories.xml pour toutes les CATEGORY instructions d’élément et déterminez celles que vous pouvez supprimer afin de ne pas dépasser la limite autorisée. Ensuite, passez en revue votre fichier ProcessConfiguration.xml pour remplacer les valeurs qui référencent les catégories supprimées.

TF402596 : la catégorie [categoryName] ne définit pas le type d’élément de travail [witName].

Les catégories doivent référencer des WIT définis dans le dossier /WorkItem Tracking/TypeDefinitions et répertoriés comme tâche à charger dans le fichier de plug-in WorkItems.xml.
Passez en revue votre fichier Categories.xml pour obtenir des références à un WIT qui n’est pas inclus dans le dossier /WorkItem Tracking/TypeDefinitions.

Exemple d’erreur

Le nom du WIT référencé pour Microsoft.EpicCategory est mal orthographié.

  <CATEGORY name="Epic Category" refname="Microsoft.EpicCategory">
    <DEFAULTWORKITEMTYPE name="EpicABC" />
  </CATEGORY>

Exemple de résolution

  <CATEGORY name="Epic Category" refname="Microsoft.EpicCategory">
    <DEFAULTWORKITEMTYPE name="Epic" />
  </CATEGORY>

TF402597 : la catégorie personnalisée [categoryName] n’est pas prise en charge, car ProcessConfiguration ne la référence pas.

Vous pouvez uniquement spécifier des catégories personnalisées que vous utilisez pour configurer une fonctionnalité d’outil Agile dans ProcessConfiguration.
Passez en revue votre fichier ProcessConfiguration.xml et déterminez si vous avez manqué d’ajouter la prise en charge d’une catégorie. Sinon, supprimez [categoryName] du fichier Categories.xml.

Exemple d’erreur

ProcessConfiguration ne fait pas référence à Microsoft.EpicCategory, bien que défini dans le fichier de définition Categories.xml.

Exemple de résolution

Ajoutez PortfolioBacklog à ProcessConfiguration pour référencer Microsoft.EpicCategory.

    <PortfolioBacklog category="Microsoft.EpicCategory" pluralName="Epics" singularName="Epic" workItemCountLimit="1000">
      <States>
        <State value="New" type="Proposed" />
        <State value="Active" type="InProgress" />
        <State value="Resolved" type="InProgress" />
        <State value="Closed" type="Complete" />
      </States>
      <Columns>
        <Column refname="System.WorkItemType" width="100" />
        <Column refname="System.Title" width="400" />
        <Column refname="System.State" width="100" />
        <Column refname="Microsoft.AzureDevOps.Scheduling.Effort" width="50" />
        <Column refname="Microsoft.AzureDevOps.Common.BusinessValue" width="50" />
        <Column refname="Microsoft.AzureDevOps.CMMI.RequirementType" width="100" />
        <Column refname="System.Tags" width="200" />
      </Columns>
      <AddPanel>
        <Fields>
          <Field refname="System.Title" />
        </Fields>
      </AddPanel>
    </PortfolioBacklog>

Articles de référence :

Erreurs du plug-in de classification

Le fichier de définition Classification.xml doit être conforme à la syntaxe et aux règles.

TF402511 : le plug-in classification contient le nom de propriété en double : [propertyName].

Exemple d’erreur

Classification.xml fichier contient une deuxième property name="MSPROJ" instruction sous properties l’élément conteneur.

      <properties>
        <property name="MSPROJ" value="Classification\FileMapping.xml" isFile="true" />
        <property name="MSPROJ" value="Classification\Fabrikam_FileMapping.xml" isFile="true" />
        <property name="Process Template" value="Fabrikam Agile"/>
      </properties>

Exemple de résolution

Supprimez l’instruction en double.

      <properties>
        <property name="MSPROJ" value="Classification\Fabrikam_FileMapping.xml" isFile="true" />
        <property name="Process Template" value="Fabrikam Agile"/>
      </properties>

TF402512 : Le fichier [fileName] n’existe pas.

Le fichier spécifié dans le fichier Classification.xml n’est pas présent dans le chemin spécifié ou le chemin d’accès est mal orthographié.

Exemple d’erreur

Le chemin du dossier de classification est mal orthographié.

       <properties>
        <property name="MSPROJ" value="Classification\Fabrikam_FileMapping.xml" isFile="true" />
        <property name="Process Template" value="Agile"/>
      </properties>

Exemple de résolution

      <properties>
        <property name="MSPROJ" value="Classification\Fabrikam_FileMapping.xml" isFile="true" />
        <property name="Process Template" value="Fabrikam Agile"/>
      </properties>

TF402513 : Nom [pathName] dans le plug-in de classification ne correspond pas aux restrictions de nommage TreePath.

Passez en revue les Node éléments que vous avez spécifiés et modifiez les noms pour qu'ils soient conformes aux conventions de nommage prises en charge. Référence : Ajouter et modifier des chemins de zone et d'itération.

Exemple d’erreur

Les noms de chemin d’accès incluent le caractère # qui n’est pas autorisé.

        <Node StructureType="ProjectLifecycle" Name="Iteration" xmlns="">
          <Children>
            <Node StructureType="ProjectLifecycle" Name="Sprint #1" />
            <Node StructureType="ProjectLifecycle" Name="Sprint #2" />
            <Node StructureType="ProjectLifecycle" Name="Sprint #3" />
          </Children>
        </Node>

Exemple de résolution

Les noms des chemins sont corrigés.

        <Node StructureType="ProjectLifecycle" Name="Iteration" xmlns="">
          <Children>
            <Node StructureType="ProjectLifecycle" Name="Sprint 1" />
            <Node StructureType="ProjectLifecycle" Name="Sprint 2" />
            <Node StructureType="ProjectLifecycle" Name="Sprint 3" />
          </Children>
        </Node>

TF402514 : Node StructureType [structureTypeName] dans le plug-in de classification n’est pas pris en charge.

L’attribut StructureType autorise uniquement les valeurs suivantes : ProjectModelHierarchy et ProjectLifecycle.
Passez en revue les Node éléments que vous avez spécifiés et supprimez tous les attributs non pris en charge.

Exemple d’erreur

ProjectLifecycle est mal orthographié.

        <Node StructureType="ProjectLifecycle" Name="Iteration" xmlns="">
          <Children>
            <Node StructureType="ProjectLifecycle" Name="Sprint 1" />
            <Node StructureType="ProjectLifecycle" Name="Sprint 2" />
            <Node StructureType="ProjectLifecycle" Name="Sprint 3" />
          </Children>
        </Node>

Exemple de résolution

Le nom mal orthographié est corrigé.

        <Node StructureType="ProjectLifecycle" Name="Iteration" xmlns="">
          <Children>
            <Node StructureType="ProjectLifecycle" Name="Sprint 1" />
            <Node StructureType="ProjectLifecycle" Name="Sprint 2" />
            <Node StructureType="ProjectLifecycle" Name="Sprint 3" />
          </Children>
        </Node>

TF402515 : un attribut de propriété dans le plug-in de classification est manquant ou non pris en charge.

L’élément property autorise uniquement les attributs suivants : name , value et isFile.
Passez en revue les property éléments que vous avez spécifiés et supprimez tous les attributs non pris en charge.

Exemple d’erreur

L’attribut value est mal orthographié.

       <properties>
        <property name="MSPROJ" value="Classification\Fabrikam_FileMapping.xml" isFile="true" />
        <property name="Process Template" value="Agile" />
      </properties>

Exemple de résolution

L’attribut mal orthographié est corrigé.

      <properties>
        <property name="MSPROJ" value="Classification\Fabrikam_FileMapping.xml" isFile="true" />
        <property name="Process Template" value="Fabrikam Agile"/>
      </properties>

TF402516 : Le plug-in de classification contient plus de deux nœuds de niveau racine, ce qui n'est pas supporté.

Passez en revue les Node éléments que vous avez spécifiés et supprimez des nœuds de niveau racine supplémentaires.

Exemple d’erreur

Classification.xml fichier contient une deuxième Node StructureType="ProjectLifecycle" instruction sous Nodes l’élément conteneur.

      <Nodes>
        <Node StructureType="ProjectLifecycle" Name="Iteration" xmlns="">
          <Children>
            <Node StructureType="ProjectLifecycle" Name="Sprint 1" />
            <Node StructureType="ProjectLifecycle" Name="Sprint 2" />
            <Node StructureType="ProjectLifecycle" Name="Sprint 3" />
          </Children>
        </Node>
        <Node StructureType="ProjectLifecycle" Name="Iteration" xmlns="">
        <Node StructureType="ProjectModelHierarchy" Name="Area" xmlns="" />
      </Nodes>

Exemple de résolution

Supprimez la deuxième instruction.

      <Nodes>
        <Node StructureType="ProjectLifecycle" Name="Iteration" xmlns="">
          <Children>
            <Node StructureType="ProjectLifecycle" Name="Sprint 1" />
            <Node StructureType="ProjectLifecycle" Name="Sprint 2" />
            <Node StructureType="ProjectLifecycle" Name="Sprint 3" />
          </Children>
        </Node>
        <Node StructureType="ProjectModelHierarchy" Name="Area" xmlns="" />
      </Nodes>

TF402523 : Area or Iteration path '[pathName]' in the GroupsandPermissions plug- is missing from the Classification plug-in.

Ajoutez le [pathName] manquant au fichier Classification.xml ou supprimez-le du fichier GroupsandPermissions.xml.

Exemple d’erreur

Le fichier Classification.xml spécifie des sprints, et non des itérations.

GroupsandPermissions.xmlteamSettings spécifie les itérations.

    <teamSettings areaPath="Area">
        <iterationPaths backlogPath="Iteration">
            <iterationPath path="Iteration 1" />
            <iterationPath path="Iteration 2" />
            <iterationPath path="Iteration 3" />
        </iterationPaths>
    </teamSettings>

Toutefois, le Classification.xml spécifie les sprints.

        <Node StructureType="ProjectLifecycle" Name="Iteration" xmlns="">
          <Children>
            <Node StructureType="ProjectLifecycle" Name="Sprint 1" />
            <Node StructureType="ProjectLifecycle" Name="Sprint 2" />
            <Node StructureType="ProjectLifecycle" Name="Sprint 3" />
          </Children>
        </Node>

Exemple de résolution

Mettez à jour GroupsandPermissions.xml pour utiliser des sprints.

    <teamSettings areaPath="Area">
        <iterationPaths backlogPath="Iteration">
            <iterationPath path="Sprint 1" />
            <iterationPath path="Sprint 2" />
            <iterationPath path="Sprint 3" />
        </iterationPaths>
    </teamSettings>

Note

Les types de liens personnalisés ne sont pas pris en charge dans le processus d’importation actuel.

Passez en revue votre fichier de plug-in WorkItems.xml pour toutes les LINKTYPE instructions d’élément. Supprimez les instructions associées aux types de liens personnalisés afin de ne pas dépasser la limite autorisée. Ensuite, supprimez le fichier de définition de type de lien correspondant du dossier LinkTypes.

Supprimez également toutes les références aux types de liens personnalisés que vous avez ajoutés à une définition WIT dans une LinksControlOptions section sous la FORM section.

Passez en revue votre fichier de plug-in WorkItems.xml pour toutes les LINKTYPE instructions d’élément. Supprimez les instructions qui spécifient un type de lien personnalisé. Ensuite, supprimez le fichier de définition de type de lien correspondant du dossier LinkTypes.

Les instructions d’élément suivantes LINKTYPE dans le fichier de plug-in WorkItems.xml sont valides :

      <LINKTYPES>
        <LINKTYPE fileName="WorkItem Tracking\LinkTypes\Affects.xml" />
        <LINKTYPE fileName="WorkItem Tracking\LinkTypes\SharedStep.xml" />
        <LINKTYPE fileName="WorkItem Tracking\LinkTypes\TestedBy.xml" />
        <LINKTYPE fileName="WorkItem Tracking\LinkTypes\SharedParameterLink.xml" />
      </LINKTYPES>

Listes globales

Note

Les listes globales ne sont pas prises en charge dans la fonctionnalité de processus d’importation actuelle.

TF402564 : Vous avez défini [n] des listes globales. Seuls [nn] sont autorisés.

Un ou plusieurs WIT définis dans le modèle de processus personnalisé contiennent un GLOBALLIST élément. Recherchez dans vos fichiers de définition WIT et remplacez tous GLOBALLIST les éléments par ALLOWEDVALUES ou SUGGESTEDVALUES éléments.

TF402565 : vous avez défini [n] des éléments dans la liste globale [globalListName]. Un maximum de [nn] est autorisé.

L’élément nommé GLOBALLIST contient plus d’éléments qu'autorisés. Réduisez le nombre d’éléments de liste contenus dans l’élément GLOBALLIST ou segmentez la liste globale en deux éléments ou plus afin qu'aucune liste ne dépasse le nombre maximal d’éléments autorisés.

Il traite la configuration

Le fichier de définition ProcessConfiguration.xml doit être conforme à la syntaxe et aux règles décrites dans Informations de référence sur l’élément XML ProcessConfiguration.

TF402543 : l’élément [elementName] nécessite que vous mappiez exactement un état de flux de travail à meta-état [metastateName].

Mettez à jour la States section dans l’élément nommé dans le fichier ProcessConfiguration.xml pour fournir le mappage de méta-état manquant ou supprimer des mappages supplémentaires.

Exemple d’erreur

Un élément ProcessConfiguration.xml RequirementBacklog n'a pas un mappage de méta-état pour type="Proposed".

<RequirementBacklog category="Microsoft.RequirementCategory" pluralName="Backlog items" singularName="Backlog item">
   <States>
      <State value="Committed" type="InProgress" />
      <State value="Done" type="Complete" />
   </States>
 . . .
</RequirementBacklog >

Exemple de résolution

Les mappages de métastate manquants ont été ajoutés.

<RequirementBacklog category="Microsoft.RequirementCategory" pluralName="Backlog items" singularName="Backlog item">
   <States>
      <State value="New" type="Proposed" />
      <State value="Committed" type="InProgress" />
      <State value="Done" type="Complete" />
   </States>
 . . .
</RequirementBacklog >

TF402547 : l’élément [elementName] nécessite que pour le type d’élément de travail [witName] vous mappiez au moins un état à meta-état [metastateName].

Passez en revue les états WORKFLOW définis pour le WIT nommé, puis mettez à jour la section States dans l'élément nommé du fichier ProcessConfiguration.xml afin de fournir le mappage de métastate manquant pour le WIT nommé.

TF402548 : l’élément [elementName] nécessite que vous mappiez au moins un état de flux de travail à meta-état [metastateName].

Pour fournir le mappage de métastate manquant, mettez à jour la States section dans l’élément nommé dans le fichier ProcessConfiguration.xml.

Exemple d’erreur

Un élément ProcessConfiguration.xml RequirementBacklog n'a pas un mappage de méta-état pour type="InProgress".

<RequirementBacklog category="Microsoft.RequirementCategory" pluralName="Backlog items" singularName="Backlog item">
   <States>
      <State value="New" type="Proposed" />
      <State value="Done" type="Complete" />
   </States>
 . . .
</RequirementBacklog >

Exemple de résolution

Les mappages de métastate manquants ont été ajoutés.

<RequirementBacklog category="Microsoft.RequirementCategory" pluralName="Backlog items" singularName="Backlog item">
   <States>
      <State value="New" type="Proposed" />
      <State value="Committed" type="InProgress" />
      <State value="Done" type="Complete" />
   </States>
 . . .
</RequirementBacklog >

TF402550 : l’élément [elementName] inclut plus d'un mappage de méta-état pour l’état du flux de travail [stateName].

La valeur metastate ne peut pas être mappée à plusieurs états de flux de travail.

Exemple d’erreur

Un élément ProcessConfiguration.xml RequirementBacklog contient deux mappages de métastate pour value="Active".

<RequirementBacklog category="Microsoft.RequirementCategory" pluralName="Stories" singularName="Story">
   <States>
      <State value="Active" type="Proposed" />
      <State value="Active" type="InProgress" />
      <State value="Resolved" type="InProgress" />
      <State value="Closed" type="Complete" />
   </States>
 . . .
</RequirementBacklog >

Exemple de résolution

Les mappages des métastates ont été corrigés.

<RequirementBacklog category="Microsoft.RequirementCategory" pluralName="Stories" singularName="Story">
   <States>
      <State value="New" type="Proposed" />
      <State value="Active" type="InProgress" />
      <State value="Resolved" type="InProgress" />
      <State value="Closed" type="Complete" />
   </States>
 . . .
</RequirementBacklog >

TF402551 : le type d’élément de travail [witName] ne définit pas l’état du flux de travail [stateName], ce qui est requis, car ProcessConfiguration le mappe à un métastate pour l’élément [elementName].

Pour ajouter les éléments STATE et TRANSITION manquants, corrigez soit le fichier ProcessConfiguration.xml soit la section WORKFLOW du WIT nommé.

Exemple d’erreur

L’élément ProcessConfiguration.xml RequirementBacklog spécifie value="Committed", mais UserStory.xml ne définit pas Commit comme état.

<RequirementBacklog category="Microsoft.RequirementCategory" pluralName="Stories" singularName="Story">
   <States>
      <State value="New" type="Proposed" />
      <State value="Committed" type="InProgress" />
      <State value="Active" type="InProgress" />
      <State value="Resolved" type="InProgress" />
      <State value="Closed" type="Complete" />
   </States>
 . . .
</RequirementBacklog >

Exemple de résolution

Suppression de l'élément State pour Committed.

<RequirementBacklog category="Microsoft.RequirementCategory" pluralName="Stories" singularName="Story">
   <States>
      <State value="New" type="Proposed" />
      <State value="Active" type="InProgress" />
      <State value="Resolved" type="InProgress" />
      <State value="Closed" type="Complete" />
   </States>
 . . .
</RequirementBacklog >

TF402552 : l'élément [elementName] nécessite que pour le type d’élément de travail [witName] vous mappiez exactement un état à meta-état [metastateName] pour les états suivants : [stateNames].

Passez en revue la STATES section du fichier ProcessConfiguration.xml pour l’élément nommé et vérifiez que chaque état répertorié dans le message d’erreur est présent et mappé à un méta-état.

Exemple d’erreur

nUn élément ProcessConfiguration.xml RequirementBacklog n'a pas l’état New qui existe sur le User Story type d’élément de travail. Il doit figurer dans la STATES liste mappée à type=Proposed".

<RequirementBacklog category="Microsoft.RequirementCategory" pluralName="Stories" singularName="Story">
   <States>
      <State value="Active" type="InProgress" />
      <State value="Resolved" type="InProgress" />
      <State value="Closed" type="Complete" />
   </States>
 . . .
</RequirementBacklog >

Exemple de résolution

Le mappage des métastates est corrigé.

<RequirementBacklog category="Microsoft.RequirementCategory" pluralName="Stories" singularName="Story">
   <States>
      <State value="New" type="Proposed" />
      <State value="Active" type="InProgress" />
      <State value="Resolved" type="InProgress" />
      <State value="Closed" type="Complete" />
   </States>
 . . .
</RequirementBacklog >

TF402554 : l'élément [elementName] spécifie un méta-état non pris en charge [metastateName].

Passez en revue la STATES section du fichier ProcessConfiguration.xml pour l’élément nommé et supprimez ou corrigez le méta-état nommé.

Exemple d’erreur

Un élément ProcessConfiguration.xml RequirementBacklog contient un mappage de méta-état mal orthographié pour type=Proposed".

<RequirementBacklog category="Microsoft.RequirementCategory" pluralName="Stories" singularName="Story">
   <States>
      <State value="New" type="Proposed" />
      <State value="Active" type="InProgress" />
      <State value="Resolved" type="InProgress" />
      <State value="Closed" type="Complete" />
   </States>
 . . .
</RequirementBacklog >

Exemple de résolution

Le mappage des métastates est corrigé.

<RequirementBacklog category="Microsoft.RequirementCategory" pluralName="Stories" singularName="Story">
   <States>
      <State value="New" type="Proposed" />
      <State value="Active" type="InProgress" />
      <State value="Resolved" type="InProgress" />
      <State value="Closed" type="Complete" />
   </States>
 . . .
</RequirementBacklog >

TF402571 : l’élément obligatoire [elementName] est manquant dans Process Configuration.

Éditez le fichier ProcessConfiguration.xml pour ajouter l’élément nommé manquant.

Revoir la référence des éléments XML de ProcessConfiguration pour les éléments requis.

TF402572 : Impossible de trouver le fichier spécifié dans le pack de modèle de processus.

Un fichier spécifié dans un fichier plug-in pour le chargement est manquant dans le fichier zip. Passez en revue tous les fichiers spécifiés pour le chargement et vérifiez qu’ils sont inclus dans le fichier zip de processus.

Revoir la référence des éléments XML de ProcessConfiguration pour les éléments requis.

TF402574 : ProcessConfiguration ne spécifie pas de TypeField[typeField] requis.

Éditez le fichier ProcessConfiguration.xml pour ajouter l’élément nommé manquant TypeField.

Revoir la référence des éléments XML de ProcessConfiguration pour les éléments TypeField requis.

Exemple

Le processus Scrum spécifie les éléments suivants TypeField. Si l’un de ces éléments est manquant, vous recevez une erreur TF402574.

<TypeFields>
    <TypeField refname="System.AreaPath" type="Team" />
    <TypeField refname="Microsoft.AzureDevOps.Scheduling.RemainingWork" type="RemainingWork" format="format h" />
    <TypeField refname="Microsoft.AzureDevOps.Common.BacklogPriority" type="Order" />
    <TypeField refname="Microsoft.AzureDevOps.Scheduling.Effort" type="Effort" />
    <TypeField refname="Microsoft.AzureDevOps.Common.Activity" type="Activity" />
    <TypeField refname="Microsoft.AzureDevOps.Feedback.ApplicationStartInformation" type="ApplicationStartInformation" />
    <TypeField refname="Microsoft.AzureDevOps.Feedback.ApplicationLaunchInstructions" type="ApplicationLaunchInstructions" />
    <TypeField refname="Microsoft.AzureDevOps.Feedback.ApplicationType" type="ApplicationType">
        <TypeFieldValues>
            <TypeFieldValue value="Web application" type="WebApp" />
            <TypeFieldValue value="Remote machine" type="RemoteMachine" />
            <TypeFieldValue value="Client application" type="ClientApp" />
        </TypeFieldValues>
    </TypeField>
</TypeFields>

TF402588 : plusieurs backlogs de portefeuille [backlogNames] ont défini [backlogName] comme leur parent. Un backlog parent peut n'avoir qu'un seul backlog enfant.

Un seul backlog de portefeuille enfant peut mapper à un seul backlog parent.

Éditez ProcessConfiguration pour corriger les spécifications du backlog parent-enfant.

Exemple d’erreur

  <PortfolioBacklog category="Microsoft.EpicCategory" parent="Microsoft.InitiativeCategory" pluralName="Epics" singularName="Epic">
    ...
  </PortfolioBacklog>

  <PortfolioBacklog category="Microsoft.FeatureCategory" parent="Microsoft.InitiativeCategory" pluralName="Features" singularName="Feature">
    ...
  </PortfolioBacklog>

Exemple de résolution

Pour pointer vers le backlog Epic, changez le parent sur le backlog Feature.

  <PortfolioBacklog category="Microsoft.EpicCategory" parent="Microsoft.InitiativeCategory" pluralName="Epics" singularName="Epic">
    ...
  </PortfolioBacklog>

  <PortfolioBacklog category="Microsoft.FeatureCategory" parent="Microsoft.EpicCategory" pluralName="Features" singularName="Feature">
    ...
  </PortfolioBacklog>

TF402589 : le backlog de portefeuille [backlogName] fait référence au backlog de portefeuille parent non défini [backlogName ].

La définition ProcessConfiguration.xml contient une parent valeur qui fait référence à un backlog de portefeuille non défini.

Exemple d’erreur

  <PortfolioBacklog category="Microsoft.FeatureCategory" parent="Microsoft.EpicCategory" pluralName="Features" singularName="Feature">

Exemple de résolution

Ajoutez l’épopée PortfolioBacklog au fichier ProcessConfiguration.xml.

  <PortfolioBacklog category="Microsoft.EpicCategory" pluralName="Epics" singularName="Epic">
    <States>
      <State value="New" type="Proposed" />
      <State value="Active" type="InProgress" />
      <State value="Resolved" type="InProgress" />
      <State value="Closed" type="Complete" />
    </States>
    <Columns>
      <Column refname="System.WorkItemType" width="100" />
      <Column refname="System.Title" width="400" />
      <Column refname="System.State" width="100" />
      <Column refname="Microsoft.AzureDevOps.Common.BusinessValue" width="50" />
      <Column refname="Microsoft.AzureDevOps.CMMI.RequirementType" width="100" />
      <Column refname="System.Tags" width="200" />
    </Columns>
  </PortfolioBacklog>

TF402590 : plusieurs backlogs de portefeuille [Backlog 1, Backlog 2] ne définissent pas leur parent.

Un seul backlog de portefeuille, le backlog principal, peut être sans parent. Tous les autres backlogs doivent inclure un attribut et une valeur parent="Microsoft.FooCategory".

Exemple de résolution

  <PortfolioBacklog category="Microsoft.FeatureCategory" parent="Microsoft.EpicCategory" pluralName="Features" singularName="Feature">

402595 : Trop de backlogs de portefeuille sont définis. Au maximum 5 sont autorisés.

Éditez le fichier ProcessConfiguration.xml pour supprimer les éléments supplémentaires PortfolioBacklog de la PortfolioBacklogs section.

Pour plus d’informations, consultez les Informations de référence des éléments XML ProcessConfiguration.

TF400506 : cet élément définit les états des éléments de travail qui représentent des bogues ou des défauts.

Cette erreur se produit lorsque la BugWorkItems section est mal configurée. Chaque état défini pour un type d’élément de travail inclus dans le Microsoft.BugCategory doit exister dans l’ensemble de valeurs d’état définies dans la BugWorkItems section. Par exemple, si les états suivants sont définis pour les types d’éléments de travail définis pour le type d’élément de travail bogue—Nouveau, Approuvé, Validé, Terminé—alors la section BugWorkItems doit être configurée comme suit :

  <BugWorkItems category="Microsoft.BugCategory" pluralName="Bugs" singularName="Bug">
    <States>
    <States>
      <State value="New" type="Proposed" />
      <State value="Approved" type="Proposed" />
      <State value="Committed" type="InProgress" />
      <State value="Done" type="Complete" />
    </States>
  </BugWorkItems>

Pour plus d'informations, voir la référence de l'élément XML ProcessConfiguration.

TF400507 : chaque type d’élément de travail doit prendre en charge une valeur d’état initiale qui correspond à l’un des états définis dans : BugWorkItems.

Cette erreur se produit lorsqu’un type d’élément de travail inclus dans Microsoft.BugCategory spécifié un état initial qui n’est pas inclus dans la BugWorkItems section du fichier XML ProcessConfiguration. Corrigez les états du flux de travail de définition XML pour les types d’éléments de travail nommés ou mettez à jour la BugWorkItems section pour inclure l’état manquant.

Pour plus d'informations, voir la référence de l'élément XML ProcessConfiguration.

TF400572 : les paramètres du processus de projet doivent être configurés pour que cette fonctionnalité soit utilisée.

Cette erreur provient des anciens modèles, avant que les paramètres du processus de projet n’existaient. Essayez d’ajouter le fichier XML ProcessConfiguration au modèle de processus.

Types d'éléments de travail

TF402570 : Vous avez défini [n] types d’éléments de travail. Au maximum [witLimit] sont autorisés.

Vous avez défini davantage de WIT autorisés dans le processus. Passez en revue votre fichier WorkItems.xml et réduisez le nombre WORKITEMTYPE d'instructions qu’il contient et supprimez les fichiers de définition WIT associés du processus.

TF402573 : le type d’élément de travail WIT ne spécifie pas l’attribut refname requis.

Les types d’éléments de travail (Bogue, Histoire utilisateur, Tâche, etc.) nécessitent l'attribut refname. La valeur refname doit être unique et ne peut contenir aucun espace de noms réservé. Les espaces de noms System.XXX et Microsoft.AzureDevOps.XXX sont réservés par Azure DevOps.

Exemple d’erreur

<WORKITEMTYPE name="Bug">

Exemple de résolution

<WORKITEMTYPE name="Bug" refname="MyCompany.Bug">

TF402599 : le nom du type d’élément de travail refname [refName] n’est pas valide, car il utilise un espace de noms non autorisé [espace de noms].

Les noms de référence des champs personnalisés et des WIT ne peuvent pas utiliser d’espaces de noms réservés : Système. XXX et Microsoft.AzureDevOps. XXX.

Modifiez l'attribut refname du WIT nommé.

Exemple d’erreur

<FIELD name="Custom Field" refname="Microsoft.AzureDevOps.CustomField" type="String" />

Exemple de résolution

<FIELD name="Custom Field" refname="*CustomNamespace.CustomField*" type="String" />

TF402600 : le nom de référence du type d’élément de travail [refName] n’est pas valide. Les noms de référence de type d’élément de travail doivent contenir uniquement des lettres, aucun espace et au moins une période (.)

Les noms de référence WIT doivent respecter les conventions d’affectation de noms établies : seules les lettres, aucun espace et au moins une période (.)

Modifiez l'attribut refname du WIT nommé pour répondre aux exigences de dénomination.

Exemple d’erreur

<WORKITEMTYPE name="Bug" refname="MyCompanyBug32">

Exemple de résolution

<WORKITEMTYPE name="Bug" refname="MyCompany.Bug">

Champs d'élément de travail

TF402538 : la règle de champ [ruleName] n’est pas prise en charge.

Modifiez vos définitions WIT pour supprimer la règle nommée. Les règles suivantes ne sont pas prises en charge pour l’importation dans Azure DevOps : MATCH, CANNOTLOSEVALUE, PROHIBITEDVALUES, et NOTSAMEAS.

TF402539 : le champ [refName] autorise uniquement les règles suivantes : [ruleNames].

Modifiez vos définitions WIT pour le champ nommé et supprimez les règles non autorisées. Passez en revue les sections FIELDS les WORKFLOW. La plupart des champs système n’autorisent pas la spécification de règles.

Règles valides à utiliser avec les champs système

Name Règles autorisées
System.Title REQUIRED, DEFAULT
System.Description REQUIRED, DEFAULT
System.AssignedTo REQUIRED, , DEFAULTALLOWEXISTINGVALUE, ,VALIDUSER
System.ChangedBy REQUIRED, , DEFAULTALLOWEXISTINGVALUE, ,VALIDUSER

TF402540 : le type d’élément de travail [witName] n’est pas valide, car il spécifie la liste globale [GLOBALLIST]. Les listes globales ne sont pas prises en charge.

Les listes globales ne sont pas prises en charge dans Azure DevOps. Remplacez toutes les instances d’éléments GLOBALLIST par et ALLOWEDVALUES les éléments LISTITEM dans tous les fichiers de définition WIT.

Exemple d’erreur

<FIELD name="CustomField" refname="MyCompany.CustomField" type="String">
  <ALLOWEDVALUES>
    <GLOBALLIST name="Disciplines" />
  </ALLOWEDVALUES>
</FIELD>

Exemple de résolution

<FIELD name="CustomField" refname="MyCompany.CustomField" type="String">
  <ALLOWEDVALUES>
    <LISTITEM value="Architecture" />
    <LISTITEM value="Requirements" />
    <LISTITEM value="Development" />
    <LISTITEM value="Release Management" />
    <LISTITEM value="Project Management" />
    <LISTITEM value="Test" />
  </ALLOWEDVALUES>
</FIELD>

TF402541 : le type d’élément de travail [witName] n’est pas valide, car il référence la liste globale [globalListName]. Les listes globales ne sont pas prises en charge.

Les listes globales ne sont pas prises en charge dans Azure DevOps. Remplacez toutes les instances d’éléments GLOBALLIST par et ALLOWEDVALUES les éléments LISTITEM dans tous les fichiers de définition WIT.

Exemple d’erreur

<FIELD name="CustomField" refname="MyCompany.CustomField" type="String">
  <ALLOWEDVALUES>
    <GLOBALLIST name="Disciplines" />
  </ALLOWEDVALUES>
</FIELD>

Exemple de résolution

<FIELD name="CustomField" refname="MyCompany.CustomField" type="String">
  <ALLOWEDVALUES>
    <LISTITEM value="Architecture" />
    <LISTITEM value="Requirements" />
    <LISTITEM value="Development" />
    <LISTITEM value="Release Management" />
    <LISTITEM value="Project Management" />
    <LISTITEM value="Test" />
  </ALLOWEDVALUES>
</FIELD>

TF402542 : le nom de champ personnalisé refname [refName] n’est pas valide, car il utilise un espace de noms interdit [namespace].

Les espaces de noms System.XXX et Microsoft.AzureDevOps.XXX sont réservés dans Azure DevOps. Les noms de référence des champs et types personnalisés ne peuvent pas utiliser ces espaces de noms.

Pour corriger cette erreur, renommez l’attribut refname du champ nommé dans les fichiers de définition WIT où il apparaît.

Exemple d’erreur

<FIELD name="CustomField" refname="System.CustomField" type="String" />

  - OR - 

<FIELD name="CustomField" refname="Microsoft.AzureDevOps.CustomField" type="String" />

Exemple de résolution

<FIELD name="CustomField" refname="MyCompany.CustomField" type="String" />

TF402544 : le champ [refName], défini dans le type d’élément de travail [witName], nécessite une ALLOWEDVALUES règle qui contient des valeurs pour prendre en charge l’élément [elementName] spécifié dans ProcessConfiguration.

Modifiez le champ nommé dans le WIT nommé pour fournir la règle ALLOWEDVALUES manquante, en vous référant à l'élément nommé pour plus de détails.

L’élément de fichier ProcessConfiguration.xml, TypeField refname="Microsoft.AzureDevOps.Common.Activity" type="Activity"nécessite qu’une liste de sélections soit définie pour le champ Microsoft.AzureDevOps.Common.Activity dans tous les WIT appartenant à la catégorie de tâche.

<TypeField refname="Microsoft.AzureDevOps.Common.Activity" type="Activity" />

Si vous avez ajouté des bogues à la catégorie de tâche, vérifiez que le fichier Bug.xml contient le champ nommé et spécifie la même liste de sélections que celle définie pour celle-ci dans le fichier Task.xml.

Exemple d’erreur

Bug.xml a le champ défini, mais pas la liste de sélections.

      <FIELD name="Activity" refname="Microsoft.AzureDevOps.Common.Activity" type="String" reportable="dimension">
        <HELPTEXT>Type of work involved</HELPTEXT>
      </FIELD> 

Exemple de résolution

Bug.xml corrigé

      <FIELD name="Activity" refname="Microsoft.AzureDevOps.Common.Activity" type="String" reportable="dimension">
        <HELPTEXT>Type of work involved</HELPTEXT>
        <SUGGESTEDVALUES>
          <LISTITEM value="Development"/>
          <LISTITEM value="Testing"/>
          <LISTITEM value="Requirements"/>
          <LISTITEM value="Design"/>
          <LISTITEM value="Deployment"/>
          <LISTITEM value="Documentation"/>
        </SUGGESTEDVALUES>
      </FIELD>

TF402545 : l’élément [elementName] nécessite que vous incluiez le champ [fieldName] dans la définition du type d’élément de travail [witName].

Vous devez inclure un élément FIELD correspondant dans la définition du WIT nommé pour chaque field que vous spécifiez dans la section AddPanel du fichier ProcessConfiguration.xml.
Vous devez également inclure un élément Control dans la section FORM du WIT nommé.

Exemple d’erreur

ProcessConfiguration spécifie deux champs personnalisés. Toutefois, ces champs ne sont pas définis dans le fichier UserStory.xml.

<AddPanel>
   <Fields>
      <Field refname="System.Title" />
      <Field refname="Fabrikam.Product" />
      <Field refname="Fabrikam.Technology" />
   </Fields>
</AddPanel>

Exemple de résolution

Éléments manquants FIELD ajoutés au fichier UserStory.xml.

      <FIELD name="Product" refname="Fabrikam.Product" type="String" reportable="dimension">
     <FIELD name="Technology" refname="Fabrikam.Technology" type="String" reportable="dimension"> 

Pour prendre en charge l'élément de ProcessConfiguration [elementName], le type d'élément de travail [witName] doit définir TypeField [typeField] (field refname [refName]).

Dans ProcessConfiguration, vous avez créé un TypeField avec TypeFieldValues. Dans votre type d’élément de travail, référencez ce même TypeField.

Exemple d’erreur

ProcessConfiguration.xml

  <TypeField refname="Custom.ApplicationType" type="ApplicationType">
    <TypeFieldValues>
      <TypeFieldValue value="Web application" type="WebApp" />
      <TypeFieldValue value="Remote machine" type="RemoteMachine" />
      <TypeFieldValue value="Client application" type="ClientApp" />
    </TypeFieldValues>
  </TypeField>  

FeedbackRequest.xml utilise le champ Microsoft.AzureDevOps.Feedback.ApplicationType lorsqu’il doit utiliser le champ Custom.ApplicationType.

  <FIELD name="Application Type" refname="Microsoft.AzureDevOps.Feedback.ApplicationType" type="String">
    ...
  </FIELD>

Exemple de résolution

FeedbackRequest.xml

  <FIELD name="Application Type" refname="Custom.ApplicationType" type="String">
    ...
  </FIELD>

TF402556 : pour que le champ [refName] soit bien défini, vous devez le nommer [fieldName] et définir son type sur [fieldType]. Le [refName] fourni est [fieldName] et le type est [fieldType].

Si vous êtes sur un serveur local et que vous exécutez tfsMigrator, cette erreur est générée lorsque votre processus est obsolète et qu’un champ système n’est pas correctement défini. Dans la plupart des cas, utilisez la witadmin /changefield commande pour renommer correctement le champ.

Exemples de champs réservés

Système réservé. XXX et Microsoft.AzureDevOps. Les champs XXX nécessitent name et type valeurs.

Champ Name Type
System.Id id Integer
System.Title Titre Chaîne
Microsoft.AzureDevOps.Scheduling.StoryPoints Story points Double
Microsoft.AzureDevOps.Scheduling.RemainingWork Travail restant Double
Microsoft.AzureDevOps.Scheduling.OriginalEstimate Estimation d'origine Double
Microsoft.AzureDevOps.Scheduling.CompletedWork Travail effectué Double

Exemple d’erreur

TF402556 : Pour que le champ Microsoft.AzureDevOps.TCM.ReproSteps soit bien défini, vous devez le nommer Étapes repro et définir son type sur HTML. À condition que Microsoft.AzureDevOps.TCM.ReproSteps soit My Repro Steps et le type est HTML.

Dans Bug.xml, le nom du champ amical a été changé en « Mes étapes de réplication ».

  <FIELD name="My Repro Steps" refname="Microsoft.AzureDevOps.TCM.ReproSteps" type="HTML">
    <HELPTEXT>How to see the bug. End by contrasting expected with actual behavior.</HELPTEXT>
  </FIELD> 

Exemple de résolution

Bug.xml

  <FIELD name="Repro Steps" refname="Microsoft.AzureDevOps.TCM.ReproSteps" type="HTML">
    <HELPTEXT>How to see the bug. End by contrasting expected with actual behavior.</HELPTEXT>
  </FIELD> 

TF402557 : les définitions incohérentes existent pour le champ [refName] dans les types d’éléments de travail suivants : [witName]. Vérifiez que toutes les références à un champ ont le même RefName, Name et Type.

FIELD les définitions d’éléments pour les champs portant le même nom convivial doivent être cohérentes entre les WIT. Vérifiez que les attributs et refname, name et type sont identiques dans chacune de vos définitions WIT pour le champ nommé.

Exemple d’erreur

Bug.xml

  <FIELD name="Hair Color" refname="MyCompany.CustomFields.HairColor" type="String" reportable="dimension" />

UserStory.xml

  <FIELD name="Hair Color 2" refname="MyCompany.CustomFields.HairColor" type="Double" reportable="dimension" />

Notez que les attributs name et type diffèrent du type d’élément de travail Bug.xml.

Exemple de résolution

Bug.xml

  <FIELD name="Hair Color" refname="MyCompany.CustomFields.HairColor" type="String" reportable="dimension" />

UserStory.xml

  <FIELD name="Hair Color" refname="MyCompany.CustomFields.HairColor" type="String" reportable="dimension" />

TF402558 : la définition du champ [refName] n’est pas compatible avec un champ existant. Le type est [typeName] mais doit être [typeName].

Modifiez le fichier WIT qui contient le champ nommé pour vous assurer que la valeur d’attribut spécifiée type est cohérente entre tous les WIT.

TF402562 : vous avez défini [n] champs pour le type d’élément de travail [witName]. Seuls [fieldLimit] sont autorisés.

Vous avez défini [n] des champs pour le WIT nommé qui dépasse le nombre autorisé de champs pour n’importe quel WIT.

Modifiez le WIT nommé et supprimez les champs personnalisés supplémentaires pour réduire le nombre total de champs à respecter dans la limite autorisée.

TF402563 : vous avez défini un total de champs [n] pour tous les types d’éléments de travail. Seuls [fieldLimit] sont autorisés.

Vous avez défini les champs [n] pour tous les WIT définis dans le processus. Seuls [fieldLimit] sont autorisés, ce qui inclut les champs des espaces de noms System.XXX et Microsoft.AzureDevOps.XXX ainsi que les champs personnalisés.

Passez en revue les sections FIELDS et WORKFLOW et déterminez les champs personnalisés à supprimer.

TF402566 : Vous avez défini [n] des règles de champ pour le type d’élément de travail [witName]. Un maximum de [ruleLimit] est autorisé.

Vous avez défini [n] des règles de champ pour le WIT nommé qui dépasse le nombre autorisé de règles de champ pour n’importe quel WIT.

Modifiez le WIT nommé et supprimez les règles de champ supplémentaires pour réduire le nombre total de champs à respecter dans la limite autorisée.

TF402568 : vous avez défini [n] champs avec syncnamechanges="true" pour le type d’élément de travail [witName]. Au maximum 64 sont autorisés.

Le nombre de champs avec syncnamechanges="true" défini pour le WIT nommé dépasse la limite autorisée. Cela inclut les champs de l'espace de noms System.XXX et Microsoft.AzureDevOps.XXX, ainsi que les champs personnalisés.

Passez en revue la section FIELDS du WIT nommé et déterminez les champs personnalisés à supprimer ou modifier.

Exemple

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

TF402569 : vous avez défini [n] les valeurs du champ [fieldName] dans le type d’élément de travail [witName]. Un maximum de [listLimit] est autorisé.

Le nombre d’éléments LISTITEM définis pour le champ nommé dans le WIT nommé dépasse la limite autorisée.

Modifiez le WIT nommé pour réduire le nombreLISTITEM d’éléments afin de ne pas dépasser le maximum autorisé.

Exemple

  <FIELD name="Favorite Color" refname="MyCompany.CustomFields.FavColor" type="String" reportable="dimension">
    <ALLOWEDVALUES>
      <LISTITEM value="Color1" />
      <LISTITEM value="Color2" />
      <LISTITEM value="Color3" />
      . . . 
    </ALLOWEDVALUES>
  </FIELD>

Notez que les valeurs refname du bogue et de l'histoire de l'utilisateur sont différentes.

TF402584 : Les attributs de règle de champ « for » ou « not » ne sont pas supportés.

Les attributs "for" et "not" ne sont absolument pas pris en charge pour aucune règle de champ lors de l’importation dans Azure DevOps Services.
Passez en revue les sections FIELDS et WORKFLOW la présence d’attributs "for" et "not" et supprimez-les.

Exemple d’erreur

<FIELD name="Title">
  <READONLY for="Dev Team" not="Test Team" />
</FIELD>

Exemple de résolution

<FIELD name="Title">
  <READONLY />
</FIELD>

TF402593 : les règles de champ ne sont pas prises en charge pour le champ [fieldName].

La plupart des champs System et Microsoft.AzureDevOps ne prennent pas en charge les règles. Pour plus d’informations, consultez Règles et évaluation des règles.

Modifiez les fichiers de définition pour les types d’éléments de travail qui contiennent le champ nommé pour supprimer les règles de champ spécifiées pour celle-ci.

TF402602 : le champ [refName] doit avoir exactement ces valeurs [valeurs].

  • Ne modifiez pas les champs réservés : ne modifiez aucun champ défini dans les espaces de noms réservés System.*XXX* et Microsoft.AzureDevOps.*XXX*.
  • Définir des champs personnalisés : Pour avoir une liste différente de valeurs dans les champs de liste de sélection, définissez votre propre champ personnalisé.

Exemple d’erreur

Bug.xml a le champ de priorité défini, mais a une liste différente des valeurs attendues.

    <FIELD name="Priority" refname="Microsoft.AzureDevOps.Common.Priority" type="Integer" reportable="dimension">
        <ALLOWEDVALUES expanditems="true">
        <LISTITEM value="0"/>
        <LISTITEM value="1"/>
        <LISTITEM value="2"/>
        </ALLOWEDVALUES>
        <DEFAULT from="value" value="2" />
    </FIELD>

Exemple de résolution

Bug.xml corrigé incluant un nouveau champ

      <FIELD name="Priority" refname="Microsoft.AzureDevOps.Common.Priority" type="Integer" reportable="dimension">
        <HELPTEXT>Business importance. 1=must fix; 4=unimportant.</HELPTEXT>
        <ALLOWEDVALUES expanditems="true">
          <LISTITEM value="1"/>
          <LISTITEM value="2"/>
          <LISTITEM value="3"/>
          <LISTITEM value="4"/>
        </ALLOWEDVALUES>
        <DEFAULT from="value" value="2" />
      </FIELD>

      <FIELD name="Custom Priority" refname="Custom.Priority" type="Integer" reportable="dimension">
        <HELPTEXT>Business importance. 1=must fix; 4=unimportant.</HELPTEXT>
        <ALLOWEDVALUES expanditems="true">
          <LISTITEM value="0"/>
          <LISTITEM value="1"/>
          <LISTITEM value="2"/>
        </ALLOWEDVALUES>
        <DEFAULT from="value" value="2" />
      </FIELD>

VS402504 : L’utilisateur ou le groupe n’est pas trouvé [projet]\Nom du groupe. Vérifiez que les utilisateurs et les groupes utilisés dans votre définition de type d’élément de travail existent.

Les groupes d’étendue de projet personnalisés ne sont pas pris en charge. Vous ne pouvez référencer que des groupes délimités au niveau du compte.

Exemple d’erreur

Bug.xml référence un groupe délimité par un projet.

... "[project]\Organization Leaders"

Exemple de résolution

Créez un nouveau groupe de niveau compte (collection) « Organization Leaders » et référencez-le en conséquence dans le fichier XML.

... "[global]\Organization Leaders"

Note

Un groupe global fraîchement créé peut prendre un peu de temps avant que le processus d’importation le localise.

TF237094 : le nom du champ '[fieldName]' est utilisé par le champ '[refName]', de sorte qu’il ne peut pas être utilisé par le champ '[refName]'.

Le nom du champ existe déjà avec le même nom dans un autre champ. Modifiez le nom du champ.

Exemple d’erreur

TF237094: Field name 'External ID' is used by the field 'Custom.ExistingField.ExternalID', so it cannot be used by the field 'Custom.NewField.ExternalID'.

Exemple de résolution

Modifier le nom du champ de Custom.NewField.ExternalID

<FIELD name="External ID" refname="Custom.NewField.ExternalID" type="string" reportable="dimension" />

Disposition des éléments de travail

VS403104 : le type d’élément de travail [witName] fait référence au champ requis [refName] qui n’est pas inclus dans toutes les dispositions.

Cet avertissement est généré si vous avez un champ obligatoire dans un type d’élément de travail référencé dans le nœud <Layout> mais pas le <WebLayout>. Le <WebLayout> est utilisé pour modifier la disposition du nouveau formulaire.

VS403073 : Groupe & <Group Name>: enfreint la règle selon laquelle un groupe ne peut contenir qu'un seul contrôle HTML ou WebPage précédé de contrôles de libellé.

Dans la nouvelle disposition de formulaire, un groupe ne peut contenir qu’un seul HTMLFieldControl ou WebPageControl.

Exemple d’erreur

<Section>
    <Group Label="Description:">
        <Control Label="Reason For Request:" Type="HtmlFieldControl" FieldName="System.Description" />
        <Control Label="Business Case For Request:" Type="HtmlFieldControl" FieldName="MB.BusinessCase" />
    </Group>
</Section>

Pour résoudre cette erreur, créez deux groupes distincts qui contiennent chacun un contrôle.

Exemple de résolution


<Section>
    <Group Label="Reason for Request">
        <Control Label="Reason For Request:" Type="HtmlFieldControl" FieldName="System.Description" />       
    </Group>
    <Group Label="Business Case">
        <Control Label="Business Case For Request" Type="HtmlFieldControl" FieldName="Custom.BusinessCase" />       
    </Group>
</Section>

Exemple d’erreur

  <Control Type="FieldControl" FieldName="customfield.foo" Label="Foo" LabelPosition="Left">
    <Link UrlRoot="http://www.visualstudio.microsoft.com/team-services/" />
  </Control>

Exemple de résolution

  <Control Type="FieldControl" FieldName="System.Title" LabelPosition="Left" Label="Title 1"  
    <LabelText>  
        <Text>  
          <Link UrlRoot="http://www.visualstudio.microsoft.com/team-services/" />  
              Title 2  
        </Text>  
    </LabelText>  
  </Control>  

Définitions de flux de travail

TF402567 : vous avez défini [n] les états de flux de travail pour le type d’élément de travail [witName]. Un maximum de [stateLimit] est autorisé.

Vous avez défini les états de flux de travail [n] pour le WIT nommé, qui dépasse le nombre autorisé d’états de flux de travail pour n’importe quel WIT.

Pour réduire le nombre total d’états dans la limite autorisée, modifiez la WORKFLOW section du WIT nommé et supprimez les éléments supplémentaires STATE .

TF402578 : le champ [refName] spécifie le nom convivial [friendlyName] qui est déjà utilisé par le champ [refName]. Les noms conviviaux doivent être uniques dans toutes les définitions de champs.

Les noms de champs doivent être uniques dans le type d’élément de travail.

Exemple d’erreur

  <FIELD name="Foo" refname="MyCompany.CustomFields.Foo" type="String" reportable="dimension" />
  <FIELD name="Foo" refname="MyCompany.CustomFields.Bar" type="String" reportable="dimension" />

Notez qu’il existe deux champs portant le nom <FIELD name="Foo".

Exemple de résolution

  <FIELD name="Foo" refname="MyCompany.CustomFields.Foo" type="String" reportable="dimension" />
  <FIELD name="Bar" refname="MyCompany.CustomFields.Bar" type="String" reportable="dimension" />

TF402579 : Le nom [friendlyName] est utilisé plusieurs fois sur des champs différents dans les types d'éléments de travail suivants : [witNames]. Le nom des champs doit être unique dans la collection de projets.

Les champs faisant référence au même refname="MyCompany.FieldName" doivent avoir la même valeur de nom convivial FIELD name="fieldname".

Exemple d’erreur

Processus A, Bug.xml

  <FIELD name="Foo" refname="MyCompany.CustomFields.Foo" type="String" reportable="dimension" />  

Processus B, Bug.xml

  <FIELD name="Bar" refname="MyCompany.CustomFields.Foo" type="String" reportable="dimension" />  

Étant donné que les deux champs partagent le même nom de référence, refname="MyCompany.CustomFields.Foo"ils doivent également spécifier le même nom <FIELD name="Foo" convivial dans tous les processus importés ou à importer dans Azure DevOps.

TF402580 : vous ne pouvez utiliser le nom [witName] que pour un seul type d’élément de travail.

Les noms amicaux WIT WORKITEMTYPE name="Name" doivent être uniques au sein du processus.

Exemple d’erreur

Mon élément de travail A.xml

  <WORKITEMTYPE name="My Work Item" refname="My.MyWorkItemA">

Mon élément de travail B.xml

  <WORKITEMTYPE name="My Work Item" refname="My.MyWorkItemB">

Notez comment le WORKITEMTYPE name= est le même dans les deux types d’éléments de travail.

Exemple de résolution

Mon élément de travail A.xml

  <WORKITEMTYPE name="My Work Item A" refname="My.MyWorkItemA">

Mon élément de travail B.xml

  <WORKITEMTYPE name="My Work Item B" refname="My.MyWorkItemB">

TF402581 : vous ne pouvez utiliser le refname [refName] que pour un seul type d’élément de travail.

Les noms de référence WIT refname="value" doivent être uniques au sein du processus.

Exemple d’erreur

Bug.xml

  <WORKITEMTYPE name="Bug" refname="MyCompany.Name">

UserStory.xml

  <WORKITEMTYPE name="User Story" refname="MyCompany.Name"> 

Les deux refname valeurs sont égales à « MyCompany.Name »

Exemple de résolution

Bug.xml

  <WORKITEMTYPE name="Bug" refname="MyCompany.Bug">

UserStory.xml

  <WORKITEMTYPE name="User Story" refname="MyCompany.UserStory"> 

TF402582 : le type d’élément de travail [witName] contient le contrôle personnalisé [controlName] qui n’est pas pris en charge.

Les contrôles personnalisés ne sont pas pris en charge dans Azure DevOps Services. Passez en revue la section FORM du WIT nommé et supprimez les contrôles personnalisés définis.

Exemple d’erreur

Type="OneViewMultiValueControl" spécifie un contrôle personnalisé. Supprimez ou remplacez ce contrôle personnalisé par un contrôle supporté.

    <Group Label="Engineering Alignment">
        <Column PercentWidth="100">
            <Control FieldName="Fabrikam.Content.Product" Type="FieldControl" Label="Product" LabelPosition="Left" />
            <Control FieldName="Fabrikam.Content.Release" Type="FieldControl" Label="Milestone" LabelPosition="Left" />
            <Control FieldName="Fabrikam.Content.Technology" Type="FabrikamMultiValueControl" Label="Technology" LabelPosition="Left" />
        </Column>
    </Group>