The CreateProjectFromTemplate method does not persist any formatting information in a project template, such as timescale or font format. You can set formatting information for a project with Project Professional; formatting is not available in the public PSI methods or datasets. CreateProjectFromTemplate gets a ProjectDataSet from the project template in the Draft database, creates a new ProjectDataSet, and changes the project summary task name to the requested project name. It then adds all of the DataTable rows to the new ProjectDataSet, except assignment dates, and then creates a new project with a different GUID.
If the template includes tasks that have notes, the task notes do not show when you create a new project by using CreateProjectFromTemplate and then open the project in Microsoft Office Project Professional.
View settings, such as added fields, are not copied into the new project from the template.
So in essence only the basic dataset information is used, and none of the information that is held in the binary fields such as views, formatting and notes is retained. If you wish to maintain full fidelity and use templates that have formatting, perhaps some views that you wish to be available (such as the new Timeline view – ready populated with certain tasks) or task notes then your best option is to create these using Project Professional 2010. You will then of course be able to interact with the projects through the project center in the usual way. I've also heard that some customers have had issues using the timeline when starting from a PWA or PSI created project (not able to add certain tasks) – but I haven't been able to reproduce this behavior. This sounds like a more general error with the timeline that we have since fixed (it should be in any of the CU's for the 2010 client as it was initially fixed in June – and the 'C' stands for cumulative) – you should also be able to resolve this issue by deleting the timeline and starting again.
One final mention here, that is not covered in the MSDN article is concerning Inactive Tasks. This is a new feature in 2010 – the ability to inactivate a task so that it does not impact schedule or resourcing, but still allows you to keep it in the plan and activate it should the need arise. To be honest we did not have a scenario in mind where inactive tasks would be included in templates – and if you do have inactive tasks in a template then these will only remain inactive in projects created via Project Professional. If you use a template with inactive tasks for creation via PWA or the PSI then you will see these tasks become active. If you have tried this and are confused by the durations you see for these 're-activated' tasks they actually have a duration of 8 elapsed hours – or if they had an assignment as well as being inactive then the duration will be 8 elapsed hours for each assigned day. Anyway, none of this would be what you wanted or expected – so best to avoid inactive tasks for any templates you aim to use via PWA or the PSI.
We would certainly be interested in the scenarios where you might be thinking of using inactive tasks in a template.
Thanks to Katherine, Doug and Heather for their input to this article.
Our developing team detected another difference using PWA or PSI using templates. When you use PSI to publish a project using a Project Manager group account, the category associated to this group should be able to see all projects. If not, it fails in the publishing process returning an error. It is possible to a PM group account publishes a project in PWA without this right to see all projects. This problem did not happen in 2007 but only in 2010. I think this is a security issue of 2010.
Inactive tasks in a template – not used them but of couse I can see definite scenarios around risk mitigation or optioneering. EG, deploying an IT server solution, the customer might want to provide timelines and costs for deploying on either physcial or virtual machines, and this decision might then lead to different risks being considered and mitigated – leading to futher inactive tasks being built into the template.