Browse our Products

Aspose.Tasks for .NET 25.11 Release Notes

All Changes

KeySummaryIssue Type
TASKSNET-11583Add reading of calendar-specific “Hours per Day” setting from Primavera formats.Enhancement
TASKSNET-11582Add reading of “Define Critical Activities” option from Primavera formats and initialization of “Task.IsCritical” flagEnhancement
TASKSNET-11552Add an API to allow reading projects’ Uids and Names from Primavera DBEnhancement
TASKSNET-11620Fix incorrect baseline cost timephased data when assignment’s calendar is different from baseline calendarBug
TASKSNET-11615Fix calculations related to a material resource’s assignment for task with assigned work resourcesBug
TASKSNET-11612Fix calculation of resource assignments with actual work when parent task duration is changedBug
TASKSNET-11611Fix calculation of non started (without actual work reported) resource assignments when parent task duration is changedBug
TASKSNET-11610Investigate and fix rounding errors when work contour duration is changedBug
TASKSNET-11609Fix incorrect baseline work timephased data for the specific fileBug
TASKSNET-11607Fix incorrect calculation of material resource calendarBug
TASKSNET-11595Fix incorrect generation of Timephased Data when assignment start is at the end of working dayBug
TASKSNET-11593Fix InvalidOperationException: ‘ToDouble encountered value with length 26’ when reading the specific fileBug
TASKSNET-11589Fix calculation of contoured resource assignments when parent task duration is changedBug
TASKSNET-11586Fix inconsistent generation of Cost Timephased data after project is saved and openedBug
TASKSNET-11581Add an ability to set negative baseline costBug
TASKSNET-11572Fix TasksReadingException when trying to read resource with no rates defined from Primavera DBBug
TASKSNET-11570Fix reading of calendar data from Primavera DBBug
TASKSNET-11563Inconsistent time-phased AssignmentUnit data for Material resources after repeated task duration editsBug
TASKSNET-11553Inconsistency in duration recalculation when editing a task with a Material resource and a custom extended-hours calendarBug
TASKSNET-11534Fix incorrect logic of RescheduleUncompletedWorkToStartAfter methodBug

Public API and Backwards Incompatible Changes

The following public types were added:Description
Aspose.Tasks.PrimaveraCalendarPropertiesRepresents Primavera-specific properties for a calendar read from Primavera files (XER of P6XML).
Aspose.Tasks.PrimaveraCriticalActivitiesDefiningMethodSpecifies the method for defining critical activities in Primavera.
Aspose.Tasks.PrimaveraDbReaderRepresents a reader to read Project Info from Primavera DB
The following public methods and properties were added:Description
Aspose.Tasks.Calendar.PrimaveraPropertiesGets an object containing Primavera-specific properties for a calendar read from Primavera formats.
Aspose.Tasks.Primavera.PrimaveraProjectInfo.ShortNameGets project’s short name (Project ID).
Aspose.Tasks.PrimaveraBaseReader.#ctorInitializes a new instance of the class.
Aspose.Tasks.PrimaveraCalendarProperties.HoursPerDayGets amount of hours per day from ‘Time Periods’ settings of the calendar.
Aspose.Tasks.PrimaveraCalendarProperties.HoursPerWeekGets amount of hours per week from ‘Time Periods’ settings of the calendar.
Aspose.Tasks.PrimaveraCalendarProperties.HoursPerMonthGets amount of hours per month from ‘Time Periods’ settings of the calendar.
Aspose.Tasks.PrimaveraCalendarProperties.HoursPerYearGets amount of hours per month from ‘Time Periods’ settings of the calendar.
Aspose.Tasks.PrimaveraDbReader.#ctor(Aspose.Tasks.Connectivity.PrimaveraDbSettings)Initializes a new instance of the class.
Aspose.Tasks.PrimaveraDbReader.LoadProject(System.Int32)Loads the project with the specified unique identifier.
Aspose.Tasks.PrimaveraProjectProperties.CriticalActivitiesDefiningMethodGets the method for defining critical activities: Longest Path or Total Float approach.
Aspose.Tasks.PrimaveraProjectProperties.CriticalTotalFloatLimitGets the threshold value used to define critical activities if TotalFloat method is used.
Aspose.Tasks.PrimaveraProjectProperties.ShortNameGets project’s short name (Project ID).
The following public enumerations were added:Description
Aspose.Tasks.PrimaveraCriticalActivitiesDefiningMethod.TotalFloatActivities with TotalSlack (Total Float in Primavera) less than or equal to the value of are marked as critical.
Aspose.Tasks.PrimaveraCriticalActivitiesDefiningMethod.LongestPathActivities on the longest path are marked as critical.

Related issue: TASKSNET-11552 - Add an API to allow reading projects’ Uids and Names from Primavera DB.

Starting with the version 25.11, the new class PrimaveraDbReader can be used to retrieve a project’s short information.


string dir = "c:\\";
string fileName = dir + "Primavera.db";
var connectionString = string.Format("Data Source={0}", fileName);

var primaveraDbSettings = new PrimaveraDbSettings(connectionString, 0)
{
    ProviderInvariantName = "System.Data.SQLite"
};

PrimaveraDbReader reader = new PrimaveraDbReader(primaveraDbSettings);

var projectInfos = reader.GetProjectInfos();

foreach (var info in projectInfos)
{
    Console.WriteLine("{0} - '{1}' - '{2}', {3}", info.Uid, info.ShortName, info.Name, info.ExportFlag);
}

var project = reader.LoadProject(projectInfos[0].Uid);
Console.WriteLine("Project ID: " + project.PrimaveraProperties.ShortName); // when full project is loaded into an instance of the Project class, the value of Project ID' is mapped to Project.PrimaveraProperties.ShortName property.
Console.WriteLine("Project Name: " + project.Name);

Existing classes PrimaveraXmlReader and PrimaveraXerReader were modified so that the logic remains consistent across readers of Primavera formats (PrimaveraXmlReader, PrimaveraXerReader, PrimaveraDbReader).