Skip to content

Releases: joniles/mpxj

Version 12.3.0

07 Nov 22:10
Compare
Choose a tag to compare
  • Retrieve role availability data when reading a schedule from a P6 database.
  • Populate the project's Name and Title attributes when exporting an MSPDI file.
  • Ensure the Project ID attribute is populated when writing an XER file.
  • Don't include null tasks (blank tasks) when writing an XER file.
  • Strip control characters from entity names written to MSPDI files and XER files.
  • Ensure resource material labels written to MSPDI files meet Microsoft Project's naming requirements.
  • Ensure the activity code value Name attribute is populated when read from an Asta PP file.
  • Don't allow multiple values for an activity code when writing XER and PMXML files.
  • The MSPDI and MPX writers now dynamically renumber Unique ID values which are too large for Microsoft Project. The original schedule is no longer modified to achieve this.

Version 12.2.0

12 Oct 10:52
Compare
Choose a tag to compare
  • Add the UnitOfMeasure class to represent the unit of measure for a material resource. The unit of measure corresponds to the current "material label" attribute of a resource. The Resource.getMaterialLabel() method will now retrieve the label from the UnitOfMeasure instance associated with the resource. The Resource.setMaterialLabel() method is now deprecated, the Resource.setUnitOfMeasure() or Resource.setUnitOfMeasureUniqueID() methods should be used instead.
  • Unit of measure for material resources are now read from and written to Primavera schedules.
  • Improve task duration and percent completion calculation for Asta PP files.
  • Improve date parsing when reading XER files written by older versions of P6.
  • Added the setIgnoreErrors method to the Primavera database reader class, and MSPDI, Schedule Grid, and SDEF file reader classes. The current default behavior of ignoring data type parse errors is unchanged. Calling setIgnoreErrors(false) on one of these reader classes will ensure that an exception is raised when a data type parse error is encountered.
  • Added the ProjectFile.getIgnoredErrors() method. The default behavior for MPXJ reader classes is to ignore data type parse errors. If any errors have been ignored when reading a schedule, details of these errors can be retrieved by calling the ProjectFile.getIgnoredErrors() method.
  • Handle duplicate relation unique IDs when reading schedules.
  • Include resource availability table in JSON output.
  • Add the Resource field Default Units, and ensure this field is read and written for P6 Schedules.
  • Updated the Resource attribute Max Units to ensure that this is calculated from the resource's availability table. Note that the Resource.getMaxUnits() method will return the resource's Max Units attribute for the current date. To retrieve the Max Units for a different date, use the AvailabilityTable.getEntryByDate() method.
  • Marked the Resource.setMaxUnits() method as deprecated. The Max Units attribute is derived from the resource's availability table. Changes to Max Units should now be made by modifying the availability table.
  • Updated the Resource attribute Available From to ensure that this is calculated from the resource's availability table. Note that the Resource.getAvailableFrom() method will return the resource's Available From attribute for the current date. To retrieve the Available From attribute for a different date, use the AvailabilityTable.availableFrom() method.
  • Marked the Resource.setAvailableFrom() method as deprecated. The Available From attribute is derived from the resource's availability table. Changes to the Available From attribute should now be made by modifying the availability table.
  • Updated the Resource attribute Available To to ensure that this is calculated from the resource's availability table. Note that the Resource.getAvailableTo() method will return the resource's Available To attribute for the current date. To retrieve the Available To attribute for a different date, use the AvailabilityTable.availableTo() method.
  • Marked the Resource.setAvailableTo() method as deprecated. The Available To attribute is derived from the resource's availability table. Changes to the Available To attribute should now be made by modifying the availability table.

Version 12.1.3

25 Sep 08:36
Compare
Choose a tag to compare
  • Added the Project Properties attribute Relationship Lag Calendar and implemented read and write support for this for P6 schedules. (Contributed by Rohit Sinha).
  • Improve compatibility of PMXML files with P6 EPPM by moving the Schedule Options tag.
  • Ensure Baseline Projects in PMXML files include Schedule Options and Location Object ID.

Version 12.1.2

21 Sep 21:20
Compare
Choose a tag to compare
  • Updates to improve compatibility with versions of Java after Java 8.
  • Ensure timestamps with fractional sections are read correctly from Phoenix PPX files (Based on a contribution by Rohit Sinha).
  • Improve handling of double quotes when reading and writing XER files.
  • To allow XER files written by MPXJ to be imported correctly by P6, ensure that they have a single top level WBS entry (Based on a contribution by Alex Matatov)
  • Ensure that ProjectProperties.getCustomProperties() returns an empty Map rather than returning null if no custom properties have been configured.
  • Ensure project calendars and project activity codes are nested within the project tag of PMXML files.

Version 12.1.1

23 Aug 13:33
Compare
Choose a tag to compare
  • Fix an issue preventing native SQLite library from loading when using the .Net version of MPXJ on Mac OS.

Version 12.1.0

22 Aug 15:02
Compare
Choose a tag to compare
  • Write schedule options to PMXML abd XER files.
  • Fix an arithmetic error in RateHelper when converting a rate from minutes to hours.
  • Introduced new methods to RateHelper accepting a TimeUnitDefaultsContainer argument rather than a ProjectFile for greater flexibility. Marked methods taking a ProjectFile argument as deprecated.
  • Ensure Early Finish and Late Finish are populated for Asta milestones and tasks.
  • Don't attempt to calculate total slack if start slack or finish slack are missing.
  • Ensure completed tasks are not marked as critical.
  • Improve handling of non-standard Boolean values in MPX files.
  • Improve Total Slack calculation for P6 projects.
  • Handle finish milestones with null actual start date for actual duration calculation when reading PMXML files (Contributed by Andrew Marks).

Version 12.0.2

25 Jul 11:22
Compare
Choose a tag to compare
  • Ensure that the Fixed Cost attribute is rolled up from activities to WBS entries when reading P6 schedules.

Version 12.0.1

21 Jul 17:53
Compare
Choose a tag to compare
  • Improve resource hierarchy handling.
  • Improve handling of external tasks read from MSPDI files.
  • Improve handling of resource assignments read from Asta PP files containing multiple baselines.
  • Improve filtering to ignore hammock tasks in Asta PP files and ensure that non-hammock items are not incorrectly ignored.
  • Improve handling of bars without additional linked data read from Asta PP files.
  • Ensure that invalid duplicate Unique ID values encountered when reading schedule data are renumbered to maintain uniqueness.
  • Improve reading certain FastTrack FTS files.
  • Roll up the expense item at completion values read from P6 schedules to the task Fixed Cost attribute.

Version 12.0.0

29 Jun 10:25
Compare
Choose a tag to compare
  • NOTE: this is a major version release, breaking changes have been made to the MPXJ API as documented below.
  • Timestamps, dates, and times are now represented by java.time.LocalDateTime, java.time.LocalDate and java.time.LocalTime respectively, rather than java.util.Date as they were originally.
  • For .Net users, new ToDateTime and ToNullableDateTime extension methods have been provided to convert java.time.LocalDateTime, java.time.LocalDate, java.time.LocalTime to DateTime instances.
  • For .Net users, new ToJavaLocalDateTime, ToJavaLocalDate and ToJavaLocalTime extension methods have been provided to convert DateTime instances to java.time.LocalDateTime, java.time.LocalDate, and java.time.LocalTime.
  • The class net.sf.mpxj.Day has been replaced by java.time.DayOfWeek.
  • All code previously marked as deprecated has been removed.
  • Added support for reading and writing the Activity attribute "Expected Finish" for P6 schedules.

Version 11.5.4

27 Jun 15:56
Compare
Choose a tag to compare
  • Improve accuracy of dates read from Synchro, Suretrak and Turboproject files.
  • By default ignore errors in individual records read from XER files. This matches P6's behavior when importing XER files. Use the PrimaveraXERFileReader.setIgnoreErrors method to change the behavior.