使用PSI 2010更改项目所有者(Project Server界面)

时间:2016-01-23 13:16:58

标签: c# project-server psi epm

我想使用PSI(Project Server Interface)更改ProjectOwnerUID。我写了跟随类似代码

var projectDataSet = this.GetProjectDataSet(projectInfo.ProjectUID);
        var orginalProject = this.GetProject(projectInfo.ProjectUID, projectDataSet);
        var sessionUID = this.CheckOutProject(projectInfo.ProjectUID);
if (!string.IsNullOrEmpty(projectInfo.ProjectOwnerName))
        {
            var resourceManager = new Resource();
            var ownerResource = resourceManager.GetResource(projectInfo.ProjectOwnerName);
            if (ownerResource == null)
            {
                throw new Exception("this is not valid");
            }
            orginalProject.ProjectOwnerID = ownerResource.ResourceUID;
        }


this.UpdateProject(sessionUID, projectDataSet);

不幸的是,当游标到达UpdateProject行时,它会抛出代码编号为

的异常
  

ProjectServerError(s)LastError = ProjectInvalidOwner说明:将其传递给PSClientError构造函数以访问所有错误信息

     

内部错误1056(项目所有者无效)。

我不知道发生此异常的情况发生了什么 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

当您没有权限使用以下代码片段编辑项目信息时,会出现此问题,您可以告诉项目服务器运行此段代码不检查权限!!

using Microsoft.SharePoint;
    public void MyVoid()
    {
       SPSecurity.RunWithElevatedPrivileges(delegate()
                {    
                  //Write ur Codes here :)

                });
    }

MSDN Reference