0

TFS にインポートする必要がある ReqPro から作成された要件のExcelスプレッドシートがあります。各要件には、リンク元フィールドとリンク先フィールドがあり、どちらにも複数のエントリを含めることができます。リンク関係は多対多であるため、直接リンクタイプを使用する必要があります (親子ではありません)。Excel 2010 を使用してこれをインポートできると思っていましたが、Excel で直接リンクを使用してクエリを開くと、結果はフラットでリンク情報が含まれていません。これらの要件が 10,000 以上あり、何千ものリンクをインポートする必要があるため、これを自動化する必要があります。多対多をインポートする簡単な方法はありますかTFSへの直接リンク?

4

1 に答える 1

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# .

ただし、いくつかの回避策があるようですが、

  1. クエリの結果を表示するだけでよい場合は、電子メールで送信するか、Sharepoint ポータルから結果をレポートとして表示できます。(これは明らかに「設計による」ものであるため、一貫性のない設計と言える人はいますか?)

  2. 結果を編集する必要がある場合は、クエリを「作業項目のツリー」タイプのクエリにすることができます。

  3. 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 乾杯、タルン

于 2011-07-19T09:34:23.787 に答える