Customizing the Project Site in Project Server 2010


The steps to customize and use different Project Site templates (the entities formerly known as Project Workspace templates) have changed for 2010, and the ways you can use them with the new Enterprise Project Templates has introduced more change.  I thought I’d explain how these can be created, what customizations will work – and which will break things, what limitations you will see with the reporting data for modified sites and how they can be consumed.  I’ll show screen shots as I go along too.

 

The first thing is to create a new site that you will customize to become your new template.  For this the easiest way is to go to Site Actions (top left of PWA page) New Site

 

image

 

then make sure you choose Microsoft Project Site from the available sites, give it a title and URL name and click Create.  note in this screen shot I have scrolled down the page a little.

 

image

 

Once created then you can customize (almost) to your heart’s content.  This assumes your heart’s content does not want to delete or duplicate any of our built-in lists, or change the type or delete any of our built-in list’s columns.  For this example I will add another list, a document, add some columns to the Risks list and also change the choices for the Issues Status column.

 

But first, I’ll change the theme and color.  Site Actions, Site settings, (Look and Feel) Site Theme will take you to here:

 

image

 

I’m going to choose Modern Rose, and scroll down and click Preview, which pops open a new windows like so:

 

image

 

which will do for demonstration purposes…  So I now click Apply on the original screen (down the bottom), and continue my customization.  I will add a column called Tracker.  All Site Content (bottom of left nav) Create, Filter by List and choose Custom List, with a Name of Tracking and click Create.

 

image

 

I will leave my list as it comes, but usually you’d want to add other columns and views too.  Next I add a document to my Project documents library – Project Documents, Add document (I think I can skip a picture or two) and then just browse and upload:

 

image

 

Next, for my Risks List I add a column called Triage.  Risks, then select the List tab in the List Tools ribbon element, then List Settings:

 

image

 

Scroll down the resulting page,and click Create column

 

image

 

I’m just calling mine triage and taking all the defaults, which also adds it to the default view – not much to see there:

 

image

 

Finally we will go to our Issues list and add another value to our Status choices.  Issues, List tab, List Settings, then click on the Status column.  I’ve added on hold and renumbered the list accordingly.

 

image

 

That’s my customization finished, so no to save and re-use.  Site Actions, Site Settings (Site Actions) Save Site as template.

 

image

 

Give it a File Name, Name and description, and check Include Content, then OK.

 

image

 

Then go to Site Actions, Site Settings, (Galleries), Solutions (or use the hyperlink on the “Operation Completed successfully’ screen and you will see your new Template is Activated! It will now be available both as an option within the default Project Site provisioning Settings option under PWA Server settings.  In this screen shot I have actually chosen my SampleTemplate template (I couldn’t get the drop down in a screen shot…)

 

*** Update *** I discovered going through this process that the following setting is really redundant.  All projects created will get the setting from the an Enterprise Project Template, and not this setting.  Out of the box the Basic Project plan is the default for PSI or Project Professional plans. Changing the template here will do nothing. ***

 

image

 

It will also be available for either existing Enterprise Project Templates, or new ones, in the drop down at the foot of the EPT page:

 

image

 

Now, lets use my new template and see what we get.  First I’ll set my Basic Project plan EPT to use my new SampleTemplate, then I’ll create a new basic project plan called SampleTest and publish to get my new site.  As you can see from my queue list it all went through, so I haven’t broken anything.

 

image

 

And here is my site!

 

image

 

I have my document

 

image

 

You can already see my new tracking list, and here if I add a new Issue I can choose my new On hold status.

 

image

 

The really cool thing is that my On hold status has flown right through to the reporting database WITHOUT HAVING TO PUBLISH THE PROJECT!  And this was a custom addition choice for the field.  This from my Excel sample template from the Business Intelligence Center – hardly the most inspiring report – but I was pleased to see it work!

 

image

 

So some gotchas:

 

 

    • The site template used is driven by the Enterprise Project Type – and at this stage I assume the default only gets used when creating projects that are not based on an EPT (possibly via PSI?).  From Project Professional the Basic Project Plan type is used.

 

    • Don’t add additional lists that are copies of the built in ones such as issues and risks

 

    • Don’t change the column type of existing columns

 

    • Don’t delete existing columns – just remove from views if they are not needed

 

    • Any new things (apart from new choices as I showed above) will not get into the reporting database (unless you do extra work…
    • *** 6 years later…  The new choice doesn’t get surfaced in the reminder web part (thanks Reid!) ***
    • Modern Rose is not the most inspiring theme

 

Most of these gotchas will cause problems with reporting – so if doing heavy customization always monitor the queue to see exactly what works (and what breaks things!) with the Reporting jobs.  Look in the ULS logs for further information if you see failures.

 

Technorati Tags:

Comments (45)

  1. bpettersen@newgenusa.com says:

    Brian,

    If a site template is created under one provisioned PWA instance, it is then available to that instance only. How do you then utilize it for other instances on same or different hardware?

    Thanks

  2. BriSmith says:

    Great question bpettersen.  I had to have a play around with this one, and will do another blog posting with the full details and somne screen shots, but basically you need to go to Site Actions, Site Settings on the site where you do have the custom site template working, and then click Solutions in the Galleries section.  Right click the name of the template you want to have on another site and select .Save target as'.  This will allow you to save a wsp file.  Now you go to the same location (Solutions gallery) in the site where you would like to use this template and select the Solutions tab and then Upload Solution.  Browse to the location you saved the .wsp file and once uploaded click Activate in the dialog that comes up.  You will then need to associate it with an Enterprise Project Template to be able to create sites.  On one of the sites I tested on I did get a failure when creating a new site and the error pointed to a feature that was not activated – I used the Powershell command enable-spfeature with the Identity set to the GUID in the error, and the URL of the site collection where I was trying to use the feature and all was well.  On another site I didn't need to go this, so not sure why at this time.

    If your site template has other features incoorporated then you might need to do similar steps.

    Best regards,

    Brian.

  3. Megan says:

    Hi Brian;

    Thanks for the post.  When using a field such as the Trigger field (and you have "Date" as one of the options to chose from)..is there any way that when the user choses the date field, they are forced to fill in a date? This does not seem possible, but will we be able to do custom development to enforce this, or could that be problematic? Thanks, Megan.

  4. mkurt says:

    Hi Brian,

    We have applied your solution suggestion for create site template but we could not see the created template in this "default project site settings" field.

    This template is in activated status. Why we do not see this template ?

    Thanks

    Mehmet Kurt

  5. BriSmith says:

    Hi Mehmet, have you added it to the right site?  Adn did you start with a project site template?  Either of these could be the issue.

    Best regards,

    Brian.

  6. Marcel Visscher says:

    I followed the steps above and have modified the default project site template and the one for a basic project. In server settings – project sites I see some existing projects that do no yet have a project site. When I select such a project and click Create Site, the new site does have the standard layout, not my new modified layout. What did I do wrong?

    Thanks, Marcel Visscher

  7. BriSmith says:

    Hi Marcel, I haven't tested this but guess that the exisitng plans have a relationship to the original EPT.  Perhaps re-associating them would resolve this?  Or you could create a site manually and then associate.  Are things working for new projects?

    Best regards,

    Brian.

  8. Mel says:

    Obviously you can no to all your customisations all in one go. How do you go back to edit/modify your new saved SampleTemplate site template?

    I can not find where to open-edit an existing site template.

  9. BriSmith says:

    Hi Mel,

    There isn't an easy way to make updates, and these wouldn't get applied to existing sites.  You could create a sample from the template and use that for making further updates – repeating as necessary.

    Best regards,

    Brian.

  10. Doug McKinnell says:

    Hi Brian,

        Thanks for the post. It helps a lot. In the gotchas, you said that newly added lists etc. would not be passed to the reporting database without extra work. Could you explain what needs to be done or direct me to a posting showing how to get the information onto the reporting database?  I want to do add a list and have it, along with the issues and risks on a progress report.

    Thanks

  11. BriSmith says:

    Hi Doug,

    I don't have any references for the work involved in adding lists and getting the data into the reporting DB – perhaps I should have more correclty said 'you are on your own'.  You would probaly be safest to create your own tables and use some SharePoint events to update them, as what Project does out of the box is not extensible.

    Best regards,

    Brian

  12. Gavin says:

    I followed the steps above to create a new site.  I added a new custom list called "Stakeholders" with a few new columns, and I added an Excel file to the document library.  I created the template, assured that it was active, and edited the EPT to point to the new template.

    I created a new project and I get the error below.

    When I go back to the EPT and set it back to the "Microsoft Project Site" It works fine, but I obviously don't get the items I would like included in the template.  

    Please help.

    CreateWssSiteContent: Creating project site failed! Project Uid=587203a0-7115-4a62-8296-4f5fa045f645, site URL=projects.xxxx.xxxx.com/…/CE Test Project 2, site name=CE Test Project 2. System.Runtime.InteropServices.COMException (0x8107058A): <nativehr>0x8107058a</nativehr><nativestack></nativestack>Microsoft.SharePoint.SPException at Microsoft.SharePoint.Library.SPRequestInternalClass.ApplyWebTemplate(String bstrUrl, String bstrWebTemplateContent, Int32 fWebTemplateContentFromSubweb, Int32 fDeleteGlobalListsWithWebTemplateContent, String& bstrWebTemplate, Int32& plWebTemplateId) at Microsoft.SharePoint.Library.SPRequest.ApplyWebTemplate(String bstrUrl, String bstrWebTemplateContent, Int32 fWebTemplateContentFromSubweb, Int32 fDeleteGlobalListsWithWebTemplateContent, String& bstrWebTemplate, Int32& plWebTemplateId)Microsoft.SharePoint.SPException: Microsoft.SharePoint.SPException —> System.Runtime.InteropServices.COMException (0x8107058A): <nativehr>0x8107058a</nativehr><nativestack></nativestack>Microsoft.SharePoint.SPException at Microsoft.SharePoint.Library.SPRequestInternalClass.ApplyWebTemplate(String bstrUrl, String bstrWebTemplateContent, Int32 fWebTemplateContentFromSubweb, Int32 fDeleteGlobalListsWithWebTemplateContent, String& bstrWebTemplate, Int32& plWebTemplateId) at Microsoft.SharePoint.Library.SPRequest.ApplyWebTemplate(String bstrUrl, String bstrWebTemplateContent, Int32 fWebTemplateContentFromSubweb, Int32 fDeleteGlobalListsWithWebTemplateContent, String& bstrWebTemplate, Int32& plWebTemplateId) — End of inner exception stack trace — at Microsoft.SharePoint.SPGlobal.HandleComException(COMException comEx) at Microsoft.SharePoint.Library.SPRequest.ApplyWebTemplate(String bstrUrl, String bstrWebTemplateContent, Int32 fWebTemplateContentFromSubweb, Int32 fDeleteGlobalListsWithWebTemplateContent, String& bstrWebTemplate, Int32& plWebTemplateId) at Microsoft.SharePoint.SPWeb.ApplyWebTemplate(String strWebTemplate) at Microsoft.SharePoint.SPSite.CreateWeb(String strUrl, String strTitle, String strDescription, UInt32 nLCID, String strWebTemplate, Boolean bCreateUniqueSubweb, Boolean bConvertIfThere, Guid webId, Guid rootFolderId, Boolean createSystemCatalogs) at Microsoft.SharePoint.SPSite.SPWebCollectionProvider.CreateWeb(String strWebUrl, String strTitle, String strDescription, UInt32 nLCID, String strWebTemplate, Boolean bCreateUniqueSubweb, Boolean bConvertIfThere) at Microsoft.SharePoint.SPWebCollection.Add(String strWebUrl, String strTitle, String strDescription, UInt32 nLCID, String strWebTemplate, Boolean useUniquePermissions, Boolean bConvertIfThere) at Microsoft.Office.Project.Server.BusinessLayer.Admin.CreateSPWeb(SPSite topSite, String spWebUrl, String spWebName, String spWebDescription, String spWebLogoUrl, Int32 webTemplateLCID, String webTemplateName, String& errorMessage):

    WSSCreateSiteFailure (16400). Details: id='16400' name='WSSCreateSiteFailure' uid='9f5e4d7c-aede-4b1a-aeac-d0f85ca50a50' projectUID='587203a0-7115-4a62-8296-4f5fa045f645' workspaceUrl='projects.xxxx.xxxx.com/…/CE Test Project 2/CE Test Project 2' projectWorkspaceName='CE Test Project 2'.

    Queue:

    GeneralQueueJobFailed (26000) – CreateWssSite.CreateWssSiteMessage. Details: id='26000' name='GeneralQueueJobFailed' uid='6e8841ab-e9b7-4baa-94b5-4d09d7ebdb25' JobUID='34e16dde-d11d-492f-b82b-2e7298aafeeb' ComputerName='xxxxSP10PS1' GroupType='CreateWssSite' MessageType='CreateWssSiteMessage' MessageId='1' Stage=''. For more details, check the ULS logs on machine xxxxSP10PS1 for entries with JobUID 34e16dde-d11d-492f-b82b-2e7298aafeeb.

    1. Barbara Gabriela Jaeger says:

      Estou com o mesmo problema o que fez para solucionar?

      1. If the issue was updating existing sites Barbara – see Paul Mather’s blog post – https://pwmather.wordpress.com/2016/05/04/projectonline-projectserver-project-site-provisioning-using-office365-pnp-remote-provisioning-sharepoint-powershell/ – that might be an option.
        Best regards,
        Brian

  13. Iqbal kmk says:

    Hai brian,

    I created project site template .

    But i cannot add project web apps webparts like project details , milestone etc…

    Thank you

    Iqbal kmk

  14. Lars Egelund says:

    Hi Brian

    I have no problems with customized templates for EPT's. However, when I use the "Create site" in "Server settings/Project Sites" the build-in template is used. Do you know how to change this to one of my own templates?

    Thanks, Lars

  15. BriSmith says:

    Hi Lars,  If you set your template in the Default Project Site Template drop down on the Project Site Provisioning Settings page then it should get used in place of the built in one.  Let me know if this does not work for you.

    Best regards,

    Brian.

  16. Jon says:

    Brian – thanks so much, this is very helpful! My question is whether or not you have to create a new site. I just used an existing project site created after I added a new project in PWA and then saved as template. I haven't checked the queue, but do you see any reason why that wouldn't work?

  17. BriSmith says:

    Hi Jon,

    It does either need to be a new site – or one created for a project that you have then 'unlinked'.  The template should NOT have a current link to an existing project as this will break things.

    Best regards,

    Brian.

  18. Jonatan says:

    Hi Brian,

    We created new project site template and defined it as default in "Project Site Provisioning Settings" page but somehow project creates new sites from old OOTB template instead of the new one. We have restarted the server but it still doesn't work.

    Please advise

  19. BriSmith says:

    Hi Jonatan,

    That is a trap that is easy to fall into – the real place to change the site template is in the Enterprise Project Type – such as the Basic Project Plan.  The setting you changed does not over-ride what is set for each EPT.

    Best regards,

    Brian.

  20. Jonatan says:

    Hi Brian,

    Thank you for your such quick response. I'm apologizing if my question is too trivial but when can I change effectively the Enterprise Project Type?

  21. BriSmith says:

    Hi Jonatan,

    If you go to server settings, Enterprise Project Types (under the Workflow and Project Detail Pages header) and then for each project type where you want this to be the default template you can click to open it – then scroll right to the bottom and you will find a drop down similar to the one on the Project Site Provisioning page, and just select the template you want to use whenever you create a project of this type.  The beauty of this is that it is easy to create other project types that use different templates.  I hope this helps.

    Best regards,

    Brian.

  22. Lisa Stebbins says:

    How does this site compare/work with the Project Database site template? Can you add a document library to the Project Database site template?

  23. Dave Bush says:

    Brian,

    I am following these steps and adding the Project Details web part and the Project Fields web part (from the the solution starter). The Project Fields work great, but the Project Details generates "Web Part Error: Cannot import this Web Part."

    Any thoughts? Thanks for all you posts!

  24. BriSmith says:

    Hi Dave, because of the way the project detail web part references PWA and the plan itself it does not work to have this in the template.  It can be added once you have provisioned a site.

    Best regards,

    Brian.

  25. BriSmith says:

    Sorry for the very late reply Lisa.  The project database template is an Access site template so not intended to be used with Project Server.  You could not use this in place of the normal Project SIte template or use it to create a new template.

    Best regards,

    Brian.

  26. Hello Brain,

    I'm in the process of creating a site template and want to add subsite – for example BLOG site – in my project site template. I am not able to do so and the subsite is missing in the template and the link the navigation is changed to a 'heading'.

    Kindly share if there is a way that can be adopted to get this done.

    Thanks in advance!!!

    Asif Allauddin, PMP

  27. BriSmith says:

    Hi Asif,

    Sunil's response on the forums is correct.  It cannot be done out of the box.  As Sunil says, you could create all the information on one site and add an extra page to the template which could be a wiki – or perhaps have a web part that shows blog content from another site.  You would need to do some automation to get this working.

    Best regards,

    Brian.

  28. Sasi says:

    Hey Brian,

    I have a site template and that is associated with a project type. While create a new project I'm able to create a site page based on the site template i specified. I have a document library in that. I need to set a default value for a column in the document library. For that I'm using server side event handlers. Because based on the project name I'm setting the default value. On published event im using for setting the default value. But I'm not able to set the default value for the particular column. Onpublished event can i able to set the default value for a column in document library or is ther any other work aroung available?.

    Please Advise!!.

    Sasi.

  29. Brian,

    I have created a site as you describe. In it I have a web part page which displays 5 lists in separate web parts. In the site I set each of those web parts to display the list in a datasheet view i created. It all works fine except when I save that site as the template and a new EPM project site is created it does not retain those views in the web parts. They display with some standard view and have to be manually changed on every project site. Is there some way to get the default views in the web parts to stick in the template?

  30. Thelma Smith says:

    Yeah, I followed your instructions and I still don't get the new template I created when I publish a project.     The Provisional settings are setup correctly.   I am able to manually create a site in SharePoint 2010 with the template, but not when a user publishes a project.    Any ideas on where I go for more information?

  31. BriSmith says:

    Hi Thelma – is your default EPT also pointing to the new template?

    Best regards,

    Brian.

  32. Chad says:

    Can you rename a built in column for Issues, Risks, Documents, or Deliverables? Such as renaming the "Title" field on Risks to "Risk Name".

  33. Shyam Koppikar says:

    After publishing the project as a Project Manager, I go to Project site and II get a message that "Your queue job CreateWssSite failed. Contact site administrator" .   Please see screen shot.  Actually the project site is created and is accessible by other groups except Executive and Project Manager Groups.   Why do we get this message and not able to see the site from the Project Managers and Executive Groups, while others (Admin and Team members) can access the site?  And why do I get the message that create project site was failed when it is actually created?

  34. BriSmith says:

    Hi Shyam, I cannot tell just from that description what might be wrong – sounds like your permissions are not standard and have been updated in some way.  I suggest you open a support case if you need help troubleshooting the problem.  The message regarding the failure to create may just be the result of permissions too – and the error message assumes if you can't get to it with your credentials then it failed to create.

    Best regards,

    Brian.

  35. Oscar says:

    Hi Brian.  Is there any way to put the project name instead of Welcome to your site or any other static legend?.  Thanks in advance.

  36. Dragos Diamandescu says:

    Excellent post Brian !! Also, brilliant note: "Now, lets use my new template and see what we get.  First I’ll set my Basic Project plan EPT to use my new SampleTemplate, then I'll create a new basic project plan called SampleTest and publish to get my new site.  As you can see from my queue list it all went through, so I haven’t broken anything."

    you should put that in bold 🙂

    That note saved my day 🙂

    All my best,

    Dragos

  37. AndyB says:

    Hi Brian

    Just doing an upgrade and have a challenge with the Project Details web part when putting into a Project Site.  The project details appear beautifully but the ability to edit the project is greyed out along with everything else in the ribbon.  Any thoughts on what is preventing editing or what to look for?

  38. Steve Petruzzi says:

    Brian,

      Great stuff.  I'm wondering though how to remove a project site template.  I deleted it as a solution but the site template still remains in drop the down option box when in the enterprise project type form. I can't find the file on the server either. Any ideas.

  39. BriSmith says:

    Hi Steve, I just tested this on my server and if I go to PWA then Site Actions, Site Settings, and then to Solutions and deactivate the solution for the custom template then the custom template no longer shows in the drop down.  Also you can't delete if it is still active – so I assume you did the same. Wondering if it is cached somehow and will disappear soon.  One other thought – have you deleted it from the right site?  Perhaps you had another copy somewhere else – I've done that before in the opposite sense – added a custom template but it wasn't in the drop down as I'd added it in the wrong site.

    Best regards,

    Brian.

  40. Othman Hablani says:

    Great to read all comments in your site…

    After creating a new site from my template, I need to populate differents lists (ISSUE, RISKS, Financial…) from archived Excel files without importing these Excel files as a SharePoint Lists under the Project Name in the same location and deleting empty lists (src is different). And without using third-party tools (not allowed)…

    What I see in the web, small tools are used for synchronization between exiting SP List and Excel files not those I need to populate for the fist time an exiting sharePoint list from Excel… thank you for your help.

  41. Ashish says:

    Hi Brian,

    We are facing one issue related to the project site template only.We created custom views for a list called "Issue" in our template.So now all those views are existing in our project sites.But now requirement is to hide some views from existing sites as well as for the coming new project sites.

    For new Project Sites -> We used"Per -Location view Setting" in template and hidden the views which are no longer required.After that saved that template and then mapped it to EPT.But once we created a new project based on this EPT,views still exist and it did not inheritted the setting from template.Could you please guide us why this is not updating or any other approach we should follow.

    For Existing Project Sites -> Can we run any powershell scripts to hide these views ?

    Thanks in advance.

    Ashish

  42. Joe says:

    When saving as a template

    Error

    An unexpected error has occurred.

    Troubleshoot issues with Microsoft SharePoint Foundation.

    Correlation ID: 1321f082-796c-46e5-b285-f820b5223385

  43. Ritesh says:

    I need help on,

    – lets say we have 10 project sites and Issues and Risks list in that, requirement was to add new column in some of those project sites say in 4 project sites.

    – We are having excel report which shows all the risks and issues from project server PWA and report is developed using UserView presents in reporting Db,

    But we are not getting that newly added field to show in report.

    – we have seen in content DB, its having data for that new column but mapped with different different column in AllUserData Table.

    Please Assist, How to pull those field for reporting and it should be available for future project sites as well.