Universal.Oracle.Primavera.P6
2.0.1
dotnet add package Universal.Oracle.Primavera.P6 --version 2.0.1
NuGet\Install-Package Universal.Oracle.Primavera.P6 -Version 2.0.1
<PackageReference Include="Universal.Oracle.Primavera.P6" Version="2.0.1" />
paket add Universal.Oracle.Primavera.P6 --version 2.0.1
#r "nuget: Universal.Oracle.Primavera.P6, 2.0.1"
// Install Universal.Oracle.Primavera.P6 as a Cake Addin #addin nuget:?package=Universal.Oracle.Primavera.P6&version=2.0.1 // Install Universal.Oracle.Primavera.P6 as a Cake Tool #tool nuget:?package=Universal.Oracle.Primavera.P6&version=2.0.1
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.
Added a non-typed getter for Row and IRow.