Reading MS Project Files
The used Java library MPXJ Version 4.3 is able to read MS Project files up to Version 2010.
1. Create a Report with a Stages Data Source
2. Create an Artifact and create an Artifact Instance (File) in Stages by uploading a MS Project file.
3. Create a Data Set with the following result columns:
| Name | Type |
|---|---|
| task | String |
| ID | String |
| start | Date |
| finish | Date |
| work | String |
4. Include a Current metric like metric]Dashboard
5. Click on the Data Set on Preview Results
Example MS Project Extraction Script
function dumpValues(filename, filestream) {
if (filestream !=null) {
reader = ProjectReaderUtility.getProjectReader(filename);
projectfile = reader.read(filestream);
if (projectfile!= null) {
var Tasks = projectfile.getAllTasks().toArray();
for (jj=0; jj<Tasks.length; jj++ )
{
task = Tasks[jj];
dataset.setColumnValue("ID",task.getID() );
dataset.setColumnValue("tasks",task.getName() );
dataset.setColumnValue("tasks",task.getName() );
dataset.setColumnValue("start",task.getStart() );
dataset.setColumnValue("finish",task.getFinish() );
dataset.setColumnValue("work",task.getWork() );
dataset.storeResultRow();
}
}
}
}
var ArtifactName = "Project Metric Example";
var ArtifactInstanceName = "Project_Metric_example.mpp";
var process = stages.getCurrentProcess();
var artifacts = process[0].getEntities("containsArtifact@SYSTEM");
for each (artifact in artifacts) {
if (artifact.getProperty("DisplayName") == ArtifactName) {
var artifacts_instances =
artifact.getEntities("containsInstance@SYSTEM");
for each (artifacts_instance in artifacts_instances) {
if (artifacts_instance.getProperty("LogicalName") ==
ArtifactInstanceName) {
var filestream = artifacts_instance.getProperty("FileStream");
dumpValues(artifacts_instance.getProperty("PhysicalName"),
filestream);
}
}
}
}