TFS にインポートする必要がある ReqPro から作成された要件のExcelスプレッドシートがあります。各要件には、リンク元フィールドとリンク先フィールドがあり、どちらにも複数のエントリを含めることができます。リンク関係は多対多であるため、直接リンクタイプを使用する必要があります (親子ではありません)。Excel 2010 を使用してこれをインポートできると思っていましたが、Excel で直接リンクを使用してクエリを開くと、結果はフラットでリンク情報が含まれていません。これらの要件が 10,000 以上あり、何千ものリンクをインポートする必要があるため、これを自動化する必要があります。多対多をインポートする簡単な方法はありますかTFSへの直接リンク?
1 に答える
申し訳ありませんが、これは仕様によるものです。Microsoft Connect で提起されたこのバグを参照してください http://connect.microsoft.com/VisualStudio/feedback/details/667973/tfs-2010-work-items-with-direct-links-query- gos-to-excel-as-a-a-flat-list# .
ただし、いくつかの回避策があるようですが、
クエリの結果を表示するだけでよい場合は、電子メールで送信するか、Sharepoint ポータルから結果をレポートとして表示できます。(これは明らかに「設計による」ものであるため、一貫性のない設計と言える人はいますか?)
結果を編集する必要がある場合は、クエリを「作業項目のツリー」タイプのクエリにすることができます。
TFS SDK を使用して、Excel ドキュメントを適切に作成します。私はこれでいくつかの調査を行いましたが、それは実行可能ですが、表示するだけでよいため、#1で十分です. 生成されたドキュメントを編集可能にするには、時間がかかる場合があります。
PS - 作業項目のツリーを Excel にエクスポートしようとしたことを確認でき、リンク構造がそのまま保持されます。また、これを行う方法については、この MSDN の記事を参照してください http://msdn.microsoft.com/en-us/library/dd286627.aspx
ただし、TFS API を使用したい場合は、以下にいくつかの疑似コードを追加します。 /en-us/library/gg575571.aspx 2. TFS API を使用してプログラムで作業項目を作成する 3. 作業項目間のリンクを作成するhttp://blogs.microsoft.co.il/blogs/shair/archive/2010/02 /27/tfs-api-part-22-create-link-between-work-item-parent-child-etc.aspx
private void ReadInformationFromExcelAndCreateLinkWorkItems()
{
using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(@"FilePath\fileName", false))
{
WorkbookPart workbookPart = spreadsheetDocument.WorkbookPart;
WorksheetPart worksheetPart = workbookPart.WorksheetParts.First();
SheetData sheetData = worksheetPart.Worksheet.Elements<SheetData>().First();
string text;
int WorkItemId = 0;
foreach (Row r in sheetData.Elements<Row>())
{
foreach (Cell c in r.Elements<Cell>())
{
// Loop through each row till you complete one logical block of work item Links.
var tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("TfsUrl"));
var wiStore = tfs.GetService<WorkItemStore>();
WorkItem wi = new WorkItem(new WorkItemType // Create a new work item of the type as in your excel)
// associate all column cell values to the work item
wi.Save();
// This should give you an ID now
WorkItemId = wi.Id;
}
}
}
}
HTH 乾杯、タルン