2011-12-02 2 views
7

que estoy tratando de guardar un elemento de trabajo TFS programación, pero es siempre obtener la excepción:TFS 2010 de elemento de trabajo no está listo para guardar, pero no hay elementos de validación

TF237124: Work Item is not ready to save 

Ahora, entiendo lo que está diciendo este yo - que el elemento de trabajo le falta un campo requerido o similar - y mi código está anticipando esto llamando:

ArrayList ValidationResult = wi.Validate(); 

antes de que el guardar. Sin embargo, mi ArrayList no contiene elementos después de esta llamada.

He intentado iniciar sesión en la interfaz web de TFS usando las mismas credenciales y creando un elemento de trabajo de esa manera que funciona bien.

¿Cómo puedo descubrir por qué mi Objeto de trabajo no se guardará? Aquí está mi código:

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

¿Qué versión de TFS? –

+0

2010, actualicé el título. – Simon

Respuesta

13

está validando el elemento de trabajo antes va a cambiar su estado. La transición a un nuevo estado puede hacer que se procesen las acciones/reglas de la Plantilla de elementos de trabajo. Estos podrían estar cambiando los valores de algunos de sus campos y/o agregando nuevas reglas a los campos que causarían que los datos previamente válidos no sean válidos.

Pasar de un estado Abierto a uno Cerrado puede requerir que alguien complete un campo "Revisar" (por ejemplo) - si está vacío no puede transmitir.

Intente validar después del cambio de estado y verifique si hay algún error.

+0

¡Bingo! Gracias, ahora recibo fallas como era de esperar. – Simon

Cuestiones relacionadas