Universal.Oracle.Primavera.P6
2.0.0
See the version list below for details.
dotnet add package Universal.Oracle.Primavera.P6 --version 2.0.0
NuGet\Install-Package Universal.Oracle.Primavera.P6 -Version 2.0.0
<PackageReference Include="Universal.Oracle.Primavera.P6" Version="2.0.0" />
paket add Universal.Oracle.Primavera.P6 --version 2.0.0
#r "nuget: Universal.Oracle.Primavera.P6, 2.0.0"
// Install Universal.Oracle.Primavera.P6 as a Cake Addin #addin nuget:?package=Universal.Oracle.Primavera.P6&version=2.0.0 // Install Universal.Oracle.Primavera.P6 as a Cake Tool #tool nuget:?package=Universal.Oracle.Primavera.P6&version=2.0.0
Universal.Oracle.Primavera.P6
A comprehensive library for interacting with Oracle Primavera P6 data structures, supporting versions 8 through 19. This package provides strongly-typed models and utilities for efficient handling of P6 project management data.
Features
- Support for Primavera P6 versions 8 to 19
- Strongly-typed models for all P6 data structures
- Efficient XER file parsing
- Extensible design for custom data handling
- Serialization support for interoperability with other tools and languages
Quickstart
XerFileParser
Utility for parsing XER files exported from Primavera P6.
var parser = new XerFileParser();
using (FileStream fs = new FileStream("project_data.xer", FileMode.Open, FileAccess.Read))
{
XerFile xerFile = parser.Parse(fs);
Console.WriteLine($"Project Name: {xerFile.ProjectName}");
Console.WriteLine($"P6 Version: {xerFile.Version}");
}
Advanced Usage
Custom Table Handling
Extend the library's functionality by creating custom table handlers:
public class CustomResourceTable : Table<IResource>
{
public IEnumerable<IResource> GetCriticalResources()
{
return Rows.Where(r => r.IsCritical);
}
}
// Usage
var customResourceTable = new CustomResourceTable
{
Name = "RSRC",
Rows = xerFile.GetTable<IResource>().Rows
};
var criticalResources = customResourceTable.GetCriticalResources();
Version-Specific Logic
Implement version-specific behavior using the XerFile's Version property:
if (xerFile.Version >= new Version("15.0"))
{
// Logic for P6 version 15 and above
}
else
{
// Logic for earlier versions
}
Data Models
The library includes strongly-typed models for all P6 data structures, including:
- ProjectWorkBreakdownStructure
- ResourceCategoryType
- ResourceCategoryValue
- ResourceResourceCategory
- WorkBreakdownStructureMemo
- Task
- Resource
- ... and many more
Each model is version-aware and implements the appropriate interface (e.g., IProjectWorkBreakdownStructure
) for consistent access across versions. Due to version-specific differences, these interfaces represent the lowest-common denominator.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net6.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Update to support different model of access with strongly-typed classes generated for each version of P6 and interfaces for simplified access across versions.
Updated to require .NET 6.0 and above.