1

C#CSOMライブラリを使用して新しいEPT(プロジェクトサーバー2013)を作成しようとしています。 しかし、次のエラーが発生しました。CSOMを使用して新しいEPTを作成する方法

は "PJClientCallableException:EnterpriseProjectTypeInvalidCreatePDPUid" 記事の

カップルが "真isCreateは=" を変更する告げます。しかし、それは私の成功ではありません。ここに私がしたコードがあります。

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

私は次のことを提案したいと思います:

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

:新しいプロジェクト、このような作品を作成するとき、そして

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

そして:

は、エンタープライズプロジェクトの種類を定義しますそのコードの最後の行が終了すると、タスクなどを定義するためにプロジェクトを作成して公開する必要があります。

あなたのコードに何が起こっているのか分かりません。

それがあるまでそのため、管理者のみが、サイトを利用することができます...私はあなたのコードで、プロジェクトがまだ関係なく、指定したものを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

関連する問題