Releases: joniles/mpxj
Releases · joniles/mpxj
Version 10.8.0
- 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
andgetOvertimeRateUnits
are deprecated. Use thegetStandardRate
andgetOvertimeRate
methods to retrieve aRate
instance which will include the units for these rates. - The Resource methods
setStandardRateUnits
andsetOvertimeRateUnits
are deprecated. SupplyRate
instances to thesetStandardRate
andsetOvertimeRate
methods with the required units instead. - The CostRateTableEntry methods
getStandardRateUnits
andgetOvertimeRateUnits
are deprecated. Use thegetStandardRate
andgetOvertimeRate
methods to retrieve aRate
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
- 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
- Ensure
ProjectCleanUtility
can load dictionary words from distribution jar. - Improve handling of calendars without days read from PMXML files.
Version 10.6.1
- 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
- Added support for reading and writing the unique ID of P6 user defined fields via new
getUniqueID
andsetUniqueID
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 toProjectCalendarException
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
- The
ProjectCalendaWeek
methodsaddCalendarHours()
,attachHoursToDay
,removeHoursFromDay
have been removed. UseaddCalendarHours(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
methodsattachHoursToDay
andremoveHoursFromDay
have been removed. Use theaddCalendarHours
andremoveCalendarHours
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
andProjectCalendarException
has been simplified, but there should be no impact for uses of these classes. - The
ProjectCalendarHours
class now implements theList
interface. Methods in this class not part oftheList
interface have been deprecated in favour of the equivalentList
methods. - Updated
MPXWriter
to ensure: calendar names are quoted if necessary, all calendars have names, all calendar names are unique. - Updated
MPXReader
to recognisewk
as a valid time unit. - Updated
MPXWriter
,PrimaveraPMFileWriter
,SDEFWriter
andPlannerWriter
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
andProjectCalendarWeek
both now inherit from a new classProjectCalendarDays
. Note thatProjectCalendar
is no longer a subclass ofProjectCalendarWeek
. - The
getHours
andisWorkingDay
methods have been moved up toProjectCalendar
from theProjectCalendarWeek
class. - The
ProjectCalendar
methodcopy
has been deprecated, without replacement. - Added a
getWork
method toProjectCalendar
which calculates the amount of work given aDay
instance. - Added
removeWorkWeek
andremoveCalendarException
methods toProjectCalendar
. - Recurring exceptions are now added to a
ProjectCalendar
using theaddCalendarException
method which takes arecurringData
instance its argument. - The
ProjectCalendarException
methodsetRecurringData
has been removed, recurring exceptions should be added using theaddCalendarExcepton
method described above. (Note: this will be a breaking change if you were creating recurring exceptions)
Version 10.4.0
- Remove
getParent
,setParent
, andisDerived
fromProjectCalendarWeek
. (Note: this will be a breaking change if you were working withProjectCalendarWeek
directly). - The
ProjectProperties
methdsgetDefaultCalendarName()
andsetDefaultCalendarName()
have been deprecated. UsegetDefaultCalendar()
andsetDefaultCalendar()
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.
Version 10.3.0
- General improvements to make calendar data read from different file formats more consistent.
- When reading P6 and Powerproject schedules MPXJ will no longer create an "artificial" resource calendar for each resource. Resources will be linked directly to the calendars they use in the original schedule.
- Update
MPXWriter
amdMSPDIWriter
to ensure that, when writen, calendars are correctly structured in the form required by Microsoft Project. JsonWriter
now includes calendar data as part of its output.- The
ProjectCalendar
methodssetMinutesPerDay
,setMinutesPerWeek
,setMinutesPerMonth
andsetMinutesPerYear
have been deprecated, usesetCalendarMinutesPerDay
,setCalendarMinutesPerWeek
,setCalendarMinutesPerMonth
andsetCalendarMinutesPerYear
instead. - The ProjectCalendar method
setResource
has been deprecated and will not be replaced. Use the Resource methodsetCalendar
orsetCalendarUniqueID
to link a calendar with a resource. - The ProjectCalendar method
getResource
has been deprecated. Use thegetResources
method instead to retrieve all resources linked with a calendar. - The
Resource
methodsaddResourceCalendar
,setResourceCalendar
,getResourceCalendar
,setResourceCalendarUniqueID
andgetResourceCalendarUniqueID
have been deprecated and replaced byaddCalendar
,setCalendar
,getCalendar
,setCalendarUniqueID
andgetCalendarUniqueID
respectively.
Version 10.2.0
- Improvements to writing currency, rate and units amounts to MSPDI files.
- When reading MPP and MSPDI files, calendar exceptions representing a single range of days, but defined as a recurring exception are converted to a range of days, removing the unnecessary recurring definition.
- Added
StructuredTextParser
to replace original code handling calendar data, project properties and curve data read from XER files and Primavera databases. Can also be used to extract data from Primavera Layout Files (PLF). - Improve recognition of contoured resource assignments read from MPP files.
- Improve retrieval of resource assignment confirmed, response pending, linked fields, and team status pending flags from certain MPP files.
Version 10.1.0
- Improve PMXML file compatibility with P6.
- Strip any trailing invalid characters from text read from FTS files.
- Ensure all tasks read from Powerproject and Project Commander have unique IDs.
- Correct expansion of exceptions from a weekly recurring calendar exception.
- Ensure that expanded calendar exceptions are written to file formats which do not support recurring exceptions.
- Ensure that start and finish dates are set when reading milestones from GanttProject files.