Browse our Products
Aspose.Tasks for Java 26.6 Release Notes
All Changes
| Key | Summary | Issue Type |
|---|---|---|
| TASKSNET-11747 | Update version of Aspose.Drawing dependency | Enhancement |
| TASKSNET-11696 | Add reading of task expenses for Primavera DB format | Enhancement |
| TASKSNET-11647 | Change source field of Task.Duration to “At completion Duration” instead of “Planned duration” when reading a project from Primavera formats. | Enhancement |
| TASKSNET-11765 | Fix calculation of BudgetedExpenseCost for Primavera XER and Primavera DB formats | Bug |
| TASKSNET-11714 | Fix ‘date cannot be DateTime.MinValue’ exception when recalculating the project | Bug |
| TASKSNET-11713 | Fix Assignment.ActualStart date is not updated when parent task’s start date is modified | Bug |
| TASKSNET-11463 | Fix task bar rendered outside of Gantt chart’s calendar’s area | Bug |
Public API and Backwards Incompatible Changes
| The following public methods were added: | Description |
|---|---|
| com.aspose.tasks.PrimaveraTaskProperties.getPlannedDuration() | Gets the original or planned duration – the total working time from the task planned start date to the planned finish date.. |
Related issue: TASKSNET-11647 - Change source field of Task.Duration to “At completion Duration” instead of “Planned duration” when reading a project from Primavera formats.
Possible breaking change in logic
The following applies to reading projects from Primavera formats (XER, XML, DB). Before version 26.6, the Task.Duration property was incorrectly populated from Primavera’s “Planned duration” field. This created counter-intuitive behavior where:
Task.getActualDuration() + Task.getRemainingDuration() ≠ Task.getDuration()
In Primavera, the relationship is actually: getActualDuration() + getRemainingDuration() = ‘At Completion Duration’
Starting from version 26.6, the mapping has been corrected:
Task.getDuration() - now maps to Primavera’s “At Completion Duration” Primavera’s “Planned duration” field is now mapped to Task.getPrimaveraProperties().getPlannedDuration()