Skip to content

Releases: joniles/mpxj

Version 9.8.0

30 Sep 16:44
Compare
Choose a tag to compare
  • Introduced the BaselineStrategy interface and implementing classes. (Note: this includes a breaking change if you were using the ProjectFile.setBaseline method and supplying a lambda. You will now need to implement a BaselineStrategy and set this in ProjectConfig before setting a baseline).
  • Improved accuracy of baseline attributes for Primavera schedules.

Version 9.7.0

28 Sep 14:27
Compare
Choose a tag to compare
  • Add Sprint ID and Board Status ID attributes to task.
  • Introduce the TimeUnitDefaultsContainer to allow constants for time unit conversions to be obtained from both project properties and calendars.
  • Duration attributes are no longer returned as Duration instances by the ruby gem, they are now returned as floating point numbers. By default durations are expressed in seconds. A new optional argument to MPXJ::Reader.read allows you to change the units used to express durations. (Note: this is a breaking change for users of the ruby gem)
  • Update JsonWriter to use a relevant calendar when converting durations.
  • Ensure default calendar is set correctly when reading XER and PMXML files, and P6 databases.
  • Use default hours per day/week/month/year when reading P6 XER files or databases if these values are not present.
  • Ensure that the minutes per day/week/month/year attributes are copied when a calendar is copied.
  • When reading P6 schedules, roll up calendar for WBS entries when child activities all share the same calendar.
  • Generate missing minutes per day/week/month/year for calendars read from P6 schedules.
  • Inherit minutes per day/week/month/year from base calendars (Note: minor method signature changes on ProjectProperties and ProjectCalendar).
  • Allow explicit values to be set for project minutes per week and minutes per year.
  • Fall back on defaults for project minutes per day/week/month/year attributes.

Version 9.6.0

13 Sep 18:55
Compare
Choose a tag to compare
  • Add Planned Start and Scheduled Finish to project properties.
  • Add attribute_types method to Ruby classes.
  • Updated to use POI 5.0.0.
  • Corrected source of Must Finish By project property when reading XER files or P6 databases.
  • When reading PMXML files, ensure that the activity calendar is set before calculating slack.
  • Remove unused field TaskField.PARENT_TASK.
  • Ensure task Unique ID and task Parent Unique ID attributes are treated as mandatory when written to JSON.
  • Fix an issue with Ruby gem where a task's parent was not being retrieved correctly in some circumstances.

Version 9.5.2

22 Aug 18:04
Compare
Choose a tag to compare
  • Add Must Finish By date to project properties.
  • Add support for task attributes Longest Path, External Early Start and External Early Finish, and ensure they can be read from P6 schedules.
  • Rename ProjectFile.getStartDate() and ProjectFile.getFinishDate() methods for clarity. Original method names are marked as deprecated
  • Ensure that all activities in a PMXML file have a CalendarID attribute to ensure compatibility with older versions of P6.
  • Ensure that the user's selected progress period is used to set the project's status date attribute when reading Asta PP files.
  • Ensure that a task's Complete Through attribute is not advanced to the start of the next working day (the behaviour of Microsoft Project prior to 2007 was to report Complete Through as the start of the next working day. This change ensures MPXJ matches versions of Microsoft Project from 2007 onwards. Previous behaviour can be restored using the ProjectConfig.setCompleteThroughIsNextWorkStart() method).
  • Deprecate task getSplitCompleteDuration() and setSplitCompleteDuration() in favour of getCompleteThrough() and setCompleteThrough().
  • Improved the implementation of the TaskContainer.synchronizeTaskIDToHierarchy method.
  • Update jsoup to 1.14.2.

Version 9.5.1

02 Jul 11:02
Compare
Choose a tag to compare
  • When applying a baseline using ProjectFile.setBaseline, gracefully handle duplicate task key values.
  • Handle missing values populating cost rate table from an MPP file.

Version 9.5.0

30 Jun 10:03
Compare
Choose a tag to compare
  • Added support for reading baseline data from embedded baselines in PP files.
  • Correct resource assignment percent complete values read from PP files.
  • JsonWriter no longer writes attribute type information by default. (The original behaviour can be restored by calling setWriteAttributeTypes(true) on your JsonWriter instance).
  • The MPXJ Ruby Gem now generates explicit methods to access attributes rather than relying on "method_missing" to intercept and act on attribute access.
  • Don't write Assignment Task GUID, Assignment Resource GUID or Resource Calendar GUID to JSON.
  • Don't write a value for Assignment Work Contour to JSON if the contour is the default value (i.e. flat).
  • Don't write a value for Assignment Resource Request Type to JSON if the type is the default value (i.e. none).
  • Don't write a value for Task Earned Value Method to JSON if the method matches the project default.
  • Don't write a value for Task Type to JSON if the type matches the project default.
  • Stop writing a default value (-1) for Parent Task ID to JSON if the task does not have a parent.
  • Stop writing a default value (-1) for Task Calendar ID to JSON if the task does not have a calendar.
  • When reading resource assignments from an MPP file, don't record Project's internal representation of a null resource ID (-65535), record the resource ID explicitly as null.
  • For MPX and Planner files, don't write resource assignments for the "null" resource.
  • Handle missing status date when reading P6 schedules from XER files or database.
  • When reading MPP files, treat UUID's which are all zeros as null.
  • Deprecate the 10 Resource Outline Code get and set methods and replace with get and set methods which take an index argument.
  • Provide a helper method (PrimaveraHelper.baselineKey) to encapsulate key generation for setting Primavera baselines.

Version 9.4.0

11 Jun 08:51
Compare
Choose a tag to compare
  • Read custom value lists for resource custom fields from MPP files (based on a suggestion by Markus Höger).
  • Added support for reading custom fields from Asta Powerproject files.
  • Ensure short data type values are written to JSON files as numeric values.
  • Ensure delay data type values are written to JSON files as duration values.
  • Don't write zero rates to JSON files.
  • Introduced a separator into rate values when written to a JSON file to make it clear that the value is a rate not a duration (for example: 5.00h is now 5.00/h).
  • When writing an enum value of a JSON file, ensure we write the original enum name rather than the value return by toString. This provides more meaningful output (Potentially breaking change if you use the Ruby gem or consume the JSON output directly. Affected attributes are project properties: currency symbol position, time format, date format, bar text date format, schedule from, mpx file version; resource attribute: type).
  • Ensure invalid cost rate table data is handled gracefully when reading from MSPDI files.
  • Handle missing data when reading MSPDI files (based on a contribution by Lord Helmchen).
  • Improve population of summary task names when reading from Powerproject PP files.
  • Correctly read hierarchical resource outline codes from MPP files (based on a suggestion by Markus Höger).

Version 9.3.1

18 May 08:04
Compare
Choose a tag to compare
  • Preserve multiple assignments between an activity and a resource when reading P6 schedules.
  • Renamed WorkContour.isFlat to isContourFlat and WorkContour.isContoured to isContourManual.
  • Include an entry for 0% in the WorkContour curve definition.
  • Fix an issue where non working days were not being treated correctly in date calculations if they happen to still have time ranges attached.

Version 9.3.0

06 May 13:56
Compare
Choose a tag to compare
  • Add support for reading roles from P6 databases, XER and PMXML files, and for writing roles to PMXML files. Roles are represented as resources. The new resource Boolean attribute "Role" is used to distinguish between Resource instances which represent resources and those which represent roles.
  • Add support for reading resource curves from P6 databases, XER and PMXML files, and for writing resource curves to PMXML files. The WorkContour enum is now a class, and instance of this class are used to represent resource curves. The curves are available via the work contour attribute of resource assignments.
  • Corrected the data type of the task physical percent complete attribute.
  • Improve handling of non-standard relationship type representations encountered in XER files and P6 databases.

Version 9.2.6

26 Apr 15:04
Compare
Choose a tag to compare
  • Handle invalid baseline numbers when reading MSPDI files.
  • Improve custom field handling when reading GanttProject files.