Creating a Project List

This Data Set script creates a list of all available projects in Stages and returns the Project ID and the full path of the project.

saveColumn(pkit.getRootProject());
getChilds(pkit.getRootProject());
function getChilds(project){
 var myprojects =
 project.getEntities("hierarchy::hierarchic@LOCAL,targetrole=children");
 for (var i=0;i<myprojects.length;i++){
 saveColumn(myprojects[i]);
 getChilds(myprojects[i]);
 }
}
function projectparent(project) {
 var myprojects =
 project.getEntities("hierarchy::hierarchic@LOCAL,targetrole=parent");
 var Path = new Array();
 if (myprojects.length == 0) {
 Path.unshift(project.getProperty("Name"));
 return Path;
 }
 var Name = myprojects[0].getProperty("Name");
 Path.unshift(project.getProperty("Name"));
 while (!Name.match(/INDEX/)) {
 Path.unshift(Name);
 project = myprojects[0];
 myprojects =
 project.getEntities("hierarchy::hierarchic@LOCAL,targetrole=parent");
 if (myprojects.length ==0)
 break;
 Name = myprojects[0].getProperty("Name");
 }
 return Path;
}
function saveColumn(project){
 var metamodell = project.getEntities("containsProcess@SYSTEM");
 if (metamodell.length> 0 )
 {
 dataset.setColumnValue("project_id",
 metamodell[0].getProperty("ProjectId"));
 dataset.setColumnValue("full_name",
 projectparent(project).join("|"));
 dataset.storeResultRow();
 }
}