1

Ich versuche, eine neue EPT (Project Server 2013) mit C# CSOM-Bibliothek erstellen. Aber es ist folgender Fehler aufgetreten.So erstellen Sie neue EPT mit CSOM

"PJClientCallableException: EnterpriseProjectTypeInvalidCreatePDPUid"

Paar von Artikel erzählen die "isCreate = true" zu ändern. Aber es ist kein Erfolg für mich. Hier ist der Code, den ich gemacht habe.

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

Kann jemand das Problem erklären oder den Arbeitscodeteil zur Verfügung stellen.

Antwort

0

Ich möchte folgendes vorschlagen:

Definieren eines Enterprise-Projekttyp:

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

Und dann, wenn Sie das neue Projekt zu erstellen, arbeiten wie folgt aus:

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

Wenn die letzte Zeile dieses Codeabschnitts endet, muss das Projekt erstellt und veröffentlicht werden, um Aufgaben oder was auch immer zu definieren.

Ich weiß nicht, was mit Ihrem Code passiert, scheint groß.

Hoffe, dass es Ihnen hilft,

+0

Ich fand, dass mit Ihrem Code, das Projekt nach wie vor als Enterprise Project erstellt wird, unabhängig davon, welche basicEpt geben Sie ... deshalb nur der Administrator die Seite nutzen können, bis es manuell geändert ,. Weißt du, wie man das ändert? – Crezzer7

+0

Ich denke, das ist ein SharePoint-Problem. Wenn ich Ihre Frage verstehe, meinen Sie, Zugang zu PWA für andere Benutzer und nicht für Administratoren zu haben? –

+0

Ich habe hier eine Frage gestellt, um weiter zu erklären, was ich meine: http://stackoverflow.com/questions/39953710/creating-a-project-online-using-c-sharp-for-sharepoint, aber im Grunde ja, wenn die Projekt erstellt wird, muss das Enterprise Project Feature manuell deaktiviert werden. Ich möchte dies bei der Erstellung tun. (PWA-Einstellungen -> Verbundene Sharepoint-Sites) ist, wo diese Option ist. Danke für die Antwort auch – Crezzer7

Verwandte Themen