Skip to content

Releases: joniles/mpxj

Version 14.1.0

05 Jun 08:03
Compare
Choose a tag to compare
  • Updated to POI 5.4.1
  • Improve actual duration calculation for activities with suspend and resume dates when reading XER files and Primavera P6 databases.
  • Added Enable Summarization and Enable Publication flags to ProjectProperties.
  • Added support for Enable Summarization and Enable Publication flags when reading and writing PMXML files.
  • Ensure the Actual Start and Actual Finish attributes in ProjectProperties are populated.
  • Improve retrieval of Enterprise Custom Field names when reading MSPDI files.
  • Updated the JSON writer to use Jackson.

Version 14.0.0

07 May 14:49
Compare
Choose a tag to compare
  • NEW FEATURES
  • MPXJ can now schedule projects using CPM (Critical Path Method)
  • Two new classes (MicrosoftScheduler and PrimaveraScheduler) allow MPXJ to schedule a project in a way which follows the approach of either Microsoft Project or Primavera P6.
  • Added support for reading Edraw Project EDPX files
  • CHANGES
  • Improvements to accuracy of reading text UDF values from Powerproject PP files.
  • Corrected conversion of elapsed durations when writing JSON files.
  • Added the Relation#lag_units method to the ruby gem.
  • BREAKING CHANGES - .Net
  • The net.sf.mpxj, net.sf.mpxj-for-csharp, and net.sf.mpxj-for-vb NuGet packages are no longer being distributed. You must migrate your code to use the MPXJ.Net NuGet package instead.
  • BREAKING CHANGES - Java, Python
  • The name of the package containing MPXJ's Java classes has changed from net.sf.mpxj to org.mpxj. You will need to update your code by searching for net.sf.mpxj and replace this with org.mpxj. NOTE: for Java applications using Maven, the Maven Group ID has not changed, you will still retrieve MPXJ using the Group ID net.sf.mpxj.
  • The constant TaskField.PRIMARY_RESOURCE_ID has been renamed to TaskField.PRIMARY_RESOURCE_UNIQUE_ID.
  • The RelationContainer#getRawSuccessors method has been removed. Use the RelationContainer#getSuccessors method instead. This method now returns the same data getRawSuccessors returned previously.
  • The deprecated UserDefinedField constructors have been removed, use UserDefinedField.Builder instead.
  • The deprecated UserDefinedField#setDataType method has been removed, use the UserDefinedField.Builder#dataType method instead.
  • The deprecated StructuredNotes constructor has been removed, use the StructuredNotes constructor taking a ProjectFile instance instead.
  • The deprecated Relation#getSourceTask and Relation#getTargetTask methods have been removed, use Relation#getPredecessorTask and Relation#getSuccessorTask methods instead.
  • The deprecated Relation.Builder#sourceTask and Relation.Builder#targetTask methods have been removed, use Relation.Builder#predecessorTask and Relation.Builder#successorTask methods instead.
  • The deprecated ActivityCodeValue#getType method has been removed. Use the ActivityCodeValue#getParentCode method instead.
  • The deprecated ActivityCodeValue#getActivityCode method has been removed. Use the ActivityCodeValue#getParentCode method instead.
  • The deprecated ActivityCodeValue#getParent method has been removed. Use the ActivityCodeValue#getParentValue method instead.
  • The deprecated ActivityCodeValue#getParentUniqueID method has been removed. Use the ActivityCodeValue#getParentValueUniqueID method instead.
  • The deprecated ActivityCodeValue.Builder#type method has been removed. Use the ActivityCodeValue.Builder#activityCode method instead.
  • The deprecated ActivityCodeValue.Builder#parent method has been removed. Use the ActivityCodeValue.Builder#parentValue method instead.
  • The deprecated Task#addActivityCode method has been removed. Use the Task#addActivityCodeValue method instead.
  • The deprecated GanttBarStyleException#getBarStyleIndex method has been removed. Use GanttBarStyleException#getGanttBarStyleID to retrieve the bar style ID, and GanttChartView#getGanttBarStyleByID to retrieve the style
  • The deprecated constant TaskField.ACTIVITY_CODE_LIST has been removed. Use TaskField.ACTIVITY_CODE_VALUES instead.
  • The deprecated Task#getActivityCodes method has been removed. Use the Task#getActivityCodeValues method instead.
  • The deprecated Task#setPrimaryResourceID method has been removed. Use the Task#setPrimaryResourceUniqueID method instead.
  • The deprecated Task#getPrimaryResourceID method has been removed. Use the Task#getPrimaryResourceUniqueID method instead.
  • The deprecated Task#isSucessor method has been removed. Use the Task#isSuccessor method instead.
  • The common MPPUtility static methods getShort, getIntand getLong have been moved to the ByteArrayHelper class.
  • BREAKING CHANGES - Ruby
  • The deprecated Ruby attribute Relation#task_unique_id has been removed, use Relation#predecessor_task_unique_id and Relation#successor_task_unique_id instead.

Version 13.12.0

09 Apr 17:00
Compare
Choose a tag to compare
  • Added support for reading Float Path and Float Path Order from XER files and P6 databases.
  • Added support for writing Float Path and Float Path Order to XER files.
  • Added support for reading baselines from Phoenix schedules.
  • Improve date arithmetic when using the ProjectCalendar#getDate() method with elapsed durations.
  • Include units percent complete when writing resource assignments to PMXML files.
  • Improve accuracy of resource assignment remaining units when writing XER and PMXML files.
  • When writing MSPDI files, calculate resource assignment remaining work if not present.

Version 13.11.0

10 Mar 17:49
Compare
Choose a tag to compare
  • Add support for reading the WBS and Activity Methodology GUID attribute from XER files and P6 databases, and for writing this to XER files.
  • Improve accuracy of resource assignment start and finsh dates when reading XER files and P6 databases.
  • Fixed an issue reading resource code value hierarchy from XER files.
  • Improve retrieval of Gantt Bar Styles from certain MPP files.
  • Added the GanttBarStyleException methods getGanttBarStyleID() and setGanttBarStyleID().
  • Added the GanttChartView method getGanttBarStyleByID().
  • Marked the GanttBarStyleException#getBarStyleIndex() method as deprecated. Use the GanttBarStyleException#getGanttBarStyleID() method to retrieve the Gantt Bar Style ID, then use the view's getGanttBarStyleByID() method to retrieve a list of matching styles.
  • Added the Duration#negate() method to simplify negating a duration.
  • Improve provision of default values for Project Planned Start date and Activity Planned Duration when writing XER files.

Version 13.10.0

07 Feb 17:21
Compare
Choose a tag to compare
  • Add support for reading the P6 EPS using the listEps() method provided by the PrimaveraDatabaseReader and PrimaveraDatabaseFileReader classes.
  • Improve handling of Activity Type attribute when reading PMXML files written by Primavera P6 6.x.
  • Ensure that the External Early Start and External Late Finish attributes are written to XER files.
  • Fix a NPE when calling PrimaveraXERFileReader.listProjects().
  • Avoid unnecessary data storage and type conversion to improve efficiency when calling PrimaveraXERFileReader.listProjects().
  • Provide additional ResourceAssignment methods to allow List<TimephasedWork> to be used to add timephased work, rather than requiring a TimephasedWorkContainer.
  • Improve identification of tasks when reading certain Asta Powerproject PP files.

Version 13.9.0

09 Jan 19:46
Compare
Choose a tag to compare
  • Updated to POI 5.4.0
  • Updated PMXML schema to version 24.12.
  • Added support for reading and writing currencies for Primavera P6 schedules.
  • Improve recognition of dates displayed as NA in Microsoft Project when reading certain MPP file.
  • Ignore invalid cost rate table entries when reading certain MPP files.

Version 13.8.0

17 Dec 16:18
Compare
Choose a tag to compare
  • Added support for reading and writing Project Codes, Resource Codes, Role Codes and Resource Assignment Codes for Primavera P6 schedules.
  • When writing PMXML files, improve handling of P6 schedules where activity code sequence numbers are missing.
  • Added an experimental feature to MSPDIWriter to allow the writer to generate timephased data when none is present. Disabled by default, call the setGenerateMissingTimephasedData and pass true to enable.
  • To improve consistency, the methods Task.getPrimaryResourceID() and Task.setPrimaryResourceID() have been marked as deprecated. Use the new Task.getPrimaryResourceUniqueID() and Task.setPrimaryResourceUniqueID() methods instead.
  • Added the methods Task.getPrimaryResource() and Task.setPrimaryResource().
  • Improved accuracy of retrieving the resource assignment GUID attribute when reading MPP files (Contributed by Fabian Schmidt).
  • Improve population of Task Start and Finish attributes when reading Primavera P6 schedules.
  • Marked the ActivityCodeValue.getParent() method as deprecated. Use ActivityCodeValue.getParentValue() instead.
  • Marked the ActivityCodeValue.getParentUniqueID() method as deprecated. Use ActivityCodeValue.getParentValueUniqueID() instead.
  • Marked the ActivityCodeValue.Builder.parent() method as deprecated. Use ActivityCodeValue.Builder.parentValue() instead.
  • Marked the ActivityCodeValue.getActivityCode() method as deprecated. Use ActivityCodeValue.getParentCode() instead.

Version 13.7.0

25 Nov 16:36
Compare
Choose a tag to compare
  • Update the MPXJ ruby gem to allow access to calendar data.
  • Mark the ActivityCodeValue.getType() method as deprecated. For clarity this method has been replaced by the new ActivityCodeValue.getActivityCode() method.
  • Mark the ActivityCodeValue.Builder.type() method as deprecated. For clarity this method has been replaced by the new ActivityCodeValue.Builder.activityCode() method.
  • Added the Task.getActivityCodeValues() method, which returns a Map of ActivityCodeValue instances, keyed by ActivityCode.
  • Marked the Task.getActivityCodes() method as deprecated. Replaced with the Task.getActivityCodeValues() method which is more clearly named, and presents the activity code values in a more flexible form.
  • Added the Task.addActivityCodeValue() method.
  • Marked the Task.addActivityCode() method as deprecated. Replaced with the Task.addActivityCodeValue() method which is more clearly named.
  • Further improvements to retrieval of custom field values read from MPP files.
  • Ensure that missing resource assignment and task start and finish dates are handled gracefully when working with calendars for manually scheduled tasks.

Version 13.6.0

06 Nov 19:41
Compare
Choose a tag to compare
  • Added the Task.getBaselineTask() methods. For applications where a separate baseline schedule is present or a baseline has been manually added to the ProjectFile instance, these methods will allow you to access the underlying baseline task instance from the current task instance.
  • Added the Activity Percent Complete attribute to the Task class. The value of this attribute will be the Duration, Physical or Units percent complete value, based on the Percent Complete Type setting. This attribute is provided as a convenience to match the Activity Percent Complete type value shown in P6.
  • Improve retrieval of custom field values for certain MPP files.
  • Improve handling of PMXML files with more than 11 baselines.
  • Improve handling of unexpected data types when writing JSON files.
  • Added the Relation.getPredecessorTask() and Relation.getSuccessorTask() methods.
  • Marked the Relation.getSourceTask() and Relation.getTargetTask() methods as deprecated, use the Relation.getPredecessorTask() and Relation.getSuccessorTask() instead.
  • Ensure that with "Link Cross Project Relations" enabled when reading XER or PMXML files, the predecessor and successor lists for both tasks related acrosss projects are correctly populated.

Version 13.5.1

28 Oct 16:04
Compare
Choose a tag to compare