2016-05-12 17 views
0

Ich habe versucht, eine Anfrage an "/ _api/ProjectServer/Projects ('projectid')/Zuweisungen" zu senden, aber es tut nichts anderes als Duplikate der letzten Zuweisung, was seltsam ist, da die Anzahl der zurückgegebenen Objekte immer ist entspricht der Anzahl der Zuordnungen, die im Projekt vorhanden sind.Gibt es einen REST-Endpunkt, um eine Liste der Aufgabenzuweisungen eines Projekts in Project Server zu erhalten?

Grundsätzlich, wenn ich eine Ressource zu jeder von hundert verschiedenen Aufgaben zuweisen, gibt der Aufruf 100 Duplikate der letzten Aufgabe in der Liste zurück.

Ich vermute, es könnte ein Fehler sein, ich würde es schätzen, wenn jemand meine Annahme bestätigen oder leugnen könnte und/oder lassen Sie mich wissen, wenn es eine andere Möglichkeit gibt, die Liste der Zuordnungen in einem Projekt abzurufen.

Antwort

0

ich nicht genau wusste, wie man mit Ruhe arbeiten, aber ich möchte Ihnen mit litle Codezeilen schaffen CSOM verwenden, die, wenn ich richtig die Frage verstanden, könnte es Ihnen helfen:

private static void ListPublishedProjects() 
     { 
      // Get the list of projects on the server. 
      projContext.Load(projContext.Projects); 
      projContext.ExecuteQuery(); 

      var proj = projContext.Projects.First(p => p.Name == "<project name>"); 
      projContext.ExecuteQuery(); 

      //You must ckeck out the project and load it's tasks 
      var draftProj = proj.CheckOut(); 

      projContext.Load(draftProj.Tasks); 
      projContext.ExecuteQuery(); 

      //Loop between all tasks 
      foreach (DraftTask task in draftProj.Tasks) 
      { 
       // Load all assignments in that task 
       projContext.Load(task.Assignments); 
       projContext.ExecuteQuery(); 

       //Loop between al assignments 
       foreach (var assignment in task.Assignments) 
       { 
        projContext.Load(assignment.Owner, temp => temp.LoginName, temp => temp.Email); 
        projContext.Load(assignment.Resource); 
        projContext.ExecuteQuery(); 

        Console.WriteLine("\n\t RESOURCE NAME:" + assignment.Resource.Name + " => " + assignment.ActualWork); 
       }  
      } 

      //Remember to publish and checkin the project when you finish your TODOs 
      draftProj.Publish(true); 
      draftProj.CheckIn(true); 
      QueueJob qJob = projContext.Projects.Update(); 
      JobState jobState = projContext.WaitForQueue(qJob, 200); 
     } 
} 

Hoffe es hilft,