0

几天来,我正在尝试为特定日期的特定任务编写分配进度。例如:我可以设置任务的总体进度,但不能设置资源在给定日期所做的实际工作。我们可以在“任务使用情况”视图上使用 Project Pro 来做到这一点,但我们需要根据另一个系统生成的文件自动执行一些操作,这就是为什么我在这个解决方案中工作但我找不到任何允许的对象我保存日期的实际工作值。我正在使用 CSOM 库和 Project Online。

这个问题快把我逼疯了!任何帮助将不胜感激。提前致谢!

编辑:

如果我不够清楚,我基本上需要按天从资源分配中获取和设置数据,因为我们可以通过 Project PRO 上的 TASK USAGE 屏幕查看和设置,但我需要使用 CSOM 和 Project Online 来完成. 这是我正在谈论的观点: Project Pro 任务使用情况视图

4

1 回答 1

0

最后,我们设法找到了出路……我们是这样做的:

    private void SaveAssignmentData(Guid id, DateTime start, DateTime finish, Config config)
    {  

        //start = DateTime.Today.AddHours(8);
        //finish = start.AddHours(10); //from 8am to 6pm

        var ctx = new Connection().ProjectOnline(config.SpOnlineSite, config.SpOnlineUsuario, config.SpOnlineSenha); //simple method to get the current context

        var resources = ctx.EnterpriseResources;
        ctx.Load(resources);
        ctx.ExecuteQuery();
        var resource = ctx.EnterpriseResources.FirstOrDefault(i => i.Email == "user@domain.com");
        if (resource == null) throw new Exception("Resource not found.");
        ctx.Load(resource, p => p.Assignments);
        ctx.ExecuteQuery();

        var timePhase = resource.Assignments.GetTimePhase(start, finish);
        ctx.Load(timePhase, p => p.Assignments);
        ctx.ExecuteQuery();

        var statusAssignment = timePhase.Assignments.FirstOrDefault(i => i.Id == id);
        if (statusAssignment != null)
        {
            statusAssignment.ActualWork = "6h";
            statusAssignment.SubmitStatusUpdates("through csom");
            ctx.ExecuteQuery();
        }
    }
于 2016-07-20T11:55:59.543 回答