Skip to content

informat.mpp MPP Files

Overview

Use informat.mpp to perform read and write operations on MPP files

createProjectFile

Create an MPP project file object

javascript
informat.mpp.createProjectFile();

Return Value

Type is MppProjectFile

read

Read an MPP file from the local sandbox. If the file does not exist, an exception will be thrown

javascript
informat.mpp.read(file);
ParameterTypeDescription
fileStringMPP file path in the app's sandbox environment

Return Value

Type is MppProjectFile

Example

js
let projectFile = informat.mpp.read("软件开发.mpp");
var resourceAssignments = projectFile.getResourceAssignments();
resourceAssignments.list().forEach((as) => {
  if (as.getTask() == null || as.getResource() == null) {
    return;
  }
  var taskId = as.getTask().getID();
  var resourceName = as.getResource().getName();
  console.log("taskId:" + taskId + ",resourceName:" + resourceName);
});
var tableContainer = projectFile.getTables();
if (tableContainer != null && tableContainer.size() > 0) {
  var columns = tableContainer.list().get(0).getColumns();
  columns.forEach((c) => {
    console.log("column:" + c.getTitle());
  });
}
var tasks = projectFile.getTasks();
tasks.list().forEach((task) => {
  console.log("taskId:" + task.getID() + ",taskName:" + task.getName());
});

write

Write projectFile data to an XML file

js
informat.mpp.write(projectFile, targetFile, config);
ParameterTypeDescription
projectFileMppProjectFileproject file object
targetFileStringFile path in the app's sandbox environment
configMppWriterConfigConfiguration file
js
var file = informat.mpp.createProjectFile();
var pmResource = file.addResource();
pmResource.setName("项目经理");
var devResource = file.addResource();
devResource.setName("开发人员");
var customFieldContainer = file.getCustomFields();
var field = customFieldContainer.getOrCreate("TEXT1");
field.setAlias("MyCustomField");
var task1 = file.addTask();
task1.setName("root");
task1.setTaskMode("MANUALLY_SCHEDULED");
task1.setStart(new Date());
task1.setFinish(new Date(2024, 3, 1));
task1.setText(1, "测试1");
task1.addResourceAssignment(pmResource);
task1.addResourceAssignment(devResource);
//
var task12 = task1.addTask();
task12.setName("任务A");
task12.setTaskMode("AUTO_SCHEDULED");
task12.setStart(new Date());
task12.setFinish(new Date(2024, 2, 1));
task12.setText(1, "text1");
task12.addResourceAssignment(devResource);
//
task1.addPredecessor(task12, null, null);
task12.addPredecessor(task1, null, null);
//
var task2 = file.addTask();
task2.setName("任务B");
task2.setTaskMode("MANUALLY_SCHEDULED");
task2.setStart(new Date(2024, 4, 1));
task2.setFinish(new Date(2024, 5, 1));
//
var config = {
  microsoftProjectCompatibleOutput: false,
  splitTimephasedAsDays: true,
  writeTimephasedData: false,
  saveVersion: "Project2016",
};
informat.mpp.write(file, "output.xml", config);