Percent Complete in same file is different in each device



I am facing an issue with mpp file, I am not sure where the problem area is, the is issue as following:
I am updating mpp file using aspose tasks for php, to set tasks array with its new percent complete to update it in the mpp file, and it do update it with the sent values, but the issue is that this updated file show percent complete for the same task as different values when opening in it from different MS Project clients.

I sent the values to the tasks 3,4,5 as following:

  • task 3 “High Level Scoping and Planning” --> 100%
  • task 4 “WBS & WBS Dictionary” --> 20%
  • task 5 “Schedule and Planning” --> 100%

As a result:

  • at my desktop I have MS Project 2016 (32bit), it shows the percent complete for task 4 “WBS & WBS Dictionary” as 25%
  • other desktop using MS Project 2016 (64bit), it shows the percent complete for task 4 “WBS & WBS Dictionary” as 20%
  • other desktop using MS Project 2016 (64bit), it shows the percent complete for task 4 “WBS & WBS Dictionary” as 25%
  • other desktop using MS Project 2010 (32bit), it shows the percent complete for task 4 “WBS & WBS Dictionary” as 20%

I am using aspose tasks in Php using Aspose.Tasks for Java with PhpJavaBridge, below is my php script:

<?php namespaceAsposeTasksWorkingWithProjects; usecomasposetasksProject as Project; usecomasposetasksPrj as Prj; usecomasposetasksTsk as Tsk; usecomasposetasksExtendedAttribute as ExtendedAttribute; usecomasposetasksSaveFileFormat as SaveFileFormat; usejavautilCalendar as Calendar; usecomasposetasksChildTasksCollector as ChildTasksCollector; usecomasposetasksTaskUtils as TaskUtils; usecomasposetasksNullableBool as NullableBool; usecomasposetasksRsc as Rsc; usecomasposetasksAsn as Asn; usecomasposetasksWorkContourType as WorkContourType; usecomasposetasksBaselineType as BaselineType; usecomasposetasksTimephasedDataType as TimephasedDataType; usejavamathBigDecimal as BigDecimal; usejavautilDate as Date; usecomasposetasksTimeUnitType as TimeUnitType; usecomasposetasksLicense as License; class UpdateProjectFile { public static function run($dataDir, $tasksArray, $resourcesArray) { $license = new License(); $license->setLicense("Aspose.Tasks.Java.lic"); $project = new Project($dataDir); $prj = new Prj(); $collector = new ChildTasksCollector(); $taskUtils = new TaskUtils(); $taskUtils->apply($project->getRootTask() , $collector, 0); $tasks = $collector->getTasks(); $tsk = new Tsk(); foreach($tasksArray as $item) { if (isset($item['progress'])) { $task = $tasks->get($item['id']); if (isset($item['progress'])) { $progress = (int)$item['progress']; $task->set($tsk->PERCENT_COMPLETE, $progress); }; } } // $project->Recalculate(); $saveFileFormat = new SaveFileFormat(); $project->save($dataDir, $saveFileFormat->MPP); } } ?>


here is the output mpp file:



Thank you for contacting Aspose support team.

We are working on this issue and need your source MPP file as well to which percentage values are set and the above mentioned output project file is created. It will help us to observe the problem here and provide assistance accordingly.


Hi Kashif,

please use the link below to download the input and output files:

please take into consideration that the default calendar is set to “Sunday” to “Thursday”. “Friday” and “Saturday” are weekend days.



I have tried to download this file, but it is asking for permission. I have sent request from my test gmail account. Please allow or share file using some other option.


access granted, please check



I have tested this issue using Aspose.Tasks for .NET 18.8, and observed no issue. The output is similar in MSP 2010 32 bits and MSP 2016 64 bits system.

Please note that Aspose.Tasks for Java is ported from .NET version.We request you to wait about a week so that our next version for Aspose.Tasks for Java is released. You may test this issue with the incoming release and share your feedback accordingly.


Hi Kashif,

it is working fine now, I had to set the task type to fixed duration, now all are the same and percent complete is working fine too.

but 1 other issue appears, after updating the file, the customized Stand calendar is reset to defaults.

Standard calendar is set to “Sunday” to “Thursday”. “Friday” and “Saturday” are weekends, but after the update: the standard calendar is set to “Monday” to “Friday” where “Saturday” and “Sunday” are weekends.

please advice if there is something that needs to be set to the calendar or how do I modify the standard calendar to match the above working days.

I shared the input and output files with your email:



Could you please provide the sample code as well using which this output.mpp file is created? It will help us to reproduce issue here and provide assistance accordingly.


Unfortunately I had to remove aspose.tasks from my system, there are too many bugs when modifying the mpp file itself using aspose.

I replaced it with my code to integrate with ms project using xml



MPP file format is complex and its specifications are also not available publicly. This leads to issues though we try our best to do the best implementation in light of available developer resources. You can still write to us if you are facing issues with it and it can be further investigated for a fix at our end.