使用PSI为项目构建团队

时间:2013-05-01 07:49:43

标签: c# psi

我是PSI编码新手.... 我创建了一个项目,我需要为该项目建立一个团队....资源必须存在于项目服务器中....我研究过但我无法得到我想要的东西 怎么做...... ??

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

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

我需要为这个项目建立一个团队......资源必须存在于项目服务器中

提前致谢

1 个答案:

答案 0 :(得分: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());
            }
        }
    }
}