2011-12-02 12 views
7

sto cercando di salvare una voce TFS lavoro a livello di codice, ma sempre ottenere l'eccezione:TFS 2010 elemento di lavoro non è pronto a salvare, ma non ci sono elementi di validazione

TF237124: Work Item is not ready to save 

Ora, capisco che cosa questo sta dicendo me - che l'elemento di lavoro manca un campo obbligatorio o simili - e il mio codice sta anticipando questo chiamando:

ArrayList ValidationResult = wi.Validate(); 

prima del salvataggio. Tuttavia il mio ArrayList non contiene elementi che seguono questa chiamata.

Ho provato ad accedere all'interfaccia Web TFS utilizzando le stesse credenziali e creando un elemento di lavoro in questo modo che funziona correttamente.

Come posso scoprire perché il mio elemento di lavoro non salverà? Qui è il mio codice:

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

Quale versione di TFS? –

+0

2010, ho aggiornato il titolo. – Simon

risposta

13

state convalidando l'elemento di lavoro prima di si sta modificando suo stato. La transizione a un nuovo stato può causare l'elaborazione di regole/azioni del modello dell'elemento di lavoro. Questi potrebbero cambiare i valori di alcuni dei tuoi campi e/o aggiungere nuove regole ai campi che potrebbero rendere non validi i dati precedentemente validi.

Passaggio da uno stato Aperto a uno Stato chiuso potrebbe richiedere a qualcuno di completare un campo "Revisione" (ad esempio) - se è vuoto non può essere trasferito.

Provare a convalidare dopo la modifica dello stato e vedere se ci sono errori.

+0

Bingo! Grazie, ora ho dei fallimenti che appaiono come mi aspetterei. – Simon

Problemi correlati