2016-04-18 2 views
0

Ich versuche, die Zeitplanvarianz aller Projekte in Microsoft Project Server zu finden. Ich verwende CSOM und C#, um auf den Server zuzugreifen, und ich erhalte einige Details zu den Projekten.Projekte Server - Varianz des Zeitplans mit tatsächlichen und Baseline-Daten

Die Zeitplanvariation würde Aktueller Start/Ende, Anfangs-/Enddatum der Baseline erfordern. Als ich das Start- und Enddatum in Projektanfrag enthalten wie zum Projektkontext laden:

projContext.Load(pubProj, d=> d.StartDate, d=>d.FinishDate, d=>d.Name, 
d=>d.CustomFields, d=>d.Description, d=>d.Id,d=>d.Owner, 
d=>d.PercentComplete, d=>d.LastPublishedDate, d=>d.ApprovedEnd, 
d=>d.ApprovedStart); 

Ich sehe, dass die Start- und Enddaten bevölkern, aber das Startdatum variiert von dem, was ich in dem Projekt sehen Informationen zur Benutzeroberfläche Außerdem konnte ich nicht herausfinden, wie man die Basisdaten erhält, die wir in der Tracking-Ansicht von Projekten sehen würden.

Bitte kann mir hier jemand helfen?

Antwort

0

Es wurde nur herausgefunden, dass die Basisdaten keine Eigenschaften des Projekts sind und aus der ersten Hauptaufgabe des Projekts ausgewählt werden. Sobald Sie ein Baseline-Start- und Enddatum für die erste Aufgabe haben, werden die Basisdaten des Projekts in der Tracking-Ansicht angezeigt.

if (pubProj.Tasks != null && pubProj.Tasks.Count > 0) 
{ 
    tempProj.BaseEndDate = pubProj.Tasks[0].BaselineFinish; 
    tempProj.BaseStartDate = pubProj.Tasks[0].BaselineStart; 
    tempProj.BaselineDuration = (pubProj.Tasks[0].BaselineDuration != null && pubProj.Tasks[0].BaselineDuration.Length > 2) ? Convert.ToInt16(Convert.ToDecimal(pubProj.Tasks[0].BaselineDuration.Remove(pubProj.Tasks[0].BaselineDuration.Length - 1))) : 0; 
    tempProj.FinishVariance = (pubProj.Tasks[0].FinishVariance != null && pubProj.Tasks[0].FinishVariance.Length > 2) ? Convert.ToInt16(Convert.ToDouble(pubProj.Tasks[0].FinishVariance.Remove(pubProj.Tasks[0].FinishVariance.Length - 1))) : 0; 
} 
else 
{ 
    tempProj.BaselineDuration = 0; 
    tempProj.FinishVariance = 0; 
}