1

C# CSOM 라이브러리를 사용하여 새 EPT (프로젝트 서버 2013)를 만들려고합니다. 하지만 다음과 같은 오류가 발생했습니다.CSOM을 사용하여 새 EPT를 만드는 방법

: 문서의

커플은 "IsCreate = true"로 변경에게 "PJClientCallableException는 EnterpriseProjectTypeInvalidCreatePDPUid". 그러나 그것은 나를 위해 성공하지 않습니다. 여기에 제가 한 코드가 있습니다.

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(); 
    } 

누구든지 문제를 설명하거나 작동 코드 부분을 제공 할 수 있습니까?

답변

0

나는 다음과 같은 제안하고 싶습니다

은 기업의 프로젝트 형식 정의 :

string basicEpt = "Enterprise Project"; // Basic enterprise project type. 
int timeoutSeconds = 10; // The maximum wait time for a queue job, in seconds. 

을 그리고 새 프로젝트를 만들 때 다음, 다음과 같이 작동 :

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); 

을 해당 코드의 마지막 줄이 끝나면 프로젝트를 작성하고 게시하여 작업을 정의해야합니다.

코드에 무슨 일이 일어나고 있는지 잘 모르겠다. 이 때까지

은, 당신의 코드로,이 프로젝트는 여전히 문제가 지정한 무엇 basicEpt ... 따라서 관리자 만이 사이트를 사용할 수 없습니다 엔터프라이즈 프로젝트로 생성되는 것을 발견

+0

, 그것이 당신에게 도움이되기를 바랍니다 수동으로 변경되었습니다. 이걸 어떻게 바꿀 지 알아? – Crezzer7

+0

저는 이것이 SharePoint 문제라고 생각합니다. 귀하의 질문을 이해한다면 관리자가 아닌 다른 사용자를 위해 PWA에 액세스 할 의향이 있습니까? –

+0

나는 무엇을 의미하는지 더 설명하기 위해 여기에 질문을 게시했다 : http://stackoverflow.com/questions/39953710/creating-a-project-online-using-c-sharp-for-sharepoint, 근본적으로 그렇다. 프로젝트가 생성되면 엔터프라이즈 프로젝트 기능을 수동으로 비활성화해야합니다. 나는이 일을 창조물에 바치기를 원한다. (PWA Settings -> Connected Sharepoint Sites)는이 옵션이있는 곳입니다. 답장을 보내 주셔서 감사합니다. – Crezzer7