Build Flows

Integration guide

Oracle Primavera P6 and Microsoft Fabric & Power BI integration

One way: P6 schedules land in a Fabric lakehouse and Power BI reads the semantic model. EPPM customers can page the REST API; P6 Professional shops export XER or XML files. Either way, read after each schedule update is published, not mid-edit.

System facts last verified October 2026 against the vendors' documentation (sources below). Confirm details with Oracle and Microsoft before you build.

Primavera P6 and Power BI side by side

API style
Primavera P6REST/JSON and SOAP, both installed with P6 EPPM Web Services. Our P6 MCP server's OpenAPI spec held 585 operations across 101 entities. XER and XML files cover P6 Professional and offline work.
Power BIPower BI REST API, Fabric REST API, and OneLake's ADLS Gen2-compatible file endpoints. Ingestion usually runs in Data Factory pipelines and notebooks.
Authentication
Primavera P6REST: basic authentication, or an OAuth bearer token, which Oracle says applies only to P6 hosted on Oracle Cloud Infrastructure and is enabled by service request (ROPC and JWT user assertion grants). SOAP: username token, SAML token, HTTP cookies (on-premises) or OAuth.
Power BIMicrosoft Entra ID app registration: delegated scopes, a service principal or a managed identity. Fabric APIs need the tenant setting allowing service principals; OneLake accepts only Storage-audience tokens.
Webhooks / events
Primavera P6No HTTP webhooks. On-premises “eventing” publishes XML messages to a JMS queue for business object creates and updates and operations such as Schedule, Level and Publish Project.
Power BINot applicable as a source; not confirmed for outbound events.
Rate limits
Primavera P6Not published. Confirm with vendor.
Power BIRefresh: 8 per day on shared capacity (scheduled and API refreshes combined), 48 scheduled slots on Premium. Fabric REST: 500 calls per minute per identity for platform APIs, 200 for job scheduler APIs. Push datasets: 10,000 rows per POST and 1,000,000 rows per hour per model.
Sandbox
Primavera P6No free developer sandbox found. Use a non-production P6 instance; confirm with vendor.
Power BIYes. A free 60-day Fabric trial capacity, which Microsoft limits per tenant and intends for evaluation.
Exports and files
Primavera P6REST export and import of projects as XML. XER export and import live in P6 Professional (File > Import > Primavera PM (XER)); Oracle notes risk data isn't imported from XER.
Power BISQL analytics endpoint over lakehouse tables, OneLake file access, and Power BI export APIs.
Marketplace / partners
Primavera P6Oracle PartnerNetwork. Not confirmed for P6 specifically.
Power BIMicrosoft AppSource. Not confirmed for Fabric workloads.

Who owns what

  • One way: sources land in the lakehouse; nothing writes back.
  • Match records across systems with a crosswalk that refuses to guess, and gate the refresh on data-quality checks.

What syncs between Primavera P6 and Power BI

The typical shape for this pair. Every row is typical: confirm it against your configuration in discovery.

Primavera P6Power BIEPS and projectsWBS and activitiesRelationshipsBaselinesResources, assignments and UDFsSemantic model refresh
Arrows point from the system that sends to the system that receives. Dashed means it stays put.
ObjectDirectionSystem of record
EPS and projectsPrimavera P6 to Power BIPrimavera P6
Typical frequency: After each schedule update. Notes: Keep P6 project IDs and match them to Procore projects or ERP jobs through a crosswalk.(Typical: confirm against your configuration.)
WBS and activitiesPrimavera P6 to Power BIPrimavera P6
Typical frequency: After each schedule update. Notes: Dates, float and status per activity, the base for milestone and look-ahead pages.(Typical: confirm against your configuration.)
RelationshipsPrimavera P6 to Power BIPrimavera P6
Typical frequency: After each schedule update. Notes: Needed for schedule health checks (missing logic, open ends) alongside reporting.(Typical: confirm against your configuration.)
BaselinesPrimavera P6 to Power BIPrimavera P6
Typical frequency: When a baseline is set. Notes: Store each baseline as its own snapshot so variance compares against the right one.(Typical: confirm against your configuration.)
Resources, assignments and UDFsPrimavera P6 to Power BIPrimavera P6
Typical frequency: After each schedule update. Notes: User-defined fields often carry the cost code or area that joins schedule to cost; agree which ones before you load them.(Typical: confirm against your configuration.)
Semantic model refreshnot syncedPower BI
Typical frequency: Up to 8 a day on shared capacity. Notes: Schedules change at the update cadence, so a daily refresh is usually plenty. Gate it on data-quality checks.(Typical: confirm against your configuration.)

Directions, owners and frequencies are the typical pattern from our integration guides and mapping workbook. Confirm each one against your configuration in discovery.

Is a native connector enough?

There's no native P6 connector in the Microsoft documentation we checked. Most teams either page the P6 EPPM REST API on a schedule or parse XER and XML exports. Compare both routes against your hosting before choosing.

Compare native connectors with a custom build

Common gotchas

  • P6 authorizes per object: without access the API returns 401 or 404, which looks like missing activities in the report. Give the integration user read access to every project in scope.
  • Oracle documents OAuth only for P6 on Oracle Cloud Infrastructure; on-premises EPPM uses basic authentication. Keep that credential in a vault, not in a notebook.
  • XER exports lose things on the way back in (Oracle notes risk data isn't imported), so treat XER as a one-way read for reporting and verify what you parse.
  • Shared (Pro) capacity allows eight Power BI refreshes a day, scheduled and API combined, and OneLake accepts only Storage-audience tokens.

Sources

Frequently asked questions

Can Power BI connect to Primavera P6?

Through a pipeline: page the P6 EPPM REST API, or parse XER and XML exports from P6 Professional, land the data in a Fabric lakehouse, and refresh a Power BI semantic model on top.

Should we use the P6 REST API or XER files?

The REST API if you run P6 EPPM and can provide an integration user; XER or XML exports if you run P6 Professional or can't open API access. XER is fine for a one-way read; verify what you parse.

How often should P6 data refresh in Power BI?

At the schedule update cadence, usually weekly or monthly, plus a daily refresh for anything joined to cost. Shared capacity allows eight refreshes a day.

Next step

Connecting Primavera P6 and Power BI?

Bring one real job and the records you want to move. We'll walk through what syncs, who owns each record, and what to check first.