Join the social network of Tech Nerds, increase skill rank, get work, manage projects...
  • Programmatically create Workflow Stages in SharePoint 2013 using CSOM

    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 669
    Comment on it

    For creating Stages using CSOM, we have to use StageCreationInformation.

    1. First of all, assign basic information to Stage.

    Microsoft.ProjectServer.Client.StageCreationInformation stageInfo  = new Microsoft.ProjectServer.Client.StageCreationInformation();
    stageInfo.Behavior = Microsoft.ProjectServer.Client.StrategicImpactBehavior.ReadOnly;
    stageInfo.CheckInRequired =false;
    stageInfo.Description ="Test Description";
    stageInfo.Id = new Guid();
    stageInfo.Name ="Test";
    stageInfo.WorkflowStatusPageId ="Project Detail Page id related to this stage";
    stageInfo.PhaseId = "Phase id related to this stage";


    2. Add Project Detail Page Information to current stage,if any

    List<Microsoft.ProjectServer.Client.StageDetailPageCreationInformation> lstSDPs = new List<Microsoft.ProjectServer.Client.StageDetailPageCreationInformation>();
    Microsoft.ProjectServer.Client.StageDetailPageCreationInformation sdpInfo = new Microsoft.ProjectServer.Client.StageDetailPageCreationInformation();
    sdpInfo.Description = "Test description";
    sdpInfo.Id ="Project Detail Page id related to this stage";
    sdpInfo.Position ="1";
    sdpInfo.RequiresAttention = "false";
    if (lstSDPs.Count > 0)
        stageInfo.ProjectDetailPages = lstSDPs;


    3. Add Custom Field Information to current stage, if any

    List<Microsoft.ProjectServer.Client.StageCustomFieldCreationInformation> lstSCFs = new List<Microsoft.ProjectServer.Client.StageCustomFieldCreationInformation>();
    Microsoft.ProjectServer.Client.StageCustomFieldCreationInformation scfInfo = new Microsoft.ProjectServer.Client.StageCustomFieldCreationInformation();
    scfInfo.Id = new Guid();
    scfInfo.ReadOnly = true;
    scfInfo.Required = true;
    if (lstSCFs.Count > 0)
        stageInfo.CustomFields = lstSCFs;


    4. In the last,create Stages with all the above details

    Microsoft.ProjectServer.Client.Stage newStage = projectContext.Stages.Add(stageInfo);

    Hope this information will help you.


 0 Comment(s)

Sign In

Sign up using

Forgot Password
Fill out the form below and instructions to reset your password will be emailed to you:
Reset Password
Fill out the form below and reset your password: