Skip to content

Releases: joniles/mpxj

Version 10.10.0

13 Sep 14:27
Compare
Choose a tag to compare
  • Add an option to import Phoenix schedules as a flat set of tasks with separate activity codes, rather than creating a hierarchy of tasks from the activity codes. Note the default is to disable this behavior so existing functionality is unchanged. (Contributed by Christopher Johns)
  • Add a setProperties method to reader classes to allow configuration to be supplied via a Properties instance rather than having to call setter methods. Properties passed to the UniversalProjectReader version of this method will be forwarded to the reader class UniversalProjectReader chooses to reader the supplied file. Properties for multiple reader classes can be included in the Properties instance, each reader class will ignore irrelevant properties.
  • Added the get method to Task, Resource, ResourceAssignment and ProjectProperties as a replacement for the getCurrentValue method. The new get method is paired with the existing set method to provide read and write access to attributes of these classes. This change is intended to improve the interfaces to these classes by making them more consistent, and thus easier to understand.
  • Deprecated the getCurrentValue method on the Task, Resource, ResourceAssignment and ProjectProperties classes. Use the new get method instead.
  • Add getter and setter methods for the Resource attributes Cost Center, Budget Cost, Budget Work, Baseline Budget Cost, Baseline Budget Work, Baseline Budget Cost 1-10, and Baseline Budget Work 1-10.
  • Add getter and setter methods for the Task attributes Response Pending, Scheduled Start, Scheduled Finish, Scheduled Duration, Budget Cost, Budget Work, Baseline Budget Cost, Baseline Budget Work, Baseline Budget Cost 1-10, and Baseline Budget Work 1-10.
  • Added support for the Resource Cost Centre attribute for MSPDI files.
  • Move MPP file-specific functionality for determining baseline values from the Task class into the MPP reader class.
  • Improve handling of the TaskMode attribute.
  • Don't set a Task's Critical attribute unless we have valid slack values.
  • Ensure ResourceAssignment calculated fields are returned correctly when using the getCurrentValue method.
  • Ensure ProjectProperties calculated fields are returned correctly when using the getCurrentValue method.
  • Updated to use jsoup 1.15.3

Version 10.9.1

31 Aug 22:51
Compare
Choose a tag to compare
  • Ensure monthly and yearly recurrences are calculated correctly when the supplied start date is the same as the first recurrence date (Contributed by Rohit Sinha).
  • Add support for reading task calenadrs from Phoenix files (Contributed by Rohit Sinha).
  • Improve reliability of ProjectCleanUtility when using the replacement strategy.

Version 10.9.0

23 Aug 11:42
Compare
Choose a tag to compare
  • Added the ResourceAssignment.getEffectiveRate method to allow the cost rate effective on a given date for a resource assignment to be calculated. For P6 schedules this will take account of the cost rate configuration included as part of the resource assignment.
  • For P6 schedules, the ResourceAssignment.getCostRateTable method now takes in account any cost rate configuration details from the resource assignment when determining which table to return.
  • A resource's Standard Rate, Overtime Rate and Cost per Use are now all derived from the resource's cost rate table, and not stored as attributes of the resource itself.
  • The resource methods setStandardRate, setOvertimeRate, and setCostPerUse have been deprecated. These attributes can now only be set or updated by modifying the resource's cost rate table.
  • When writing MPX files, only include attributes which have a non-empty, non-default value in at least one task or resource.
  • When writing MPX files, ensure attributes which have calculated values are used.
  • Add support for reading a resource assignment's rate type from P6 schedules. The rate type is accessed via the ResourceAssignment.getRateIndex method. The value returned by this method can be used to select the required rate using the CostRateTableEntry,getRate method.
  • Add support for writing a resource assignment's rate type to PMXML files.
  • Add support for reading a resource assignment's role from P6 schedules. The role is accessed via the ResourceAssignment.getRole and ResourceAssignment.setRole methods.
  • Add support for writing a resource assignment's role to PMXML files.
  • Add support for reading a resource assignment's override rate (Price / Unit) from P6 schedules. The rate is accessed via the ResourceAssignment.getOverrideRate and ResourceAssignment.setOverrideRate methods.
  • Add support for writing a resource assignment's override rate (Price / Unit) to PMXML files.
  • Add support for reading a resource assignment's rate source from P6 schedules. The rate source is accessed via the ResourceAssignment.getRateSource and ResourceAssignment.setRateSource methods.
  • Add support for writing a resource assignment's rate source to PMXML files.

Version 10.8.0

17 Aug 14:45
Compare
Choose a tag to compare
  • When reading P6 schedules, all five cost rates for a resource are now available via the CostRateTableEntry.getRate method.
  • All five rates from each cost rate table entry can now be written to PMXML files.
  • When reading files written by Microsoft Project, resource rate values now use the same units as seen by the end user rather than defaulting to hours as was the case previously. (For example, if the user sees $8/day in the source application, you will receive a Rate instance of $8/day rather than $1/hr).
  • The values for a resource's standard rate, overtime rate, and cost per use attributes are now derived from the cost rate table. The values stored on the resource itself are only used if a cost rate table for the resource is not present.
  • The Resource methods getStandardRateUnits and getOvertimeRateUnits are deprecated. Use the getStandardRate and getOvertimeRate methods to retrieve a Rate instance which will include the units for these rates.
  • The Resource methods setStandardRateUnits and setOvertimeRateUnits are deprecated. Supply Rate instances to the setStandardRate and setOvertimeRate methods with the required units instead.
  • The CostRateTableEntry methods getStandardRateUnits and getOvertimeRateUnits are deprecated. Use the getStandardRate and getOvertimeRate methods to retrieve a Rate instance which will include the units for these rates.
  • Ensure rates are formatted "per hour" when writing MSPDI and PMXML files.
  • Include cost rate tables in JSON output.

Version 10.7.0

09 Aug 13:54
Compare
Choose a tag to compare
  • Use Jackcess to read Asta MDB and Microsoft Project MPD files. This allows these file to be read on platforms other than Windows.
  • Improve support for reading correctly typed values for enterprise custom fields from MPP files.
  • Improve array index validation when reading GUID values from MPP files.

Version 10.6.2

29 Jun 14:42
Compare
Choose a tag to compare
  • Ensure ProjectCleanUtility can load dictionary words from distribution jar.
  • Improve handling of calendars without days read from PMXML files.

Version 10.6.1

14 Jun 17:34
Compare
Choose a tag to compare
  • Updated to use POI 5.2.2
  • Updated to use sqlite-jdbc 3.36.0.3
  • Updated to use jsoup 1.15.1

Version 10.6.0

08 Jun 18:06
Compare
Choose a tag to compare
  • Added support for reading and writing the unique ID of P6 user defined fields via new getUniqueID and setUniqueID methods on `CustomField (based on a suggestion by Wes Lund).
  • Added support for reading and writing scope, scope ID, and sequence number attributes for activity codes (based on a suggestion by Wes Lund).
  • Added support for reading and writing sequence number and color attributes for activity code values (based on a suggestion by Wes Lund).
  • Added isWorking method to ProjectCalendarException to make it clearer how to determine if the exception changes the dates it is applied to into working or non-working days.
  • Improve reading task start from certain Planner files.
  • Improve reading predecessor lag values from Planner files.
  • Ensure calendar hierarchy is written correctly to Planner files.
  • Don't write null tasks to Planner files as Planner will not read files which contain them.
  • When writing Planner file, ignore constrainyt types which Planer can't represent.
  • Don't write emply predecessor lists to Planner files.
  • Improve handling of lag duration when writing Planner files.
  • Improve ProjectCalendar start date calculation when we have long runs of non-working days.
  • Performance enhancement for timephased data normalisation.

Version 10.5.0

24 May 14:57
Compare
Choose a tag to compare
  • The ProjectCalendaWeek methods addCalendarHours(), attachHoursToDay, removeHoursFromDay have been removed. Use addCalendarHours(day), removeCalendarHours(day) instead. (Note: this will be a breaking change if you were using the original methods to create or modify a schedule)
  • The ProjectCalendar methods attachHoursToDay and removeHoursFromDay have been removed. Use the addCalendarHours and removeCalendarHours methods instead. (Note: this will be a breaking change if you were using the original methods to create or modify a schedule)
  • The class hierarchy for ProjectCalendarHours and ProjectCalendarException has been simplified, but there should be no impact for uses of these classes.
  • The ProjectCalendarHours class now implements the List interface. Methods in this class not part ofthe List interface have been deprecated in favour of the equivalent List methods.
  • Updated MPXWriter to ensure: calendar names are quoted if necessary, all calendars have names, all calendar names are unique.
  • Updated MPXReader to recognise wk as a valid time unit.
  • Updated MPXWriter, PrimaveraPMFileWriter, SDEFWriter and PlannerWriter to ensure any working weeks defined by a calendar are represented by exceptons.
  • Updated MSPDIWriter to ensure any working weeks defined by a calendar are represented in the "legacy" exception definition used by Microsoft Project prior to 2007.
  • Updated SDEFWriter to ensure: only relevant calendars are written, and derived calendars are flattened.
  • When reading Planner schedules MPXJ will no longer create an "artificial" resource calendar for each resource. Resources will be linked directly to the calendar used in the original schedule.
  • Add suppport for reading the P6 calendar type and personal calendar flag from P6 schedules.
  • Add suppport for writing the calendar type and personal calendar flag to PMXML files.
  • Updated the calendar class hierarchy: ProjectCalendar and ProjectCalendarWeek both now inherit from a new class ProjectCalendarDays. Note that ProjectCalendar is no longer a subclass of ProjectCalendarWeek.
  • The getHours and isWorkingDay methods have been moved up to ProjectCalendar from the ProjectCalendarWeek class.
  • The ProjectCalendar method copy has been deprecated, without replacement.
  • Added a getWork method to ProjectCalendar which calculates the amount of work given a Day instance.
  • Added removeWorkWeek and removeCalendarException methods to ProjectCalendar.
  • Recurring exceptions are now added to a ProjectCalendar using the addCalendarException method which takes a recurringData instance its argument.
  • The ProjectCalendarException method setRecurringData has been removed, recurring exceptions should be added using the addCalendarExcepton method described above. (Note: this will be a breaking change if you were creating recurring exceptions)

Version 10.4.0

05 May 20:07
Compare
Choose a tag to compare
  • Remove getParent, setParent, and isDerived from ProjectCalendarWeek. (Note: this will be a breaking change if you were working with ProjectCalendarWeek directly).
  • The ProjectProperties methds getDefaultCalendarName() and setDefaultCalendarName() have been deprecated. Use getDefaultCalendar() and setDefaultCalendar() instead.
  • Ensure that percent complete values can be read from MSPDI files even if the values are decimals.
  • Improve handling of the default calendar when reading certain MSPDI files.
  • Improve reading certain Phoenix PPX files.
  • Improve reading certain FastTrack FTS files.
  • Improve formatting of time project properties when written to JSON.
  • Improve reading MPP files generated by Microsoft Project 16.0.15128.20158 and later versions.