我们的用户(资源)可以通过自定义前端将自己分配给现有任务。
在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();
任何提示如何解决此任务?
答案 0 :(得分:0)
与官方文档相反,已弃用的PSI的状态功能在2016年仍在使用。因此,对于我们来说,该解决方案将在2010年和2013年之前使用PSI及其StatusingClient。
采用CSOM方式创建新任务的用户必须具有项目的编辑权限,因为必须检出并修改项目。