It's often said that a project is a one-off collection of activities, whereas a process is a repeating activity. In fact these often combine, with a process consisting of repeated similar projects. You can also argue that a process requires design, setup, operation and shutdown, and therefore can be viewed as a project. In any event there are often projects which are regular and similar enough to benefit from a template.
In AlchemyWorks projects are arranged in a tree structure, with optional attachements to the projects, such as risks, documents or other resources, and dependencies linking different projects to constrain the scheduling sequence. We want to be able to clone this structure with all of these resources and dependencies replicated, but without any live activity or event log data, how do we do this ?
Simply create a project tree with all the aspects desired for the template, including any risks, documents, workers and project dependency conditions, then change the status of the project root to a code of type template. Status codes have a type designation that influences how that project is scheduled (or not) and where it shows in the system. It doesn't matter which status code you use, as long as it's type is template.
The project tree beneath this root will be converted to a template, and a button made visible to instantiate a copy of it. A link to the root of the project will also be added to the global project template list, accessible from the main project menu. To create a new project from this template just click the instantiate button and all structures and resources will be copied to the new version. Project dependencies will also be mapped to the new tree, providing referenced projects were within the original template.
Projects cloned from a template will by default be created inside the same parent project or folder as the template itself, although this behavour can be modified using a workflow rule based on the template status code. This can override the target location, as well as other project parameters.
It is still possible to edit the template after converting, or it can be converted back into a regular project just by changing the status code.