2013-05-01 132 views
0

我是PSI编码新手...... 我已经创建了一个项目,我需要为该项目构建一个团队....资源必须存在于项目服务器中。 ..我研究,但我无法得到我想要的 如何做到这一点......?使用PSI构建项目团队

WbSvcProject.ProjectDataSet pds = new WbSvcProject.ProjectDataSet(); 

      Guid PUID = Guid.Parse("8d73de15-8f85-4c5e-8da9-de0b85f48eed"); 
      pds = proj.ReadProject(PUID, WbSvcProject.DataStoreEnum.WorkingStore); 

我需要建立一个团队为这个项目......资源必须在项目服务器提前现有

感谢

回答

0

老VS2010?解。 VS2012似乎使用了一种通过WbSvcProject.ProjectSoapClient()调用服务的新方法?!?

using Library = Microsoft.Office.Project.Server.Library; 

class ProjectProxy 
{ 
    private WbSvcProject.Project projectSvc; 

    public ProjectProxy() 
    { 
     this.projectSvc = new WbSvcProject.Project(); 
     this.projectSvc.Url = Program.PWAServer + "/_vti_bin/psi/project.asmx"; 
     this.projectSvc.UseDefaultCredentials = true; 
    } 

    //ProjectTeamDataSet ds = new ProjectTeamDataSet(); 
    //ProjectTeamDataSet.ProjectTeamRow row = ds.ProjectTeam.NewProjectTeamRow(); 
    //row.PROJ_UID = projectGuid; 
    //row.RES_UID = resourceGuid; 
    //row.NEW_RES_UID = resourceGuid; 
    //ds.ProjectTeam.AddProjectTeamRow(row); 

    public void QueueUpdateProjectTeam(Guid sessionUid, Guid projectUid, ProjectTeamDataSet dataset) 
    { 
     Guid jobUid = Guid.NewGuid(); 

     try 
     { 
      this.projectSvc.QueueUpdateProjectTeam(jobUid, sessionUid, projectUid, dataset); 
     } 
     catch (SoapException soapException) 
     { 
      List<string> queueErrors = new List<string>(); 
      queueErrors.Add(soapException.Message); 
      Library.PSClientError clientError = new Library.PSClientError(soapException); 
      Library.PSErrorInfo[] errors = clientError.GetAllErrors(); 
      foreach (Library.PSErrorInfo error in errors) 
      { 
       queueErrors.Add(error.ErrId.ToString()); 
      } 
     } 
    } 
}