SAP S/4HANA and Tableau integration
SAP S/4HANA holds your procurement and financial truth. Tableau visualizes that data for decision-makers. Connecting the two ensures your dashboards always show the latest purchase orders, supplier invoices, GL accounts, and cost allocations without manual refresh steps. ml-connector polls SAP S/4HANA on a schedule you control and triggers Tableau extract refreshes so stakeholders see the current picture without delay.
What moves between them
The main flow reads from SAP S/4HANA into Tableau. ml-connector polls SAP for purchase orders, supplier invoices, GL line items, and cost center transactions on a schedule aligned with your accounting close calendar. Those records are transformed into a format suitable for Tableau data sources and ml-connector triggers extract refresh jobs in Tableau at the end of each poll cycle. Reference data such as GL accounts and cost centers is synced at the same cadence. Tableau views and workbooks remain read-only; ml-connector feeds data only to the underlying extract sources.
How ml-connector handles it
ml-connector stores the OAuth credentials and Communication Arrangement details from SAP S/4HANA and uses Client Credentials flow to obtain bearer tokens, refreshing them before expiry so polling never stalls. Tenant-specific API URLs are accepted as part of customer configuration since SAP does not publish a shared base address. Because SAP S/4HANA offers no webhooks, ml-connector polls the GL line items, supplier invoices, and purchase orders APIs using LastChangeDateTime filters or delta tokens to detect additions and updates. On the Tableau side, ml-connector authenticates via Personal Access Token exchange, acquires a session token, and triggers extract refreshes via the REST API after data has been loaded into the data source. Tableau Cloud and Tableau Server have different refresh endpoints and schedule models; the connector detects which is in use and calls the appropriate refresh path. Retries on SAP timeouts or Tableau rate limits use exponential backoff. Every sync event is logged in the audit trail so failed refreshes can be replayed without data loss.
A real-world example
A mid-market financial services firm runs SAP S/4HANA for procurement and GL accounting across multiple cost centers and runs Tableau Cloud for executive and finance team dashboards covering spend by category, supplier concentration, GL account balances, and cost allocation trends. Before the integration, the finance operations team manually exported GL line items and purchase requisitions from SAP each week, transformed them in a script, and staged them in Tableau for refresh. With SAP S/4HANA and Tableau connected, those exports happen automatically on a schedule that aligns with the close calendar; the dashboards refresh without manual intervention, and the finance team uses their time to analyze variance instead of moving data.
What you can do
- Automatically poll SAP S/4HANA for purchase orders, supplier invoices, GL line items, and cost center data on a schedule you define.
- Trigger Tableau extract refreshes via REST API each time new SAP data arrives, keeping dashboards current without manual refresh.
- Map SAP GL accounts and cost centers to Tableau data source dimensions so financial reports align with the source system structure.
- Authenticate SAP S/4HANA with OAuth 2.0 Client Credentials and manage token expiry, and Tableau with Personal Access Token exchange.
- Track every sync event, detect failures, and replay missing records so no data loss occurs if a refresh job fails.
Questions
- How does ml-connector handle SAP S/4HANA's lack of webhooks?
- SAP S/4HANA offers no native webhooks for cloud connectors, so ml-connector polls the OData APIs on a schedule aligned with your accounting calendar using LastChangeDateTime filters or delta tokens to detect changes. This pull-based approach works well for finance use cases where data arrives in batches (payroll, close cycles, supplier invoice runs) rather than as continuous streams.
- What happens when SAP tokens expire or Tableau rate-limits the API?
- ml-connector monitors token expiry in SAP S/4HANA and refreshes the bearer token proactively before it expires so polling never stalls. If Tableau returns a rate-limit response (HTTP 429), ml-connector backs off and retries with exponential jitter, ensuring extract refreshes complete even during periods of high API load.
- Can ml-connector write data back into SAP S/4HANA from Tableau?
- No. The flow is read-only from SAP into Tableau. GL Accounts and Cost Centers in SAP are read-only APIs; ml-connector pulls those reference tables to enrich the data sent to Tableau but does not write financial entries or cost allocations back into SAP from Tableau views or calculations.
Related integrations
More SAP S/4HANA integrations
Other systems that connect to Tableau
Connect SAP S/4HANA and Tableau
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started