IFS Cloud and Databricks integration
IFS Cloud runs manufacturing, asset management, supply chain, and finance for mid-market enterprises. Databricks provides the cloud data platform where finance teams run analytics, forecasts, and compliance reporting on transaction data. Connecting the two brings your entire general ledger, vendor master, and transaction history into Databricks on a schedule, where it can be transformed, modeled, and queried alongside your other data sources without manual export and re-import.
What moves between them
IFS Cloud posting proposals (supplier invoices), purchase orders, GL accounts, and vouchers flow into Databricks tables on a schedule you define. ml-connector reads filtered OData feeds from IFS (using modified-date filters to fetch only new or changed records since the last poll), stages them in Databricks tables, and optionally triggers a Databricks job to transform and consolidate them into a finance data model. The flow is unidirectional ERP to warehouse; Databricks is read-mostly for analytics.
How ml-connector handles it
ml-connector stores both OAuth2 credentials encrypted and handles tenant-specific IFS URLs per customer. For each poll cycle, it queries IFS OData endpoints with filters on modification timestamps to capture only new or changed records, respecting the 5000-element array limit by splitting large $expand queries into separate calls. Every IFS PATCH operation reads the record first to capture the ETag, then mutates with that ETag in the If-Match header to satisfy IFS's optimistic concurrency. Bearer tokens on both sides refresh automatically when nearing expiry. ml-connector tracks which records have been synced (preventing duplicate inserts on retry) and provides a full audit trail. If a Databricks job fails to consume the staged data, the sync record is marked for replay on the next poll, and the finance team can review the exact payload in the audit log.
A real-world example
A mid-market manufacturing company runs IFS Cloud for production planning, procurement, and general ledger, and uses Databricks as its enterprise data platform for finance analytics and statutory reporting. Previously, the accounting team exported GL transactions from IFS monthly by hand, loaded them into a SQL warehouse, and spent several days reconciling and re-mapping cost centers. With IFS Cloud and Databricks connected, every GL voucher, supplier invoice, and purchase order flows into a Databricks table automatically on a daily schedule. The finance team can now query the latest data immediately, build month-end reporting models that reference the live ledger, and verify reconciliation without waiting for manual export cycles.
What you can do
- Sync supplier invoices, purchase orders, GL accounts, and journal entries from IFS Cloud into Databricks tables on a schedule you control.
- Respect IFS's OData constraints: ETag concurrency headers, 5000-element array limits, tenant-specific URLs, and OAuth2 token refresh.
- Prevent duplicate records by deduplicating on InvoiceNo, PurchaseOrderNo, or VoucherNo before inserting, and tracking sync state in Databricks.
- Authenticate IFS Cloud with per-tenant OAuth2 client credentials and Databricks with service principal tokens, both stored encrypted.
- Replay failed syncs from the audit trail if a downstream Databricks transformation job fails, so no records are silently dropped.
Questions
- What kind of IFS Cloud records move to Databricks?
- Supplier invoices (PostingProposalHeadSet), purchase orders (PurchaseOrderSet), GL accounts (AccountSet), journal entries or vouchers (VoucherSet), vendors (SupplierSet), and accounting dimensions (CodePartValueSet) flow into Databricks tables. ml-connector polls IFS OData endpoints on your schedule using modification-date filters, so only new or changed records are fetched on each cycle.
- How does ml-connector handle IFS's ETag concurrency and 5000-element array limits?
- ml-connector respects IFS's optimistic concurrency model by reading each record first, capturing the ETag header, and including that ETag in the If-Match header for any mutation. For large OData queries with $expand, ml-connector splits them to stay under the 5000-element limit per request, so expanded collections like line items do not cause 500 errors or partial responses.
- Is data synced in real time or on a schedule?
- IFS Cloud has no webhook subscription API (Event Actions require manual per-customer setup and cannot be API-driven), so ml-connector polls IFS OData on a schedule you define, such as daily or every 4 hours. Databricks is write-via-job, so ml-connector stages the IFS data in Databricks tables and optionally triggers a transformation job to consolidate it into your finance schema.
Related integrations
More IFS Cloud integrations
Other systems that connect to Databricks
Connect IFS Cloud and Databricks
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started