0

我们的用户(资源)可以通过自定义前端将自己分配给现有任务。

在 Project Server 2010 中,我们使用了当前版本不再支持的 PSI。

StatusingClient sc = new StatusingClient(httpBinding, endpointAddress);
sc.CreateNewAssignmentWithWork(parameters);

然后,该分配请求可以由具有规划权限的项目负责人批准。

我们在 CSOM 中找不到等效的方法。

使用 CSOM,我们只能作为具有计划权限的用户创建新分配(但当然不是所有用户都应该拥有这些权限)。

        DraftProject projectDraft = pubProject.CheckOut();
        projContext.Load(projectDraft.Tasks);
        projContext.ExecuteQuery();

        var task = projectDraft.Tasks.Where(t => t.Id == taskUid).FirstOrDefault();

        if (task != null)
        {
            AssignmentCreationInformation assignment = new AssignmentCreationInformation();

            assignment.Id = Guid.NewGuid();
            assignment.TaskId = task.Id;
            assignment.ResourceId = userRes.Id;
            task.Assignments.Add(assignment);
            projectDraft.Assignments.Add(assignment);
            projectDraft.Update();
        }

        projContext.ExecuteQuery();

        projectDraft.Publish(true);
        projectDraft.CheckIn(true);

        projContext.ExecuteQuery();

任何提示如何解决此任务?

4

1 回答 1

0

与官方文档相反,已弃用的 PSI 的状态功能在 2016 年仍然有效。因此,对我们来说,解决方案是像 2010 年和 2013 年一样使用 PSI 及其 StatusingClient。

采用 CSOM 方式,创建新分配的用户必须具有项目的编辑权限,因为必须签出和修改项目。

于 2018-07-23T06:55:42.970 回答