TFS と Project Server の統合における同期プロセスの概要

Visual Studio Team Foundation Server 2013 と Microsoft Project Server の間のデータ フローが同期エンジンによってどのように管理されるかを理解すると、2 つのサーバー製品の統合をより効率的に管理できます。 同期エンジンは、Project Professional で作業するプロジェクト マネージャー、および Team Foundation で作業するチーム リーダーとチーム メンバーの個別のワークフローをサポートします。 成果物とタスクは、各領域で個別に展開できます。

このトピックの内容

  • 3 種類の同期

  • 同期の対象となるデータ

  • 更新時と送信時に実行されるデータ検証

  • ミラー フィールドおよび "2 つのブック セット"

  • 同期のサポートに必要なアクセス許可

  • エラー通知、イベント ログ、および追跡可能性

3 種類の同期

同期エンジンは 3 種類の同期を実行します。 このプロセスでは、プロジェクト計画でのプロジェクト マネージャーによるデータの所有権を考慮しながら、TFS と Project Server の両方で、タスク関連データとリソース関連データがキャプチャされ、更新されます。 プロジェクト マネージャーは、Microsoft Project Professional を使用して変更を行い、Project Web Access または Project Web App (PWA) を使用して更新を承認します。 開発チーム メンバーは、Team Foundation のクライアントを使用して Project Server に更新を送信します。

次の図に示すように、データ同期は 7 つの主要手順で構成されます。

Team Foundation Server と Project Server の統合の同期プロセス

PS-TFS 同期プロセス

同期エンジンは、各作業項目の更新時ではなく、定期的に実行される単一のジョブ サービスで構成されます。 同期ジョブでは、次に示す 3 つのプロセスがこの順序で実行されます。

発行同期:

手順 1.プロジェクト マネージャーは、タスクまたは成果物を定義または更新し、同期するタスクごとに、[チーム プロジェクトに発行] の値を [はい] に設定します。

手順 2.プロジェクト マネージャーは、Microsoft Project Professional を使用して、エンタープライズ プロジェクト計画を発行します。 変更は、Project Server のデータベースに自動的に保存されます。

手順 3.同期エンジンは、Project Server からデータをプルし、同期用に構成されたデータに基づいて更新するデータを判別します。 同期用に構成されたオブジェクト、タスク、および作業項目だけが更新されます。

手順 4.同期エンジンは、Team Foundation の作業項目を作成または更新し、Project のタスクを Team Foundation の作業項目にバインドするリンクを定義します。

ステータス同期:

手順 5.チーム リーダーまたはチーム メンバーは、エンタープライズ プロジェクトのタスクにリンクされた Team Foundation の作業項目を変更するか、作業項目を作成し、[Project Server に送信] の値を [はい] に設定します。 同期エンジンは、マップされたチーム プロジェクトに対して行われた変更を問い合わせ、Project Web Access または Project Web App (PWA) の承認キューに要求を送信します。

承認同期:

手順 6.各プロジェクト マネージャーは承認キューを確認し、各ステータス更新要求を承認または却下します。

更新が承認されたら、プロジェクト マネージャーは、更新が Project Server に表示される前に、プロジェクト計画を発行する必要があります。

重要

同期エンジンが作業項目の複数のレベルを Project Server に送信すると、最初のレベルが承認され、Project Server に発行されてから、次のレベルが送信されます。たとえば、3 つのレベルの子項目を含む新しい作業項目のバッチを送信できます。その場合、プロジェクト マネージャーはプロジェクト計画を 4 回発行することで、すべての作業項目が Project Server と同期するようにする必要があります。

手順 7.Project Server の承認のイベント ハンドラーは、承認決定を同期エンジンに送信します。同期エンジンは、承認ステータスに基づいて Team Foundation Server の作業項目を更新します。

ページのトップへ

承認と却下の管理

Project Server にリンクされた作業項目に対するすべての変更は、承認を得るために、チーム プロジェクトにマップされているエンタープライズ プロジェクト計画のプロジェクト マネージャーに送信する必要があります。 Team Foundation から送信されるすべての更新が自動的に承認されるように、自動承認を設定できます。 詳細については、「タスクの更新情報を承認または却下する」を参照してください。

通常、承認された作業項目は、エンタープライズ プロジェクト計画にロールバックされます。 却下された作業項目は、解決して再送信する必要があります。

更新が却下された場合、作業項目の "履歴" フィールドにメッセージが表示されます。 このメッセージには、却下された値と却下したプロジェクト マネージャーが示されます。 チーム プロジェクトが Project Server 2010 でホストされるプロジェクト計画にマップされている場合、メッセージには項目を却下した理由に関するプロジェクト マネージャーのコメントも含まれます。 チーム メンバーは却下された作業項目を調整して再送信するか、エンタープライズ プロジェクトに送信されないように作業項目を削除する必要があります。 また、チーム メンバーは、"Project Server Last Submit Status" に基づいて、却下されたすべての項目を検索する作業項目クエリを作成することもできます。 詳細については、「作業項目送信の監視および拒否状態の解消」を参照してください。

同期と再試行の間隔

データ同期は、各作業項目の更新時ではなく、スケジュールに従って発生します。 同期ジョブ サービスは 30 秒間隔で実行されます。 その間に、Project Server または Team Foundation Server で変更された作業項目とフィールド、またはプロジェクト マネージャーが承認した作業項目とフィールドの問い合わせが行われます。

1 時間ごとに、同期エンジンによって、以前に更新されなかった作業項目が再提出されます。 詳細については、「同期の再試行間隔または再送信間隔の変更」を参照してください。

ページのトップへ

同期の対象となるデータ

2 つのレベルの構成によって、同期に含めることができるオブジェクトと、同期されるデータが決定されます。 Team Foundation の管理者は、複数のレベルのマッピングを行って、同期に含めることができるオブジェクトを構成します。 第 2 のレベルでは、Team Foundation のプロジェクト マネージャーとユーザーが、同期するタスクと作業項目を制御します。

ページのトップへ

同期に含めるように構成されたオブジェクト

次の構成によって、同期プロセスに含めるオブジェクトが決定されます。 通常は、Team Foundation の管理者がこれらの構成を行います。 ただし、プロジェクト マネージャーがエンタープライズ プロジェクト計画をチーム プロジェクトにマップすることもできます。

  • チーム プロジェクト コレクションにマップされた PWA のインスタンス: このマッピングでは、チーム プロジェクト コレクションが同期をサポートするように構成され、コレクションと同期できる PWA のインスタンスが決定されます。

  • チーム プロジェクトにマップされたエンタープライズ プロジェクト計画: このマッピングでは、エンタープライズ プロジェクト計画とチーム プロジェクトの両方が同期に含まれるように構成されます。 また、このマッピングによって、チーム プロジェクトと同期できるエンタープライズ プロジェクトが決定されます。

  • 同期用にマップされた作業項目の種類: エンタープライズ プロジェクト計画をチーム プロジェクトにマップするときに、同期できる作業項目の種類を指定します。 このマッピングでは、作業項目フォームに [Project Server] タブが追加され、エンタープライズ プロジェクト計画に各作業項目の種類の検証規則が追加されます。

  • Project Server のフィールドにマップされた作業項目のフィールド: 既定では、同期エンジンは、[タイトル]、[担当者]、[実績作業]、[残存作業]、[最初の見積もり]、[開始日]、および [終了日] の Team Foundation の各フィールドを同期します。 フィールドを追加し、フィールドの同期方法を決定するパラメーターを設定できます。 たとえば、作業項目フォームに表示されるフィールドや、特定のフィールドに対して複数の値を許可するかどうかを指定できます。

詳細については、「Project Server コンポーネントの Team Foundation コンポーネントへのマップ」および「同期する作業項目の種類の指定」を参照してください。

同期用に構成された個々のタスクと作業項目

プロジェクト マネージャーは、TFS に発行するエンタープライズ プロジェクト計画のタスクを決定します。 チーム メンバーは、Project Server に送信するチーム プロジェクトの作業項目を決定します。 プロジェクト マネージャーは、成果物とタスクの詳しい内訳を TFS に発行することも、サマリー タスク要素だけを発行して管理することもできます。 このトピックの「更新時と送信時に実行されるデータ検証」で後述するように、従属タスクまたは親子作業項目の発行には、いくつかの制限が適用されます。

詳細については、「チーム プロジェクトにマップされているエンタープライズ プロジェクト計画におけるプロジェクト詳細情報の管理」および「チーム プロジェクトにマップされているエンタープライズ プロジェクト計画における業務要件のトップダウン プランニング」を参照してください。

注意

1 つのチーム プロジェクトに複数のエンタープライズ プロジェクト計画をマップできますが、Team Foundation の作業項目にマップまたはリンクできるプロジェクト計画のタスクは 1 つだけです。Project Server では、エンタープライズ プロジェクト計画の個々のタスクが区別されます。Project Server に送信されたタスクによって更新される Team Foundation の作業項目は 1 つに限られます。また、Team Foundation で作成され、Project Server に送信された作業項目によって更新されるエンタープライズ プロジェクト計画も 1 つに限られます。

更新時と送信時に実行されるデータ検証

同期プロセスでは、同期用にタグ付けされているタスクと作業項目が Project Server に発行される前に検証されます。 データ検証は、エンタープライズ プロジェクト計画とチーム プロジェクトの両方で実行されます。

プロジェクト マネージャーがエンタープライズ プロジェクト計画を発行した場合

Project Professional で作業しているプロジェクト マネージャーが、チーム プロジェクトにマップされたエンタープライズ プロジェクト計画を発行すると、特定の検証チェックが実行されます。 Team Foundation のアドインによって、Team Foundation に発行するように設定されているタスク (つまり、[チーム プロジェクトに発行] が [はい] に設定されているタスク) に対して、次の検証チェックが実行されます。

  • "作業項目の種類" フィールドに設定されている値が、対象のチーム プロジェクトで同期に含めるように構成されている作業項目の種類と一致する必要があります。

    重要

    Text30 は、タスクを作業項目と同期する際に使用される [作業項目の種類] 列に関連付けられている Project の既定のフィールドです。Team リボン メニューの [チーム プロジェクトの選択] を使用して、プロジェクト計画を Team Foundation Server に接続すると、[作業項目の種類] というラベルが付いた追加の Project フィールドも選択できるようになります。Project の既定のフィールド Text24 を持つこのフィールドは、Team Foundation にバインドされたプロジェクト計画のマッピングをサポートしていますが、計画の同期はサポートしていません。Text24 ベースのフィールドには、チーム プロジェクトの作業項目の種類の完全なリストが含まれます。適切なフィールドを使用していることを確認するには、フィールドをポイントし、Text30 が表示されるかどうかを確認します。

  • 対象の作業項目の種類に設定されている規則に違反していないことを確認するために、Project のマップされたフィールドのすべての値が特定のチェックを通過する必要があります。 これらの規則は、エンタープライズ プロジェクト計画をチーム プロジェクトにマップしたときに、その計画に追加されます。

  • タスクの発行後に、[チーム プロジェクトに発行] および [作業項目の種類] に設定された値を変更することはできません。 タスクを引き続き同期したくない場合は、そのタスクを削除する必要があります。

  • タスクと従属タスクの 1 つが共に同期用にマーク付けされている場合、他のすべての従属タスクも同期用にマーク付けする必要があります。

  • タスクの "リソース名" フィールドの値が、対象のチーム プロジェクトの有効な共同作成者の名前と一致する必要があります。

  • 1 つのタスクに複数のリソースが割り当てられている場合は、アクティブな割り当てとして、リソース割り当てを 1 つだけ選択する必要があります。 詳細については、「プログラム管理オフィスでのアジャイル チーム進行状況の可視化」を参照してください。

  • すべての値は、Project Server が特定のフィールド定義に適用する規則に従っている必要があります。 たとえば、マップされたフィールドが、ルックアップ テーブルに関連付けられているがルックアップ テーブル内には存在しない場合、そのフィールドに値を割り当てるとエラーが発生する場合があります。

1 つ以上の規則に違反していると、[検証の解決] ダイアログ ボックスが表示されます。 プロジェクト マネージャーは、変更を発行する前に各エラーを解決する必要があります。

開発者が Team Foundation から新しい作業項目または更新した作業項目を送信した場合

Team Foundation で作業している開発者が作業項目を作成または更新し、変更を保存すると、Project Server に発行するように設定されている作業項目 (つまり、[Project Server に送信] が [はい] に設定されている作業項目) に対して、次の検証チェックが実行されます。

  • "担当者" フィールドの値が、エンタープライズ リソース共有元、およびプロジェクト計画のプロジェクト リソースに追加されているチーム メンバーに対応している必要があります。 詳細については、「TFS と Project Server を統合するためのアクセス許可の割り当て」を参照してください。

  • チーム プロジェクトにマップされたエンタープライズ プロジェクト計画が 1 つしかない場合は、新しく作成された作業項目の [Project Server] タブの "エンタープライズ プロジェクト" フィールドに、エンタープライズ プロジェクト計画の名前が自動的に表示されます。

  • チーム プロジェクトに複数のエンタープライズ プロジェクトがマップされている場合は、新しく作成され、"Project Server に送信" の値が "はい" に設定されている作業項目の "エンタープライズ プロジェクト" フィールドの値を指定する必要があります。

  • Project のタスクにリンクされた作業項目の階層構造を変更することはできません。 詳細については、「Summary Tasks, Task Hierarchy, and Submissions of Work Items that Are Nested at Multiple Levels」を参照してください。

  • マップされた作業項目の種類に追加されている規則によって、プロジェクト計画の発行時に検証エラーが発生する場合があります。 たとえば、条件付き規則によって、ユーザーがフィールドに割り当てることのできる値が制限されることがあります。 詳細については、「作業項目フィールドへの規則の適用」を参照してください。

  • ルックアップ テーブルなど、Project Server のフィールドの定義に対応する基本的な規則によって、ステータス同期中にエラーが発生する場合があります。 たとえば、Project のフィールドに対してルックアップ テーブルを使用して有効な値を定義し、そのフィールドを Team Foundation のフィールドにマップした後、ルックアップ テーブルに含まれない値を Team Foundation のフィールドに設定すると、エラーが発生します。

作業項目を Project Server に発行すると、その項目は対象のエンタープライズ プロジェクト計画のタスクにバインドされます。 このバインディングは "リンク" とも呼ばれます。 同期中、リンクはロックされます。 リンクを削除するには、Project で対応するタスクを削除するか、プロジェクト計画または作業項目の種類のマッピングを削除するときに /force オプションを使用する必要があります。 詳細については、「データ同期からのコンポーネントの除外」を参照してください。

ページのトップへ

ミラー フィールドおよび "2 つのブック セット"

同期エンジンは 3 種類の同期を実行し、スケジュールされたネゴシエーションで 2 つのデータベースと通信するため、データのマージが発生することはありません。 代わりに、データ同期が 2 ステップ シーケンスで発生し、エンジンは 2 つの製品間の相違を許可します。 Team Foundation の同期されるフィールドごとに、Project Server に、マップされた対応するフィールドの値を格納するミラー フィールドを定義します。 通常の同期操作では、プロジェクト マネージャーが更新を承認してプロジェクト計画を発行するまで、値が Team Foundation Server で更新される場合、2 つのフィールドの値は異なります。

マップするフィールドごとに、同期エンジンによる Team Foundation の参照フィールドの更新方法として、次のいずれかを指定します。

詳細については、「TFS と Project Server の統合における XML 要素リファレンスのフィールド マッピング」を参照してください。

ページのトップへ

同期のサポートに必要なアクセス許可

Team Foundation Server と Project Server 間でデータを同期する場合、次のアクセス許可を付与する必要があります。

  • Project Server 2010 の場合、Project Server Service アプリケーションにアクセスできるように、TfsJobAgent を実行するサービス アカウントに [フル コントロール] アクセス許可を付与する必要があります。 詳細については、「TFS と Project Server を統合するためのアクセス許可の割り当て」を参照してください。

  • TfsJobAgent を実行するサービス アカウントに、PWA のマップされた各インスタンスにアクセスするために必要なアクセス許可を付与する必要があります。

  • Project Professional のタスクまたは Team Foundation の作業項目に割り当てられているユーザーは、チーム プロジェクトの共同作成者として認識される必要があります。 また、これらのユーザーは、エンタープライズ プロジェクト計画のリソースとしても認識される必要があり、同期プロセスに参加する PWA のインスタンスにログオンするためのアクセス許可を付与する必要があります。

詳細については、「TFS と Project Server を統合するためのアクセス許可の割り当て」を参照してください。

ページのトップへ

エラー通知、イベント ログ、および追跡可能性

同期エンジンは、Project Server に発行されるプロジェクトの更新、ステータスの更新、承認の更新の順に処理します。 発行するときは、Project Server を更新して、タスクおよびタスクの詳細をエンタープライズ プロジェクト計画に追加します。 発行同期により、データが Project Server から Team Foundation Server にプルされます。 ステータス同期では、Team Foundation のデータがプロジェクト マネージャーの承認キューに更新され、承認同期が残存作業や実績作業などのフィールドに関する更新を Project Server に発行します。この処理により、新しい同期サイクルが開始されます。

各種同期により、Project Professional または PWA のインスタンスで、関連するステータスやエラー メッセージをプロジェクト マネージャーに表示できるようになります。 また、同期エンジンとその構成に関連するステータスおよびエラー メッセージを、Team Foundation Server と Project Server の適切な管理インターフェイスに書き込むこともできます。

プロジェクト マネージャー、チーム メンバー、および管理者は、発生した同期関連メッセージをすべて参照し、診断できます。 メッセージは、次の場所に書き込まれます。

  • Project Professional では、エンタープライズ プロジェクト計画のステータス バーに発行の進行状況が示されます。

  • PWA のインスタンスでは、更新されるタスクのキューが承認センターに示されます。

  • Team Foundation の作業項目フォームでは、[Project Server] タブに、作業項目が最後に同期されたときのステータスと同期時刻が示されます。

  • Team Foundation の作業項目フォームでは、作業項目が更新されるたびに、同期ステータスとエラー メッセージが "履歴" フィールドに記録されます。 Project Server 2010 と統合している場合は、プロジェクト マネージャーがステータス更新を承認または却下したときに作成したコメントも "履歴" フィールドに記録されます。

  • データ同期に参加するアプリケーション層サーバーのイベント ログには、すべての同期イベントとエラーの記録が保持されます。

管理者は、TfsAdmin ProjectServer /GetSyncMessages コマンドを使用して最新のイベント メッセージを取得できます。 詳細については、「同期エンジンのエラー メッセージの表示」を参照してください。 さらに詳しい情報を収集するには、サービスを実行する Team Foundation Background Job Agent の詳細なトレースを有効にします。 詳細については、「Team Foundation Background Job Agent」を参照してください。

ページのトップへ

参照

概念

Team Foundation Server と Project Server の統合の管理

その他の技術情報

TFS と Project Server の統合を使用したプロジェクトの管理