【问题标题】:Add resource assignment work by day按天添加资源分配工作
【发布时间】:2016-06-24 20:03:51
【问题描述】:

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

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

编辑:

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

【问题讨论】:

    标签: c# csom project-server project-online


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2019-11-27
      • 2017-12-07
      • 2020-08-07
      • 1970-01-01
      • 2019-11-17
      • 1970-01-01
      • 1970-01-01
      • 2014-02-18
      • 1970-01-01
      相关资源
      最近更新 更多