Project Server 2013重新分配任务和更新时间表CSOM

时间:2016-10-05 15:20:55

标签: csom project-server ms-project-server-2013 psi

我开发了一个小代码,可以从数据库中读取一些值,以便为公司的所有员工执行Timesheets。

数据库的数据来自另一个应用程序,其中项目经理定义所有任务更改,如重新分配任务。

当任务开始时,代码运行良好,并以项目任务定义开始时从项目管理器设置的同一员工结束。

问题在于项目经理出于任何原因决定/需要更改正在执行任务的员工。然后我遇到的问题是,新员工的时间表没有项目行,以便用我的应用填充时间表。

所以我的问题是: - 有没有办法将新行包含在新员工时间表中?

提前致谢。

修改

我想补充一下我如何填写时间表:

// I'm getting my period here --> Before I authenticate the user against Project Context

   var myPeriod = projContext.TimeSheetPeriods.FirstOrDefault();

    foreach (var l in myPeriod.TimeSheet.Lines)
    {
       for (int i = 0; i < TimesheetTaskId.Count; i++)
       {
          projContext.Load(projContext.Projects);
          projContext.ExecuteQuery();

          var proj = projContext.Projects.First(p => p.Id == Guid.Parse(projectid.ElementAt(i)));
          projContext.ExecuteQuery();

          if (l.Id == Guid.Parse(TimesheetTaskId.ElementAt(i)))
             {
                for (int x = 0; x < taskid.Count; x++)
                {
                   draftProj = proj.CheckOut();
                   var plannedwork = l.Work.Where(w => w.Id == Guid.Parse(TimesheetTaskId.ElementAt(i))).FirstOrDefault();

                   TimeSheetWorkCreationInformation workCreation = new TimeSheetWorkCreationInformation
                   {

                      ActualWork = string.Format("{0}h", actualwork.ElementAt(x)), // Worked hours
                      Start = date.ElementAt(x),
                      End = date.ElementAt(x),
                      Comment = "From CSOM",
                      NonBillableOvertimeWork = "0",
                      NonBillableWork = "0",
                      OvertimeWork = "0",
                      PlannedWork = plannedwork == null ? "0h" : plannedwork.PlannedWork
                   };

                l.Work.Add(workCreation);
                myPeriod.TimeSheet.Update();

             }

          }
          draftProj.CheckIn(true);
      }

    }

正如您所看到的,在foreach句子中我创建了一个对象类型&#39; TimeSheetWorkCreationInformation&#39;如果有任何工作线,我可以填写时间表。

当我们进行重新分配时,资源的时间表没有工作线。

再次记住我的问题: - 有没有办法将新行包含在新员工时间表中?

由于

0 个答案:

没有答案