2011-12-02 6 views
7

はありません。TFS 2010の作業項目を保存する準備ができていませんが、私はプログラム的TFSの作業項目を保存しますが、常に例外を取得しようとしている何の検証項目

TF237124: Work Item is not ready to save 

、私はこれを言っているか理解は作業項目は、必須フィールドが欠落または類似していること - - と私のコードを呼び出すことで、これを予想している私:

ArrayList ValidationResult = wi.Validate(); 

を保存する前に。しかし、私のArrayListは、この呼び出しの後の要素を含んでいません。

同じ資格情報を使用してTFS Webインターフェイスにログインしようとしましたが、うまく動作するように作業項目を作成しようとしました。

ワークアイテムが保存されない理由を確認するにはどうすればよいですか?ここに私のコードは次のとおりです。

// get a reference to the team project collection (authenticate as generic service account) 
     using (var tfs = new TfsTeamProjectCollection(tfsuri, new System.Net.NetworkCredential("My_User", "password"))) 
     { 
      tfs.EnsureAuthenticated(); 
      var workItemStore = GetWorkItemStore(tfs); 

      // create a new work item 
      WorkItem wi = new WorkItem(GetWorkItemType(type, workItemStore)); 
      { 
       //Values are supplied as a KVP - Field Name/Value 
       foreach (KeyValuePair<string,string> kvp in values) 
       { 
        if (wi.Fields.Contains(kvp.Key)) 
        { 
         wi.Fields[kvp.Key].Value = kvp.Value; 
        } 
       } 

       ValidationResult = wi.Validate();      
       } 

       if (ValidationResult.Count == 0) 
       { 
       wi.State = wi.GetNextState("Microsoft.VSTS.Actions.Checkin"); 
       wi.Save(); 
       return wi.Id; 
       } 
       else 
       { 
       return 0; 
       } 
      } 
     } 
+0

TFSのどのバージョンですか? –

+0

2010年、タイトルを更新しました。 – Simon

答えて

13

あなたは前に、作業項目を検証しているあなたはそれの状態を変更しています。新しい状態に遷移すると、ワークアイテムテンプレートのアクション/ルールが処理される可能性があります。これらは、いくつかのフィールドの値を変更したり、新しいルールをフィールドに追加して、以前に有効なデータを無効にすることができます。

オープン状態からクローズ状態への移動は、誰かが「レビュー」フィールドを完了するために誰かを必要とします(例えば、それが空であれば、それは移行できません)。

状態の変更後に検証を行い、失敗がないかどうかを確認してください。

+0

ビンゴ!ありがとう、私は今私が期待するように失敗を表示します。 – Simon

関連する問題