首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用CSOM创建新的EPT

如何使用CSOM创建新的EPT
EN

Stack Overflow用户
提问于 2016-07-01 17:19:25
回答 1查看 794关注 0票数 1

我尝试使用C# CSOM库创建一个新的EPT (project server 2013)。但它发生了以下错误。

"PJClientCallableException: EnterpriseProjectTypeInvalidCreatePDPUid“

几篇文章告诉你要改变"IsCreate=true“。但这对我来说并不成功。这是我所做的代码。

代码语言:javascript
复制
public void CreateEnterpriseProjectType(Guid eptGuid, string eptName, string eptDescription)
    {
        ProjectContext pwaContext = new ProjectContext(this.PWA_URL);

        EnterpriseProjectTypeCreationInformation eptData = new EnterpriseProjectTypeCreationInformation();

        eptData.Id = eptGuid;
        eptData.Name = eptName;
        eptData.Description = eptDescription;
        eptData.IsDefault = false;
        eptData.IsManaged = true;
        eptData.WorkspaceTemplateName = "PROJECTSITE#0";
        eptData.ProjectPlanTemplateId = Guid.Empty;
        eptData.WorkflowAssociationId = Guid.Empty;
        eptData.Order = 4;

        List<ProjectDetailPageCreationInformation> projectDetailPages = new
        List<ProjectDetailPageCreationInformation>() { 
            new ProjectDetailPageCreationInformation() { 
                Id = pwaContext.ProjectDetailPages[1].Id, IsCreate = true } 
        };
        eptData.ProjectDetailPages = projectDetailPages;

        pwaContext.Load(pwaContext.EnterpriseProjectTypes);
        pwaContext.ExecuteQuery();
        EnterpriseProjectType newEpt = pwaContext.EnterpriseProjectTypes.Add(eptData);
        pwaContext.EnterpriseProjectTypes.Update();
        pwaContext.ExecuteQuery();
    }

谁能解释这个问题或提供工作代码部分。

EN

回答 1

Stack Overflow用户

发布于 2016-07-11 15:56:21

我有以下几点建议:

定义企业项目类型:

代码语言:javascript
复制
string basicEpt = "Enterprise Project"; // Basic enterprise project type.
int timeoutSeconds = 10;  // The maximum wait time for a queue job, in seconds.

然后,在创建新项目时,如下所示:

代码语言:javascript
复制
ProjectCreationInformation newProj = new ProjectCreationInformation();

            newProj.Id = Guid.NewGuid();
            newProj.Name = "Project Name";
            newProj.Description = "Test creating a project with CSOM";
            newProj.Start = DateTime.Today.Date;


            // Setting the EPT GUID is optional. If no EPT is specified, Project Server  
            // uses the default EPT. 
            newProj.EnterpriseProjectTypeId = GetEptUid(basicEpt);

            PublishedProject newPublishedProj = projContext.Projects.Add(newProj);
            QueueJob qJob = projContext.Projects.Update();

            // Calling Load and ExecuteQuery for the queue job is optional.
            // projContext.Load(qJob);
            // projContext.ExecuteQuery();
            JobState jobState = projContext.WaitForQueue(qJob, timeoutSeconds);

当这段代码的最后一行结束时,必须创建并发布项目,以便定义任务或其他内容。

我不知道你的代码发生了什么,看起来很棒。

希望能对你有所帮助,

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38141651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档