Copying an existing project

Project administrators can use the project copy function available both in the Project Wizard and as a standalone utility in the ALMProject package, to create a new project based on an existing one.

The project copy function facilitates and speeds up the creation of a new project from an older project. The older project is used in this case as a template for the new project. For example, the next version of the same project will have very similar characteristics as its predecessor and most likely will be configured similarly. The copy function creates a new copy of the relevant records for the project, such as the Roles , Phases, WorkConfigurations, DefaultRequest, and DefaultTask records. Once there is a new copy of the project and its records, a project administrators can then make additional modification as needed for the new project.

An administrator can allow project managers to copy any project or can establish a best practice where template projects are created. By setting up example projects with all of the expected settings and configurations, you can provide guidance for project managers to copy from one of the templates (for example, if an organization has many projects that implement a packaged application).

The Project Wizard guides you through the options to choose to start with an existing project or create a new project. When starting with an existing project, the Wizard copies the Project and displays the current settings. If you make modifications to Project settings the Wizard updates the appropriate record types. If you start with a new Project, the Wizard creates all relevant records as you specify project settings. You can also perform project copy using the Copy Project button in a project record.

Before you copy a project, you must perform the following steps:
  • Decide on a project name to provide for the new copy. The project name must be unique. If a project with the same name already exists, the Wizard informs you that the name is a duplicate and you have to type a new name for the project.
    A blank project name is detected by the copy function. To insure the copy succeeds, the copy function creates a unique name with the following format:
    CopyOf_<SourceProjectID>_<unique integer>
    where SourceProjecID is the ID of the project being copied and unique integer is the number of seconds returned by the Perl time() function. For example,
    CopyOf_ALM00000292_1204732665
  • Create a new Category_Name and change the Category SecurityPolicy to SecurityPolicy_Category_Name. A category is required to copy a project.
  • Create a new ReleaseLabel (for example, ReleaseLabel01_Name or 1.0) or rename a ReleaseLabel (for example, ReleaseLabel01_AA or 1.1).

    Any Category and Release must already exist before the project data can be copied. Also make sure the Category + Release name for the new project is unique. The Copy Project function will stop if the Category + Release name combination already exists as part of another project.

  • Make sure all records that will be copied have valid data. Invalid values in various fields (for example as a result of a previous partially successful import) can result in copy failure or in partial copy of records. You can investigate the validity of data by opening a record with the Modify action, make no changes, and then clicking the Apply button. If the record saves successfully then there are no invalid field values in that record.
  • After copying a project, you must change some of the configurations for some of the cloned ALM records:
    • Set the Category record CurrentProject, Project recordCurrentPhase, and Phase record CurrentIteration values.
    • If a new category is specified for the new cloned project, all ALMRole record SecurityPolicies are set to the Everyone SecurityPolicy. You may need to update the value for each ALMRole record SecurityPolicy on the cloned records as required by your policy.
    • Modify your cloned ALMRoles by changing Members and Primary to the appropriate Members.
    • Modify any of the new records to suit your new Project. For example New ALMRole ApprovedActions may be different, or new ALMRole Members or Groups may be different.
    • Create a new PhaseLabel (for example, named PhaseLabel_Name). Locate the new Phase and change the PhaseLabel to PhaseLabel_Name. Also, change SecurityPolicy to SecurityPolicy_CategoryName, and then save the new Phase.
    • Iteration records are not copied from the old project to the new project and have to be created manually as needed.

Using the Project Wizard or the Copy Project button to copy a project provides a streamlined method for creating new projects quickly and efficiently, while ensuring consistency in settings across projects.

To use the copy utility to copy an existing project, run the script with the following command:
ratlperl copy_almproject.pl {-projadmin <projadmin>} {-pw <pw>} {-dbname <db>} {-dbset <dbset>} {-project <projectid>}  [-clonedprojname [<clonedprojname>]] [-category [<category>]] [-release [<release>]]
The options for this command include the following:
  • -projadmin: The login id of the Project Administrator.
  • -pw: The password of the Project Administrator.
  • -dbname: The user database name.
  • -dbset: The name of the database set or connection that contains the database.
  • -projectid: The ID of the project to be cloned.
  • -clonedprojname: The name for the cloned project.
  • -category: The ALMCategory for the cloned project.
  • -release: The ALMRelease for the cloned project.
  • -help: An optional flag for the Help.
For example:
ratlperl copy_almproject.pl -projadmin ProjectAdmin "" -dbname ALM -dbset CQMS.ALMM3.GALWAY -project ALM00001015