SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Visual Studio Team System 徹底活用

Team Foundation Serverで作業項目もスケジュールもまとめて管理(実践編)

Visual Studio Team System 徹底活用(6)

Team Explorerでチームプロジェクトの作成

 次は、TFSのチームプロジェクトを作成します。作業端末はTeam Explorerがインストールされていて、TFSに接続可能な端末となります。ここでは、チームプロジェクトを作成する時に利用するプロセステンプレートに注意点があるので、そこを確認していきましょう。

 TFS用PS Connector Componentをインストールすると、TFSに「MSF Agile For PS Connector - v4.2」と「MSF CMMI For PS Connector - v4.2」という2つのプロセステンプレートがインストールされます。これらはProject Server連携用に各種設定がされたプロセステンプレートですが、言語情報が英語に設定されています。このため、チームプロジェクトの作成と同時にWindows SharePoint Services(以下、WSS)のサイトを作成する段階でエラーが発生します。これを回避するために、必ず次のプロセステンプレートのカスタマイズの部分の作業を行ってから先に進んでください。

プロセステンプレートのカスタマイズ

 本シリーズ第1回の「作業項目の定義情報をTFSから取得する」を参考に、先ほどの2つのうちから利用したいプロセステンプレートをダウンロードしてください。ダウンロードしたフォルダの「Windows SharePoint Services」フォルダ内にあるWssTasks.xmlをメモ帳などで開きます。次のリスト1を参考に7行目にある<site>要素のlanguage属性が"1033"になっている部分を"1041"に変更します。

[リスト1]WssTasks.xmlファイルの編集
<taskXml>
  <Portal>
    <site template="VSTS_MSFAgile" language="1041" />
    <documentLibraries>
    ・・・

 さらに、プロセステンプレートダウンロードフォルダ内にあるProcessTemplate.xmlを開き、次のリスト2に示すように<ProcessTemplate> - <metadata> - <name>要素の値を変更します。

[リスト2]ProcessTemplate.xmlファイルの編集
<ProcessTemplate>
  <metadata>
    <name>MSF for Agile Software Development - v4.2</name>
    ・・・

 これは、PS Connectorのマッピング設定が利用したプロセステンプレート名を識別して動作するようになっているためです。既存のプロセステンプレートを上書きすることになってしまうため、それを嫌う場合には、後述のPS Connectorでマッピングの確認のところで説明するマッピング設定ファイルの編集作業を行ってください。

 変更を保存したら、同じく第2回の「作業項目の定義情報をTFSに登録する」を参考に編集したファイルを含むプロセステンプレートをTFSにアップロードします。同名のプロセステンプレートがある旨を問われますが、上書きしてしまって構いません。

チームプロジェクトの作成

 では、チームプロジェクトの作成を行います。作成のステップは本シリーズ第2回の「作業項目を利用する」を参考にしてください。使用するプロセステンプレートは必ずさきほど編集したものを利用します。それ以外の部分についてはすべて任意で構いません。

PS Connectorでマッピングの登録

 マッピング情報の設定の最後はPS Connectorの管理サイトで行います。ここではブラウザしか利用しないので、PS Connector管理サイトにWindows認証で管理者ユーザーとしてログインできればどの端末からでも構いません。ここでは、マッピング登録の前にPS Connectorを正しく動かすために必要ないくつかのステップを踏みますので併せて確認していきます。

日本語リソースファイルの準備

 PS Connectorは基本的には英語版のTFSでしか動作することができません。これは、PS Connectorの内部動作で「Team Foundation Valid Users」というTFSのグループ名を検索するためです。この名称は日本語版TFSでは「Team Foundation 有効ユーザー」と名前が変更されているため、実行時に例外が発生します。

 幸い、このキーワードはPS ConnectorのDLL内にリソースとして定義されているので、日本語版のリソースファイルを作成して差し替えることで動作させることができます。本稿のサンプルに文字列リソースの「ja-JP.txt」ファイルとサテライトアセンブリにしたMicrosoft.VSTS.Ranger.Connector.TFSServiceAgents.resources.dllを用意してありますので、作成するのが面倒な場合にはこれを利用してください(ただし、必要な部分のみ日本語化してあります)。

 このリソースファイルをPS Connectorをインストールした端末(本稿の場合はconnector)の「C:\Program Files\Microsoft Project Server 2007 Connector\Connector Web Service\Bin」フォルダに「ja-JP」というフォルダを作って、その中に格納します。

マッピング情報の確認

 PS Connectorはどんなプロセステンプレートを使ってもProject Serverのタスクとマッピングできるわけではありません。決められたプロセステンプレート、決められた作業項目を利用して初めてマッピングが行われます。

 この情報はPS Connectorをインストールした端末の「C:\Program Files\Microsoft Project Server 2007 Connector\Connector Web Service」フォルダ内にあるweb.configに記載されています。

 ファイルの中身は、例えば<configuration> - <tfsSynchronization> - <workItemStores> - <add> - <workItemMappings> - <add>と要素をたどると、processTemplate要素属性には「MSF for Agile Software Development - v4.2」という設定があり、さらにその中の要素をよく見てみるとプロセステンプレートの作業項目定義名やその中にあるフィールド参照名を見つけることができ、ここにマッピングの設定がされていることが分かります。例としてリスト3には「MSF for Agile Software Development - v4.2」というプロセステンプレートの「Bug」作業項目に対するマッピング設定を示します。

[リスト3]PS Connectorのマッピング設定例(type属性部分は省略表示)
 1 <configuration>
 2   ・・・
 3   <tfsSynchronization>
 4     <workItemStores>
 5       <add epmApprovalNeeded="true" serverUrl="http://ps2007/PWA" authenticationType="Windows"
 6            userName="" password="" sspUrl="http://ps2007:56737/SharedServices1"
 7            siteGuid="dd74af27-0a45-4553-9946-3dae5a15abac" ps2007AssocDb="PS2007 Provider Db"
 8           deleteCreateEqualsUpdate="true" type=<<省略>> name="PS2007WorkItemStoreNode">
 9      <workItemMappings>
10        <add processTemplate="MSF for Agile Software Development - v4.2"
11             name="MSF for Agile Software Development - v4.2 Mapping">
12          <workItemTypeMappings>
13            <add partnerWorkItemType="Bug" tfsWorkItemType="Bug" name="Bug Mapping">
14              <fieldMappings>
15                <add partnerWorkItemField="RES_UID" tfsWorkItemField="System.AssignedTo"
16                     defaultValueToTFS="" defaultValueFromTFS="" type=<<省略>> name="AssignedTo">
17                  <fieldMappingRules>
18                    <add direction="FromTFS" type=<<省略>> name="TFS Account Name Rule"/>
19                    <add direction="FromTFS" type=<<省略>> name="ResourceId Lookup"/>
20                    <add direction="ToTFS" type=<<省略>> name="ResourceId To Account Name"/>
21                    <add direction="ToTFS" type=<<省略>> name="TFS Display Name Rule"/>
22                  </fieldMappingRules>
23                </add>
24                <add entityName="Task" partnerWorkItemField="TASK_NAME" tfsWorkItemField="System.Title"
25                     defaultValueToTFS="" defaultValueFromTFS="" type=<<省略>> name="Title Mapping"/>
26              </fieldMappings>
27            </add>
28   ……

 13~27行目が「Bug」作業項目のためのマッピング設定です。15~23行目や24~25行目は「Bug」作業項目に含まれるフィールドとProject Serverのタスクフィールドのマッピングを設定している部分で、前者は「担当者」フィールド、後者は「作業項目タイトル名」に関するマッピング設定を行っています。初期ではあまり多くのマッピングがされていませんが、作業項目のその他フィールドについてもProject Serverのタスクフィールドとの関連付けを行いたい場合にはここを編集します。また、先ほどTFSにプロセステンプレートをアップロードする際に、MSF for Agile Software Development - v4.2としてアップロードしなかった場合には対応する名前に変更して、ファイルを保存しておいてください。

次のページ
連携動作の確認

この記事は参考になりましたか?

Visual Studio Team System 徹底活用連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト りばてぃ(リバティ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/4679 2010/01/15 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー