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"に変更します。
<taskXml>
<Portal>
<site template="VSTS_MSFAgile" language="1041" />
<documentLibraries>
・・・
さらに、プロセステンプレートダウンロードフォルダ内にあるProcessTemplate.xmlを開き、次のリスト2に示すように<ProcessTemplate> - <metadata> - <name>要素の値を変更します。
<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」作業項目に対するマッピング設定を示します。
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としてアップロードしなかった場合には対応する名前に変更して、ファイルを保存しておいてください。
