Udostępnij za pośrednictwem


Mapowanie pól odwołania do elementu XML dla integracji TFS-Project Server

Dostosowując mapowania pól, można zdefiniować, które pola w Visual Studio Team Foundation Server (TFS) i Microsoft Project Server powinny być przechowywane zsynchronizowany i pola, które są aktualizowane w kolejce stan Project Server i w Team Foundation.

[!UWAGA]

Odwzorowania pól integracji programu TFS z programem Project Server różnią się od pliku mapowania dla Microsoft Project.Uzyskać informacje o ostatnim pliku, zobacz Dostosowywanie pliku mapowania pola projektu Microsoft.

Obsługa się jeden zestaw mapowań pól dla każdej kolekcji projektów zespołowych hosty zespołu projektów, które ma zostać zsynchronizowany z programem Project Server.Aby pobrać mapowania pól, można pobrać je do pliku z kolekcji.Po zmodyfikowaniu pliku, można go przekazać do kolekcji, a zmiany zostaną zastosowane do wszystkich projektów zespołowych zdefiniowanych dla tej kolekcji.Aby uzyskać więcej informacji dotyczących sposobu pobierania lub przekazywania odwzorowania pól, zobacz Dostosowywanie mapowania pola pomiędzy TFS a Project Server.

W tym temacie:

  • Wymagane pola

  • Domyślne pola, które są mapowane

  • Mapowanie elementów i atrybutów

  • Domyślne mapowania pola

Wymagane pola

Następujące pola musi być zamapowana do obsługi synchronizacji danych.Jeśli dostosowanych pola, które są używane do planowania pracy, należy dostosować mapowania pola, aby odwołują się do pola, których używasz.

  • System.Title musi być zamapowany na pjTaskName.

  • System.AssignedTo musi być zamapowany na pjResourceNames.

  • Pola, które używane do śledzenia rozpoczęcie pracy w Team Foundation musi być zamapowany na pjTaskStart.Domyślnie to pole jest Microsoft.VSTS.Scheduling.StartDate.

  • Pola, które używane do śledzenia ukończone Praca w Team Foundation musi być zamapowany na pjTaskFinish.Domyślnie to pole jest Microsoft.VSTS.Scheduling.FinishDate.

Domyślne pola, które są mapowane

Dla każdego pola TFS można określić dwa mapowania.W pierwszym mapowanie, należy określić pola w projekcie, która aktualizuje pola w programie TFS w kolejce stanu.W drugim mapowanie, należy określić pola w projekcie, która aktualizuje pola w programie TFS.Ponadto można określić, czy pole TFS pojawi się po formularza elementu pracy i jak aktualizacje zostały wprowadzone w celu odwołania się i dublowanego pól.

Domyślnie wszystkie pola projektu, które są mapowane są także odzwierciedlenie, co oznacza, że ich wartości są przechowywane w programie TFS.

Ważna uwagaWażne

W większości konfiguracji nie należy usuwać domyślne mapowania pola, ponieważ wymaga procesu synchronizacji.Na przykład nie usunięcie domyślne mapowania mapuje planu projektu organizacji do projektu zespołowego, który został utworzony na podstawie szablonu procesu, który bazuje na albo Microsoft Solutions Framework (Opracowywanie) dla Zwinne Wytwarzanie oprogramowania lub Process Improvement możliwości płatności modelu integracji (CMMI).

Jednak jeśli map planu do zespołu projektu, który został utworzony za pomocą Visual Studio szablonu procesu Scrum, może być konieczne usunięcie niektórych domyślne mapowania.Jeśli Twój kolekcji projektów zawiera tylko projektów zespołowych, które zostały utworzone przy użyciu szablonu Scrum, użytkownik może otrzymać wystąpił błąd podczas konfigurowania serwera dwa produkty.Aby uzyskać najlepsze wyniki Dodaj ukończyć pracy (Microsoft.VSTS.Scheduling.CompletedWork) i pierwotne oszacowanie (Microsoft.VSTS.Scheduling.OriginalEstimate) z elementami pracy, które użytkownik zamierza mapowania.Ponadto należy do usunięcia <EMPTY /> definicji typu oświadczenia zadanie przepływu pracy.Aby uzyskać więcej informacji, zobacz wymagane zmiany, należy podczas mapowania do zespołu projektu czy został utworzony z szablonu procesu Scrum.

W poniższej tabeli przedstawiono domyślne mapowania, które są przypisane do pól w Team Foundation.Można określić sposób odwołania ma i odwzorowania pól do zaktualizowania.Można ustawić OnConflict do PSWins zastąpić wartość w Team Foundation o wartości z serwera projektu.Jeśli pole OnConflict określony atrybut, pola Obsługa różne wartości.Aby uzyskać więcej informacji, sprawdź pola elementów i atrybutów tabeli w dalszej części tego tematu.

Aby uzyskać więcej informacji na temat pól dublowanego i proces synchronizacji zobacz Zasady zarządzania aktualizacjami określonych pól.

Team Foundationpole

Pole projektu

Pole wyświetlane na karcie Project Server z formularza elementu pracy (displayTfsField)

Pole dublowanego wyświetlane na karcie Project Server z formularza elementu pracy (displayTfsMirror)

Pola aktualizacje (OnConflict)

Tytuł

Nazwa zadania

Nie

Nie

Wartość w Project Server zastępuje wartość w Team Foundation.

Przypisane do

Resources

Nie

Nie

Wartość w Project Server zastępuje wartość w Team Foundation.

Pozostała praca

Zasób pozostałą pracę (stan kolejki)

Zadanie pozostałą pracę (Project Server)

Tak

Tak

Każda wartość jest obsługiwany.

Praca wykonana

Rzeczywista praca zasobów (stan kolejki)

Rzeczywista praca zadania (Project Server)

Tak

Tak

Każda wartość jest obsługiwany.

Pierwotne oszacowanie

Podstawy pracy

Nie

Tak

Wartość w Project Server zastępuje wartość w Team Foundation.

Data rozpoczęcia

Rozpoczęcie pracy zasobu (stan kolejki)

Rozpoczęcie zadania (Project Server)

Nie

Nie

Wartość w Project Server zastępuje wartość w Team Foundation.

Data zakończenia

Zakończ zasobów (stan kolejki)

Zakończ zadanie (Project Server)

Nie

Nie

Wartość w Project Server zastępuje wartość w Team Foundation.

Można wyświetlić więcej pól projektu na Project Server na karcie formularza elementu pracy w Team Foundation dodając je do mapowania pól.Aby uzyskać więcej informacji na temat tej karty, zobacz Dodano pola Project Server do TFS w celu obsługi synchronizacji danych.

Mapowanie elementów i atrybutów

Możesz użyć field element, aby określić pole odwołania w Team Foundation do synchronizacji.Wszystkie field elementy są zawarte w mappingFile, persistables, i Microsoft.TeamFoundation.Sync.Mapping.Impls.FieldMapping elementów kontenera.

Ważna uwagaWażne

Podczas mapowania pola z TFS na serwerze Project Server, upewnij się, że zgodne typy danych z tych pól.W przeciwnym razie następujący błąd może spowodować wyświetlenie okna podczas próby przekazania mapowania pól:

Indeks (na podstawie zero) musi być równy lub większy od zera i mniejszy niż rozmiar listy argumentów.

Aby uzyskać więcej informacji, zobacz Ograniczenia związane z mapowaniem pól programu Project Server dla integracji TFS-Project Server.

Poniższy przykład przedstawia zagnieżdżenia struktury elementów XML.Aby wyświetlić domyślne mapowania, zobacz domyślnego pliku mapowania poniżej w tym temacie.

<mappingFile>
   <persistables>
      <Microsoft.TeamFoundation.Sync.Mapping.Impls.FieldMapping>
         <field tfsName="System.Title" tfsMirrorName="Mirror.System.Title" displayTfsField="false" displayTfsMirror="false" onConflict="PSWin">
            <tfsToTarget>
               <target provider="ProjectServerStatusQueue" name="pjTaskName" />
            </tfsToTarget>
            <targetToTfs>
               <target provider="ProjectServerPublished" name="pjTaskName" />
            </targetToTfs>
         </targetToTfs>
      </field>

         . . .

    </Microsoft.TeamFoundation.Sync.Mapping.Impls.FieldMapping>
  </persistables>
</mappingFile>

Składnia kodu pola

Następująca składnia definiuje atrybuty field elementu:

<field tfsName="FieldName" tfsMirrorName="FieldMirrorName" displayTfsField="true | false" displayTfsMirror=" true | false" onConflict="PSWin">

Składnia elementu docelowego

Następująca składnia definiuje atrybuty target elementu:

<target provider="ProviderName" name="ProjectFieldName" />

Aby określić nazwę pola, można dodać prefiksu połączonych przyjaznej nazwy "uzyskać".Na przykład nazwy pola Status Manager jest pjStatusManager, a nazwę pola niestandardowe 01 jest pjCustom01.

Pole elementów i atrybutów

W poniższej tabeli przedstawiono atrybuty i podelementy field elementu.Mapowania Team Foundation pola do projektu zasobów pole, którego wartość ma zostać zaktualizowany podczas synchronizacji stanu.Mapowania Team Foundation pola do pola zadania projektu zaktualizuje których wartość Team Foundation Server podczas publikowania synchronizacji.Ponadto jednostki pola, które można mapować musi spełniać kryteria ustanowione.Aby uzyskać więcej informacji, zobacz Ograniczenia związane z mapowaniem pól programu Project Server dla integracji TFS-Project Server.

Element

Atrybut

Opis

field

Określa pole w Team Foundation można mapować i jak mają być mapowane pola.

tfsName

Określa nazwę odwołania pola w Team Foundation do synchronizacji.Musisz określić pole, do którego jest zdefiniowany w kolekcji projektów zespołowych.Można wyświetlić listę wszystkich pól w kolekcji, należy uruchomić witadmin listfields polecenia.Aby uzyskać więcej informacji, zobacz Zarządzanie polami elementów pracy [witadmin].

tfsMirrorName

Parametr wymagany.Określa nazwę odwołania do przechowywania wartości pola Project Server w Team Foundation Server.Można przed nazwą odwołania "Odbicie lustrzane." Na przykład można określić Mirror.System.Title dla System.Title.

[!UWAGA]

Odbicie lustrzane pola, które można określić są tworzone automatycznie.Nie trzeba dodać pola odbicie lustrzane do definicji typu elementu roboczego.

displayTfsField

Parametr opcjonalny.Domyślnie ten atrybut ma ustawioną wartość true.Jeśli ma wartość tego atrybutu true, to pole jest wyświetlane na Project Server na karcie formularza elementu pracy w Team Foundation.Jeśli ma wartość tego atrybutu false, nie ma pola formularza.Domyślnie są wyświetlane tylko pola ukończyć pracy i pozostałą pracę na formularzu.

displayTfsMirror

Parametr opcjonalny.Domyślnie ten atrybut ma ustawioną wartość true.Jeśli ma wartość tego atrybutu true, to pole jest wyświetlane na Project Server na karcie formularza elementu pracy w Team Foundation.Jeśli ma wartość tego atrybutu false, nie ma pola formularza.

onConflict

Parametr opcjonalny.Określa, jak aparat synchronizacji aktualizuje pola odwołania.Jedyne prawidłowe wartości to PSWin.

Jeśli ma wartość tego atrybutu PSWin, wartość pola odwołanie zostanie zaktualizowana, gdy bieżąca wartość opublikowanego z serwera Project Server różni się od wartości w kopii.

Jeśli ten atrybut nie zostanie zdefiniowana, oznacza to, należy zachować dwóch zestawów książki.Innymi słowy, wartość w projekcie może się różnić od wartości w Team Foundation.Domyślnie wartości w projekcie zawsze będzie zastępował wartości pól tytułu, przydzielone do, Data rozpoczęcia i Data zakończenia.Domyślnie tylko pola ukończyć pracy i pozostałą pracę są przechowywane z dwoma zestawami książki.Aby uzyskać więcej informacji, zobacz aktualizuje do pól w tym zawierać godziny.

tfsToTarget

Określa nazwę pola w projekcie Team Foundation zostanie zaktualizowany.

target

Określa obiekt docelowy, aby otrzymywać aktualizacje z Team Foundation.

provider

Określa nazwę dostawcy aktualizacji.Dla tfsToTarget, jedyne prawidłowe wartości to ProjectServerStatusQueue.

name

Określa nazwę pola projektu, który będzie aktualizowany przy użyciu wartości w Team Foundation.Można mapować tylko wbudowanej lub enterprise niestandardowe pola w programie Project Server.Aby uzyskać listę dostępnych pól, zobacz Ograniczenia związane z mapowaniem pól programu Project Server dla integracji TFS-Project Server.

targetToTfs

Określa mapowanie pola do synchronizowania aktualizacji w programie Project Server z Team Foundation Server.

target

Określa obiekt docelowy, aby otrzymywać aktualizacje z serwera Project Server.

provider

Określa nazwę dostawcy aktualizacji.Dla targetToTfs, jedyne prawidłowe wartości to ProjectServerPublished.

name

Określa nazwę pola w projekcie, który zostanie zaktualizowany pola w Team Foundation.Można mapować tylko wbudowanej lub enterprise pól niestandardowych.Aby uzyskać listę dostępnych pól, zobacz Ograniczenia związane z mapowaniem pól programu Project Server dla integracji TFS-Project Server.

transforms

Parametr opcjonalny.Element kontenera dla transform elementu.

transform

transformType

Określa typ transformacji do zastosowania do pola.Można określić tylko transformType dla targetToTfs i tylko w przypadku typów pola liczbowego.Jedyne prawidłowe wartości to ClearValueIfParent.

Gdy aparat synchronizacji wykryje hierarchii pod elementem pracy, który jest zsynchronizowany z programem Project Server, przeprowadza zbiorczy do pracy i przydziały do wysłania do programu Project Server.Jednak z transformType ustawioną ClearValueIfParent, aparat synchronizacji czyści pola pracy nadrzędny element pracy w Team Foundation Server w celu uniknięcia nieprawidłowych danych w standardzie Team Foundation Server raporty.

Domyślne mapowania

Poniżej przedstawiono kod domyślne mapowania pola, które są definiowane podczas uruchamiania TfsAdmin ProjectServer /UploadFieldMappings polecenia i określ /useDefaultFieldMappings opcji.Możesz pobrać te mapowania do pliku i następnie dodawać elementy do niej lub modyfikowanie atrybutów na liście pól.

Aby uzyskać listę wszystkich pól, które zostaną dodane do typu elementu roboczego po dodaniu typu do udziału w synchronizacji danych, patrz Dodano pola Project Server do TFS w celu obsługi synchronizacji danych.

<mappingFile>
  <persistables>
    <Microsoft.TeamFoundation.Sync.Mapping.Impls.FieldMapping>
      <field tfsName="System.Title" tfsMirrorName="Mirror.System.Title" displayTfsField="false" displayTfsMirror="false" onConflict="PSWin">
        <tfsToTarget>
          <target provider="ProjectServerStatusQueue" name="pjTaskName" />
        </tfsToTarget>
        <targetToTfs>
          <target provider="ProjectServerPublished" name="pjTaskName" />
        </targetToTfs>
      </field>
      <field tfsName="System.AssignedTo" tfsMirrorName="Mirror.System.AssignedTo" displayTfsField="false" displayTfsMirror="false" onConflict="PSWin">
        <tfsToTarget>
          <target provider="ProjectServerStatusQueue" name="pjTaskResourceNames" />
        </tfsToTarget>
        <targetToTfs>
          <target provider="ProjectServerPublished" name="pjTaskResourceNames" />
        </targetToTfs>
      </field>
      <field tfsName="Microsoft.VSTS.Scheduling.CompletedWork" tfsMirrorName="Mirror.Microsoft.VSTS.Scheduling.CompletedWork" displayTfsField="true" displayTfsMirror="true">
        <tfsToTarget>
          <target provider="ProjectServerStatusQueue" name="pjResourceActualWork" />
        </tfsToTarget>
        <targetToTfs>
          <target provider="ProjectServerPublished" name="pjTaskActualWork" />
            <transforms>
               <transform transformType="clearValueIfParent">
            </transforms>
        </targetToTfs>
      </field>
      <field tfsName="Microsoft.VSTS.Scheduling.RemainingWork" tfsMirrorName="Mirror.Microsoft.VSTS.Scheduling.RemainingWork" displayTfsField="true" displayTfsMirror="true">
        <tfsToTarget>
          <target provider="ProjectServerStatusQueue" name="pjResourceRemainingWork" />
        </tfsToTarget>
        <targetToTfs>
          <target provider="ProjectServerPublished" name="pjTaskRemainingWork" />
            <transforms>
               <transform transformType="clearValueIfParent">
            </transforms>
        </targetToTfs>
      </field>
      <field tfsName="Microsoft.VSTS.Scheduling.OriginalEstimate" tfsMirrorName="Mirror.Microsoft.VSTS.Scheduling.OriginalEstimate" displayTfsField="false" displayTfsMirror="true" onConflict="PSWin">
        <targetToTfs>
          <target provider="ProjectServerPublished" name="pjTaskBaselineWork" />
        </targetToTfs>
      </field>
      <field tfsName="Microsoft.VSTS.Scheduling.StartDate" tfsMirrorName="Mirror.Microsoft.VSTS.Scheduling.StartDate" displayTfsField="false" displayTfsMirror="false" onConflict="PSWin">
        <tfsToTarget>
          <target provider="ProjectServerStatusQueue" name="pjResourceStart" />
        </tfsToTarget>
        <targetToTfs>
          <target provider="ProjectServerPublished" name="pjTaskStart" />
        </targetToTfs>
      </field>
      <field tfsName="Microsoft.VSTS.Scheduling.FinishDate" tfsMirrorName="Mirror.Microsoft.VSTS.Scheduling.FinishDate" displayTfsField="false" displayTfsMirror="false" onConflict="PSWin">
        <tfsToTarget>
          <target provider="ProjectServerStatusQueue" name="pjResourceFinish" />
        </tfsToTarget>
        <targetToTfs>
          <target provider="ProjectServerPublished" name="pjTaskFinish" />
        </targetToTfs>
      </field>
    </Microsoft.TeamFoundation.Sync.Mapping.Impls.FieldMapping>
  </persistables>
</mappingFile>

Zobacz też

Informacje

Zarządzanie mapowaniami pól dla integracji TFS-Project Server

Koncepcje

Ograniczenia związane z mapowaniem pól programu Project Server dla integracji TFS-Project Server

Dodano pola Project Server do TFS w celu obsługi synchronizacji danych

Administrowanie integracją programów Team Foundation Server i Project Server

Inne zasoby

Dostosowywanie mapowania pola pomiędzy TFS a Project Server