String dataDir = Utils.getDataDir(AssignmentCost.class); Project project = new Project(dataDir + "New project 2013.mpp"); Task task = project.getRootTask().getChildren().add("t1"); Resource materialResource = project.getResources().add("materialResource"); materialResource.set(Rsc.TYPE, ResourceType.Material); Resource nonMaterialResource = project.getResources().add("nonMaterialResource"); nonMaterialResource.set(Rsc.TYPE, ResourceType.Work); ResourceAssignment materialResourceAssignment = project.getResourceAssignments().add(task, materialResource); materialResourceAssignment.set(Asn.RATE_SCALE, RateScaleType.Week); ResourceAssignment nonMaterialResourceAssignment = project.getResourceAssignments().add(task, nonMaterialResource); nonMaterialResourceAssignment.set(Asn.RATE_SCALE, RateScaleType.Week); project.save("output.mpp", SaveFileFormat.MPP); Project resavedProject = new Project("output.mpp"); ResourceAssignment resavedMaterialResourceAssignment = resavedProject.getResourceAssignments().getByUid(1); System.out.println(resavedMaterialResourceAssignment.get(Asn.RATE_SCALE)); // only material resource assignments can have non-zero rate scale value. ResourceAssignment resavedNonMaterialResourceAssignment = resavedProject.getResourceAssignments().getByUid(2);