2011-12-02 5 views
7

मैं एक TFS काम मद प्रोग्राम के रूप में बचाने के लिए, लेकिन हमेशा अपवाद मिल कोशिश कर रहा हूँ कर रहे हैं: अबTFS 2010 कार्य आइटम को बचाने के लिए तैयार नहीं है लेकिन कोई सत्यापन आइटम

TF237124: Work Item is not ready to save 

, मैं समझता हूँ कि इस कह रहा है मुझे - कि वर्क आइटम में एक आवश्यक फ़ील्ड या इसी तरह की अनुपलब्धता है - और मेरा कोड कॉल करके यह अनुमान लगा रहा है:

ArrayList ValidationResult = wi.Validate(); 

सहेजने से पहले। हालांकि मेरे ऐरेलिस्ट में इस कॉल के बाद कोई तत्व नहीं है।

मैंने समान प्रमाण-पत्रों का उपयोग करके टीएफएस वेब इंटरफ़ेस में लॉग इन करने और एक कार्य आइटम बनाने का प्रयास किया है जो ठीक काम करता है।

मुझे कैसे पता चलेगा कि मेरा कार्य आइटम क्यों नहीं बचाएगा?

// 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

टीएफएस का कौन सा संस्करण? –

+0

2010, मैंने शीर्षक अपडेट किया है। – Simon

उत्तर

13

आप से पहले काम आइटम सत्यापित कर रहें आप इसे राज्य है बदल रहे हैं: यहाँ मेरी कोड है। एक नए राज्य में संक्रमण कार्य कार्य टेम्पलेट क्रियाओं/नियमों को संसाधित करने का कारण बन सकता है। ये आपके कुछ फ़ील्ड के मानों को बदल सकते हैं और/या उन फ़ील्ड में नए नियम जोड़ सकते हैं जो पहले वैध डेटा को अमान्य मानते हैं।

एक ओपन स्टेट से एक बंद राज्य में स्थानांतरित करना किसी को "समीक्षा" फ़ील्ड (उदाहरण के लिए) को पूरा करने की आवश्यकता है - यदि यह खाली है तो यह संक्रमण नहीं हो सकता है।

राज्य परिवर्तन के बाद सत्यापित करने का प्रयास करें और देखें कि क्या कोई विफलता है या नहीं।

+0

बिंगो! धन्यवाद, अब मैं असफल होने की उम्मीद करता हूं जैसा कि मैं उम्मीद करता हूं। – Simon

संबंधित मुद्दे