SAP Business One and Databricks integration
SAP Business One runs back-office operations for small-to-midsize businesses: accounting, purchasing, inventory, and sales. Databricks is your cloud data platform for analytics and machine learning. Connecting the two lets you land invoices, purchase orders, journal entries, and inventory movements into Databricks tables automatically, so you can analyze financial trends, reconcile GL accounts, and forecast cash flow without re-exporting files or building custom API scripts.
What moves between them
Data flows one direction: from SAP Business One into Databricks. ml-connector polls SAP Business One on a schedule you define (typically daily for batch loads or hourly for near-real-time), reads invoices, purchase orders, payments, and journal entries, transforms them into a normalized schema, and writes them into Databricks tables. Each record carries its SAP Business One document number and update timestamp so duplicate rows can be detected if a poll fails and retries. The schedule is independent of SAP Business One webhooks; even if webhooks are enabled, ml-connector can continue polling as a secondary safeguard to ensure no records are missed.
How ml-connector handles it
ml-connector maintains a session token to SAP Business One's Service Layer by re-using the 30-minute session and logging in again if it times out, avoiding the cold-start delay of a new login on each request. On the Databricks side, it refreshes the OAuth bearer token before it expires (3600 seconds) and uses SQL INSERT INTO to write the transformed records. Because SAP Business One has no published idempotency keys, ml-connector deduplicates by checking the source document number and creation date before inserting. Since SAP Business One OData does not support JOIN operations, ml-connector issues separate calls to fetch related dimensions (profit centers, cost centers) and joins them in application logic before writing to Databricks. Databricks writes are staged into temporary Delta tables first, then merged into the target table to handle re-runs gracefully. On-premise instances often use self-signed TLS certificates, so ml-connector validates the certificate chain or skips verification if you provide the self-signed root CA. Retries use exponential backoff with jitter to respect SAP Business One rate limits and Databricks token refresh windows.
A real-world example
A mid-size manufacturing company runs SAP Business One on-premise for all purchasing, inventory, and finance operations. The business intelligence team wants to analyze purchase order velocity, invoice aging, and cash flow trends in their data warehouse, but currently exports CSV files from SAP Business One every week and loads them manually into Databricks with a Python notebook. With SAP Business One and Databricks connected, new invoices, purchase orders, and payments flow into Databricks automatically every night, and the BI team runs their analysis queries on fresh data without manual exports. The finance team also builds a reconciliation dashboard that compares GL account balances in SAP Business One to the aggregates in Databricks, catching differences in real time.
What you can do
- Move invoices, purchase orders, payments, and journal entries from SAP Business One into Databricks tables on a schedule you control.
- Authenticate to SAP Business One via session token (with automatic refresh on timeout) and to Databricks via OAuth 2.0 client credentials.
- Deduplicate records by source document number and creation date, and handle re-runs by staging into temporary tables before merging into the target.
- Fetch related dimensions such as profit centers and cost centers from SAP Business One and include them in the Databricks records for analysis.
- Support both polling on a schedule and optional webhooks for Create and Update events if your SAP Business One instance has Webhook Messenger Service enabled.
Questions
- Does ml-connector work with on-premise SAP Business One instances?
- Yes. ml-connector connects to the Service Layer instance at the customer-provided base URL and port (default 50000 or 50001). You must expose the Service Layer port to the internet or allow ml-connector network access. On-premise instances often use self-signed TLS certificates, which ml-connector handles by validating the certificate chain or accepting the self-signed root CA if you provide it.
- What records can ml-connector move from SAP Business One to Databricks?
- ml-connector can read invoices, purchase invoices, purchase orders, incoming and outgoing payments, journal entries, chart of accounts, dimensions, profit centers, and items from SAP Business One. It transforms them into a normalized schema and writes them into Delta Lake tables in Databricks. Databricks is a data platform with no native finance objects, so records are stored as rows in tables for analysis and reporting.
- How does ml-connector handle SAP Business One's 30-minute session timeout and Databricks token expiry?
- ml-connector reuses the SAP Business One session token and logs in again if it times out, avoiding a cold-start delay on every request. For Databricks, it refreshes the OAuth bearer token before the 3600-second expiry window and retries any request that returns a 401 Unauthorized. Both platforms are monitored in the audit trail so you can see exactly when a session refresh or token refresh occurred.
Related integrations
More SAP Business One integrations
Other systems that connect to Databricks
Connect SAP Business One and Databricks
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started