次の方法で共有


Microsoft Project のフィールド マッピング ファイルのカスタマイズ

Team Foundation に定義されている作業項目フィールドを Microsoft Project のフィールドにマッピングする方法をカスタマイズできます。また、特定のフィールドの発行方法も変更できます。 Microsoft Project には、"タスク名" などの定義済みのフィールドおよびカスタム フィールドが含まれます。 ユーザーが、Microsoft Project 内の作業項目データを発行または更新すると、フィールド マップにより、作業項目データベース内のフィールドと Microsoft Project 内のフィールドの対応が判断されます。

プロジェクトと TFS を使用して作業を追跡する詳細については、「Project を使用したバックログとタスクの作成」を参照してください。

チーム プロジェクトのフィールド マッピングを変更するには、TFSFieldMapping コマンド ライン ツールを使用して Microsoft Project マッピング ファイルをエクスポートしてインポートします。

Mapping 要素

作業項目フィールドとプロジェクトの列の間のマッピングを指定するには、Mapping 要素を使用します。

以下の XML 構文を使用して、作業項目の種類フィールドと Microsoft Project フィールド間のマッピングを指定します。 次に、Mapping 要素を使用して、フィールド マップを指定します。

<Mapping WorkItemTrackingFieldReferenceName="" 
         ProjectField=""
         ProjectName=""
         ProjectUnits=""
         PublishOnly="">
         IfSummaryRefreshOnly=""/>

属性

次の表に、Mapping 要素と共に使用できる属性を示します。

属性

説明

WorkItemTrackingFieldReferenceName

必ず指定します。 作業項目の種類のフィールドの参照名を指定します。

ProjectField

必ず指定します。 Microsoft Project のフィールドの名前を指定します。 Task Name 列の pjTaskName のように、名前の先頭に "pj" を付けることによって、定義済みのフィールド名を指定します。 カスタム フィールドは、pjTaskText の末尾に番号を付けて、pjTaskText11 のように指定します。

ProjectName

省略可能です。 Microsoft Project に列名として表示される名前を指定します。 この属性を指定しない場合、作業項目の種類のフィールド名が使用されます。

ProjectUnits

省略可能です。 Microsoft Project にフィールドの種類をマップするときに使用する単位の種類を指定します。 値は pjMinute、pjHour、pjDay、pjWeek および pjMonthUnit を指定できます。

注意

ProjectUnits は、期間またはその他の時間単位を表すフィールドにのみ使用できます。

PublishOnly

省略可能です。 この属性を true に設定すると、フィールドは作業項目データベースに発行されるだけで、最新の情報には更新されません。 通常この値は、チーム エクスプローラーで更新してはならない計算済みのフィールドに使用します。 この属性を false に設定すると、フィールドの発行と最新の情報への更新の両方が実行されます。 既定値は false です。

既定のマッピング ファイルでは、PublishOnly 属性が true に設定されるのは、"開始日" フィールドと "完了日" フィールドの 2 つです。

IfSummaryRefreshOnly

省略可能です。 この属性を true に設定した場合、次の項目に該当するときは、フィールドが作業項目データベースに発行されず、作業項目データベースから最新の情報に更新されます。

  • フィールドの行が Office Project のサマリー タスクである。

  • サマリー タスクの Publish 値と Refresh 値が Yes に設定されている。

  • サマリー タスクには、Team Foundation Server にバインディングされている子タスクが 1 つ以上存在する。

Microsoft Project が行う更新や計算により、プロジェクト計画の作業項目データベースから更新された値を上書きできます。ただし、変更後の値は作業項目データベースに保存されません。 通常、この属性は、作業項目データベースに発行した場合にデータの不整合が生じる可能性のあるサマリー フィールドにのみ使用されます。

この属性を false に設定すると、フィールドの発行と最新の情報への更新の両方が実行されます。 省略時の既定値は false です。

注意

IfSummaryRefreshOnly 属性に割り当てられる値は、PublishOnly に割り当てられる値よりも優先されます。詳細については、このトピックで後述する「発行および更新に影響するフィールド」を参照してください。

既定のマッピング ファイルでは、"最初の見積もり""残存作業"、および "実績作業" の各フィールドについて IfSummaryRefreshOnly 属性が true に設定されます。

以下の例は、タイトルを含む作業項目の種類フィールドを Microsoft Project のタスク名フィールドにマップする方法を示しています。

<Mapping WorkItemTrackingFieldReferenceName="System.Title" 
         ProjectField="pjTaskName"/>

以下の XML 構文は、開始日を含む作業項目の種類フィールドを Microsoft Project の開始日フィールドにマップする方法を示す複雑な例です。 計算済みのフィールドなので、チーム エクスプローラー で更新することによって起きるエラーを防ぐために、発行はするが更新しないように指定されています。

<Mapping WorkItemTrackingFieldReferenceName="Microsoft.VSTS.Scheduling.StartDate" ProjectField="pjTaskStart" PublishOnly="true"/>

注意

ベスト プラクティスとして、Microsoft Project の計算済みフィールドは Team Foundation の読み取り専用フィールドにマップしてください。そうすれば混乱を避けることができ、チーム メンバーが計算済みフィールドを変更しようとしなくなります。

ReservedField 要素

ReservedField 要素は、タスク間で定義されている階層リンクをサポートするための要素であり、省略可能です。

マッピングでこの要素を指定しなかった場合、Microsoft Project では既定の pjNumber20 フィールドが使用されます。

SyncField 要素

同期フィールドを使うと、各タスクの発行と更新の動作を制御できます。 このフィールドは、Team System タスク シート ビューを使用するとき、"発行および更新" というタイトルの列として表示されます。

同期フィールドは Microsoft Project のフィールド マッピング ファイルで指定する必要があります。 どのフィールドが同期フィールドかを指定するには、以下の XML 構文を使用します。 同期フィールドを指定するには、SyncField 要素を使用します。 ProjectField 属性は、有効な Office Project フィールドに設定されている必要があります。

<SyncField ProjectField="" />

pjTaskText25 を同期フィールドとして指定する例を以下に示します。

<SyncField ProjectField="pjTaskText25" />

Office Project での同期フィールドの使用方法の詳細については、「プロジェクトでの作業項目の発行または更新 [リダイレクト]」を参照してください。

ResourceNameSeparator 要素

ResourceNameSeparator を使用すると、文字列内のリソース名を識別する文字を定義できます。 Team Foundation のユーザーおよびリソースは、Active Directory ディレクトリ サービスのユーザーと同期されます。 ユーザーおよびリソースの名前には、リソースの姓、名、およびミドル ネームのイニシャルを分離するために、コンマなどの区切り記号を含めることができます。

これは、省略可能な要素です。 マッピングでこの要素が指定されていない場合、Microsoft Project では、次の表で定義されている既定のマッピングを使用して、リソース名が分離されます。

Active Directory およびチーム プロジェクトのリスト区切り記号

Office Project で置換される区切り記号

,

;

;

:

.

:

上の表に示す文字以外を使用する場合は、次の構文を使用して、ResourceNameSeparator を定義できます。

<ResourceNameSeparator WorkItemTrackingCharacter="" ProjectCharacter=""/>

Office Project の文字が "-" である場合に、Team Foundation で区切り記号として文字 "*" を指定する方法を次の例に示します。

<ResourceNameSeparator WorkItemTrackingCharacter="-" ProjectCharacter="*"/>

階層リンクの種類

Microsoft Project でサマリー タスクを作成すると、親であるサマリー タスクと子である下位のタスクの間にツリー リンクが作成されます。 Office Project では、既定の System.LinkTypes.Hierarchy を使用してこれらのリンクを作成します。

依存関係リンクの種類

Microsoft Project のタスク間のリンクを作成するときは、タスク間の依存関係リンクを作成します。 先行処理タスクには先行処理リンクが割り当てられ、後続処理タスクには後続処理リンクが割り当てられます。 これらは、System.LinkTypes.Dependency リンクの種類に定義されている既定のリンクです。

発行および更新に影響するマッピング属性

次のマッピング フィールドおよび Microsoft Project フィールドの値によって、作業項目の値が発行または更新されるかどうかが決まります。

  • 各作業項目の [発行および更新] の値

  • 個々のマッピング フィールドの PublishOnly 属性の値

  • 個々のマッピング フィールドの IfSummaryRefreshOnly の値。

  • サマリー タスク (つまり親タスク) としてのタスクの分類

    親タスクは、Team Foundation Server に発行される子タスクを 1 つ以上持つタスクです。

作業項目がサマリー タスクではない場合

作業項目がサマリー タスク (親タスク) ではない場合、マッピング フィールドの属性、および項目の [発行および更新] の値への割り当てに基づいて、作業項目が発行または更新されるかを次の表に示します。

発行および更新

(タスク レベル)

PublishOnly 属性

フィールドの発行

フィールドの更新

いいえ

True または False

いいえ

いいえ

更新のみ

True または False

いいえ

はい

はい

True

はい

いいえ

はい

False

はい

はい

作業項目がサマリー タスクである場合

サマリー タスクの基準を満たし、IfSummaryRefreshOnly が true の場合、その値が PublishOnly 値よりも優先されます。 サマリー タスク (親タスク) の場合、[発行および更新] の値への割り当ておよびマッピング フィールドの属性に基づいて、作業項目が発行または更新されるかを次の表に示します。

発行および更新

(タスク レベル)

PublishOnly 属性

IfSummaryRefreshOnly

属性

フィールドの発行

フィールドの更新

いいえ

True または False

True または False

いいえ

いいえ

更新のみ

True

True

いいえ

はい

更新のみ

True

False

いいえ

はい

更新のみ

False

True または False

いいえ

はい

はい

True または False

True

いいえ

はい

はい

True

False

はい

いいえ

はい

False

False

はい

はい

参照

概念

リンクの種類要素のリファレンス

Project フィールドを TFS フィールドにマッピングする方法の追加と変更