ml-connector
IFS CloudMicrosoft Power BI

IFS Cloud and Microsoft Power BI integration

IFS Cloud runs your manufacturing, procurement, finance, and asset operations. Microsoft Power BI visualizes and shares those insights. Connecting the two lets your finance, operations, and leadership teams access current purchase orders, supplier invoices, customer orders, GL accounts, and journal entries in Power BI dashboards without manual exports or overnight batch jobs. ml-connector reads from IFS Cloud on a schedule, transforms the records to match your Power BI dataset schema, and pushes them in. Every record is tracked end-to-end so you know what made it to Power BI and what did not.

How IFS Cloud works

IFS Cloud exposes purchase orders, supplier invoices, vendors, customers, sales orders, GL accounts, journal entries, payments, and accounting dimensions through OData v4 REST API endpoints, each tenant-specific at https://<tenant>.ifs.cloud/main/ifsapplications/projection/v1/<ProjectionName>.svc/<EntitySet>. Authentication uses OAuth 2.0 Client Credentials with a 60-minute token lifetime. IFS Cloud supports server-side Event Actions that POST to external endpoints when business events fire, but these require per-customer manual configuration and are not self-registerable via API. The recommended pattern is pull-based polling with OData filters on timestamps or state fields. IFS enforces a 5000-element result set limit per request, a 1000-request-per-minute rate limit, and requires ETag headers (If-Match) for mutations to enforce optimistic concurrency control.

How Microsoft Power BI works

Microsoft Power BI provides REST APIs for managing datasets, reports, dashboards, and workspaces, and for pushing rows into push datasets via POST to https://api.powerbi.com/v1.0/myorg/groups/<group_id>/datasets/<dataset_id>/tables/<table_name>/rows. Authentication uses OAuth 2.0 with a service principal (client credentials), with tokens valid for approximately one hour. Before pushing data, the table schema (column names and data types) must be defined in Power BI. The service principal must be granted Member or Admin permissions on each workspace it accesses, and developer settings must be enabled in the Power BI admin portal. Power BI is read-mostly for analytics - it does not push events or webhooks back to external systems. Push dataset updates are subject to size and latency limits as documented by Microsoft.

What moves between them

Data flows one direction: IFS Cloud into Power BI. ml-connector polls IFS Cloud at intervals you define (e.g., daily at 2 AM), reading purchase orders, supplier invoices, GL accounts, journal entries, and customer master data. Each record is transformed to match the schema of your Power BI push dataset (column names and data types). Transformed rows are POSTed to Power BI in batches. Deleted or archived records in IFS Cloud are tracked so your Power BI dataset stays consistent with the source. Full refreshes can be scheduled weekly or monthly; incremental pushes fill in changes daily or on-demand.

How ml-connector handles it

ml-connector stores both credential sets encrypted (IFS Cloud OAuth client credentials and Power BI service principal credentials) and refreshes the IFS Cloud OAuth bearer token on a 50-minute cycle to stay ahead of the 60-minute expiry. On the IFS Cloud side, it handles the tenant-specific URL, respects the 5000-element page size limit by paginating large result sets, and throttles requests to stay under the 1000-per-minute rate limit with exponential backoff on 429 responses. For mutations (creating GL entries, marking records processed), it reads the record first to capture its ETag, then includes that ETag in the If-Match header on the PATCH or POST to satisfy optimistic concurrency. On the Power BI side, it validates the push dataset schema before pushing rows, posts rows in batches to reduce API calls, and retries on transient failures. Every record pull, transformation, and push is logged with timestamps and status so a replay is possible if a downstream call fails. ml-connector tracks which IFS Cloud records have been synced to prevent duplication.

A real-world example

A mid-sized manufacturing company runs IFS Cloud for procurement, manufacturing, and finance across two plants. The finance director and plant managers want daily dashboards showing open purchase orders by supplier, outstanding supplier invoices, and month-to-date spending by cost center, all pulled from IFS Cloud. Before the integration, they exported data from IFS Cloud to spreadsheets weekly, took hours to consolidate it, and dashboards were always days old. With IFS Cloud connected to Power BI via ml-connector, purchase orders, invoices, and GL accounts sync to Power BI each night. The finance director and plant managers open their Power BI workspace each morning to current dashboards on procurement status and financial health, no export or manual steps required.

What you can do

  • Poll IFS Cloud on a schedule you define and push procurement, financial, and operational records into Power BI push datasets.
  • Handle IFS Cloud OData pagination, rate limits, and ETag concurrency requirements transparently.
  • Authenticate both IFS Cloud (OAuth 2.0 client credentials) and Power BI (OAuth 2.0 service principal) and manage token refresh.
  • Transform IFS Cloud records to match your Power BI dataset schema and validate schema before pushing rows.
  • Track every record synced, log all pulls and pushes, and replay failures without manual re-entry.

Questions

Which records from IFS Cloud can sync to Power BI?
ml-connector can sync purchase orders, supplier invoices, vendors, customers, sales orders, GL accounts, journal entries, payments, and accounting dimensions. Any entity exposed through IFS Cloud's OData v4 API and defined in your Power BI push dataset schema can be included. You choose which entities and which fields to sync based on your analytics needs.
Does Power BI send data back to IFS Cloud?
No. Power BI is an analytics destination, not a source system. Data flows one direction: from IFS Cloud into Power BI. ml-connector reads from IFS Cloud and pushes into Power BI datasets. Power BI does not have a webhook system to send data back, so it is not part of a bidirectional sync.
What happens if the sync fails partway through?
ml-connector logs every record it pulls, transforms, and pushes, along with the timestamp and outcome. If a push to Power BI fails, the record is marked and can be replayed without re-fetching from IFS Cloud. This ensures no data loss and lets you fix the root cause (schema mismatch, service principal permissions, token expiry) and resume without manual re-entry.

Related integrations

Connect IFS Cloud and Microsoft Power BI

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started