Releases: joniles/mpxj
Releases · joniles/mpxj
Version 12.10.0
- When a baseline is added using one of the
ProjectFile.setBaseline
methods, ensure that the relevant baseline date is set inProjectProperties
. - Marked the
JsonWriter
methodssetEncoding
andgetEncoding
as deprecated, usesetCharset
andgetCharset
instead. - Marked the
PlannerWriter
methodssetEncoding
andgetEncoding
as deprecated, usesetCharset
andgetCharset
instead. - Marked the
PrimaveraXERFileWriter
methodsetEncoding
as deprecated, usesetCharset
instead. - Marked the
ProjectCalendarHelper
methodgetExpandedExceptionsWithWorkWeeks
as deprecated, useProjectCalendar.getExpandedCalendarExceptionsWithWorkWeeks
instead. - Marked the
ProjectReader
methodsetCharset
as deprecated. Readers which support setting the Chraset now implement theHasCharset
interface, which includes Charset getter and setter methods. - Implemented the
UniversalProjectWriter
class. This complements theUniversalProjectReader
class by providing a simple way for MPXJ users to write project files without having to be concerned with details of the individualProjectWriter
classes. This is intended to replace theProjectWriterUtility
class. Note that theProjectWriterUtility
has a somewhat brittle mechanism to determine the output file format from the supplied output file name. This is not replicated byUniversalProjectWriter
, users are expected to provide their own code to determine the appropriate file format. - Marked the
ProjectWriterUtility
class as deprecated.
Version 12.9.3
- Improve handling of non-standard timestamp formats in XER files.
Version 12.9.2
- Ensure calendars in Asta schedules have the correct name.
- Improve assignment of calendars to summary tasks when reading Asta schedules.
- Preserve calendar hierarchy when reading Asta schedules.
Version 12.9.1
- Fix an issue where
UniversalProjectReader
would raise an exception when handling an unknown file type. - Ensure that resource type is included as part of the resource assignment data when writing PMXML files.
Version 12.9.0
- Updated
UniversalProjectReader
to addgetProjectReaderProxy
methods to allow access to the instance of the reader class which will be used to read a schedule, prior to the schedule being read. This will allow the reader to be configured, or schedule to be ignored without reading its content. - Deprecated the
ProjectReader.setProperties
method. This method was originally implemented to allow settings to be passed to reader classes when usingUniversalProjectReader
. You can now useUniversalProjectReader.getProjectReaderProxy
to achieve this. - Add
from
method to allBuilder
classes to allow initialisation from existing objects. - The
CostAccount.Builder
class now provides twonotes
methods to allow formatted or unformatted notes to be added to cost accounts. - The
CostAccount
methodgetDescription()
has been marked as deprecated. Use thegetNotes()
orgetNotesObject()
method instead. - The
CustomFieldValueItem
methodsgetParent
andsetParent
have been marked as deprecated. Use thegetParentUniqueID
andsetParentUniqueID
methods instead. - JSON output from MPXJ now includes more detail for custom field definitions read from MPP files.
- When reading a PMXML file, populate the Early/Late Start/Finish date attributes from the Remaining Early/Late Start/Finish date attributes.
- Fix an issue reading WBS ID for P3 and SureTrak schedules.
Version 12.8.1
- Improve reading resource assignments from certain FastTrack FTS files.
Version 12.8.0
- Add experimental support for reading Deltek Open Plan BK3 files.
- Implemented the
Relation.Builder
class. - Marked the
Relation(Task,Task,RelationType,Duration)
constructor as deprecated, use theRelation.Builder
class instead. - Marked the
RelationContainer.addPredecessor(Task,Task,RelationType,Duration)
method as deprecated, use theRelationContainer.addPredecessor(Relation.Builder)
method instead. - Marked the
Task.addPredecessor(Task,RelationType,Duration)
method as deprecated, use theTask.addPredecessor(Relation.Builder)
method instead. - Add a notes attribute to the
Relation
class and ensure that it is read from and written to P6 schedules. - Read the Relationship Lag Calendar setting from Phoenix 5 files. (Contributed by Rohit Sinha)
- Don't write a material label to an MSPDI file for a resource which isn't a material.
- Update representation of Work Variance when writing MSPDI files to more closely match output from Microsoft Project.
- Updated to ensure that when schedules are read from XER files or P6 databases, labor and nonlabor work amounts are combined for the Actual, Remaining and Planned work attributes. This is now consistent with the existing behavior when reading PMXML files.
- Added support for new Task attributes Actual Work Labor, Actual Work Nonlabor, Remaining Work Labor, Remaining Work Nonlabor, Planned Work Labor, Planned Work Nonlabor, when reading and writing P6 schedules.
- Update default
readAll
method on reader classes to ensure that if the reader is unable to read any schedule data, an empty list is returned rather than a list containingnull
. - Ensure that Task Start and Finish dates are both the same when reading milestones from PMXML files, and that the correct date is used depending on whether we have a Start Milestone or a Finish Milestone.
Version 12.7.0
- Added support for reading and writing the project property Baseline Calendar Name to and from MPP and MSPDI files.
- Ensure Start Variance and Finish Variance are read from and written to MSPDI files in the correct format.
- Improve accuracy of large Work Variance values read from MSPDI files.
- Add support for the Calendar GUID attribute, which is read from MPP and MSPDI files, and written to MSPDI files.
- Ensure Activity Codes are available when reading Phoenix PPX files even if they are also being used to construct the task hierarchy.
- Ensure Activity Codes Values are populated when reading Phoenix PPX files. (Contributed by Rohit Sinha)
- When writing an MSPDI file, derive the TimephasedData Unit attribute from the duration of the timephased data item.
- Fixed an issue with the
ProjectCalendar.getPreviousWorkFinish
method when called with a time which was already at the end of a period of work. - Ensure that the
proj_node_flag
is set for the root WBS node when writing XER files.
Version 12.6.0
- Updated PMXML schema to version 23.12.
- Ensure that baselines in PMXML files written by Oracle Primavera Cloud are read.
- Fix an issue reading certain XER files and P6 databases where activities lost the relationship with their parent WBS entry.
- Added
ResourceAssignment.getEffectiveCalendar
method. - Deprecated
ResourceAssignment.getCalendar
method, usegetEffectiveCalendar
method instead. - Improved reading timephased baseline work from MPP files.
- Added new versions of the
TimephasedUtility.segmentBaselineWork
andsegmentBaselineCost
methods which take aProjectCalendar
instance as the first argument rather than aProjectFile
instance. - Deprecated the
TimephasedUtility.segmentBaselineWork
andsegmentBaselineCost
methods which take aProjectFile
instance as the first argument. - Added a new version of the
ProjectCalendar.getDate()
method which just takes a date and a duration as its arguments. This method handles both positive and negative durations. - Marked the original version of the
ProjectCalendar.getDate()
method as deprecated. Use the new version instead. - Improve recognition of task splits when reading MPP and MSPDI files.
Version 12.5.0
- Add support for the following Resource Assignment attributes: Remaining Early Start, Remaining Early Finish, Remaining Late Start, and Remaining Late Finish.
- Ensure that the Resource Assignment attributes Remaining Early Start and Remaining Early Finish are read from and written to PMXML files.
- Ensure that the Resource Assignment attributes Remaining Early Start, Remaining Early Finish, Remaining Late Start, and Remaining Late Finish are read from and written to XER files.
- Improve accuracy of reading and writing the
ProjectProperties
Relationship Lag Calendar attribute for PMXML files. - All P6 scheduling and leveling options which were previously made available via the
ProjectProperties
custom properties map are now deprecated. These properties now have individual getter and setter methods available on theProjectProperties
class. Note: this may be a breaking change if you were creating schedules from scratch, populating the custom properties map, then writing PMXML or XER files. In this case you will need to update your code, for all other use cases your code will continue to work unchanged until the next major version of MPXJ. - Added support for reading and writing the
ProjectProperties
attributes Baseline Type Name, Baseline Type Unique ID, and Last Baseline Update Date for baseline projects in PMXML files. - When reading projects from PMXML files, if the creation date attribute is not present in the file fall back to populating the
ProjectProperties
creation date attribute with the PMXML date added attribute. - When writing PMXML files, ensure the date added attribute for projects is populated with the creation date.
- Add the
CustomFieldContainer.remove
method to allow field configurations to be removed. - Updated the
UserDefinedFieldContainer.remove
method to ensure that any associated field configuration is removed from theCustomFieldContainer
. - Ensure that Microsoft Project's "unknown" resource (with Unique ID zero) is not exported to XER files.
- Ensure that resource assignments which are not associated with an Activity or a Resource are not written to XER files.
- Durations are written to PMXML files in hours. We now round to 2 decimal places to allow minutes to be represented, and avoid unnecessary precision.
- Currency amounts written to PMXML files are now rounded to 8 decimal places to more closely match the behavior of P6, and avoid unnecessary precision.
- Decimal amounts other than currency and duration are written to PMXML files with 15 decimal places to more closely match the behavior of P6.
- Fix an issue reading ConceptDraw calendars.
- Fixed a misspelled field name in the JSON output (Contributed by Daniel Taylor).
- Improved handling of the Resource Assignment Planned and Remaining Units and Units per Time attributes read from and written to P6 schedules.
- Added support for the following project properties: Activity ID Prefix, Activity ID Suffix, Activity ID Increment and Activity ID Based On Selected Activity, and ensure these are read from and written to P6 schedules.