Projects Server — отклонение расписания от фактических и базовых дат

Я пытаюсь найти отклонения в расписании всех проектов на моем Microsoft Project Server. Я использую CSOM и C# для доступа к серверу и получаю некоторые сведения о проектах.

Для изменения расписания потребуются фактические даты начала/окончания, базовые даты начала/окончания. Когда я включил дату начала и окончания в запрос проекта для загрузки в контекст проекта, например:

   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);

Я вижу, что даты начала и окончания заполняются, но дата начала отличается от того, что я вижу в информации о проекте в пользовательском интерфейсе. Также я не мог понять, как получить базовые даты, которые мы видели бы в представлении отслеживания проектов.

Пожалуйста, может кто-нибудь помочь мне здесь?


person Jinith    schedule 18.04.2016    source источник


Ответы (1)


Только что выяснил, что базовые даты не являются свойствами проекта и выбираются из первой основной задачи в проекте. Таким образом, как только у вас есть базовые даты начала и окончания первой задачи, базовые даты проекта отражаются в представлении отслеживания.

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;
}
person Jinith    schedule 21.04.2016