SAP ECC and Microsoft Teams integration
SAP ECC holds your financial data in an on-premises or near-premises system. Microsoft Teams is where your teams collaborate and approve work. Connecting SAP ECC to Teams keeps finance and operations teams informed of invoices, purchase orders, and expense exceptions as they happen. New vendor invoices awaiting approval, PO changes, and blocked transactions surface in Teams channels in real time, letting teams respond faster and reducing email backlogs.
What moves between them
Data flows one direction: from SAP ECC into Microsoft Teams. Invoice and purchase order records are read from SAP via RFC or OData polling, filtered by status (awaiting approval, overdue, exceptions), and formatted as Teams channel messages with key details and action URLs back to SAP. Messages may include vendor name, invoice amount, PO number, cost center, and approval deadline. No data is written back to SAP from Teams; Teams acts as a notification sink and human approval surface only.
How ml-connector handles it
ml-connector stores the SAP RFC connection parameters (host, instance, username, password) and Teams OAuth credentials encrypted, and authenticates to each system on every sync run. For SAP, it uses the on-premises agent to execute RFC_READ_TABLE or BAPI function modules to fetch invoice and purchase order records. For Teams, it obtains a bearer token via the OAuth 2.0 client credentials flow and posts messages to the target channel via the chatMessage endpoint. Because SAP ECC has no webhook registry, ml-connector polls on a fixed schedule (e.g., every 4 hours) rather than reacting to a push; polling frequency is configurable per customer. SAP BAPI write calls require explicit BAPI_TRANSACTION_COMMIT to commit changes, and RFC calls are subject to a typical safe throughput of 10-50 concurrent calls before the system raises exceptions; ml-connector respects this by serializing RFC calls and backing off on SYSTEM_FAILURE. Teams messages are posted to a single channel per flow; if you need routing to multiple channels, define separate flows. All records are logged with a full audit trail, including SAP query results, message formatting, and Teams delivery status.
A real-world example
A mid-sized industrial goods company runs SAP ECC for procurement and accounting, with finance, procurement, and operations teams using Microsoft Teams for daily communication. Before the integration, purchase orders over a threshold and invoices awaiting three-way match approval were managed via email, leading to delays and missed approvals during vacations. With SAP ECC connected to Teams, new invoices and PO changes surface in the approvals channel automatically. Finance can see vendor name, amount, PO line reference, and cost center in the Teams message, and click through to SAP for full details. Approvals happen faster because the team is already in Teams and sees the notification in context, rather than having to leave Teams to check email.
What you can do
- Post SAP purchase orders awaiting approval to a Teams channel as structured messages with vendor, amount, cost center, and delivery date.
- Send invoice notifications to Teams when invoices arrive in SAP awaiting three-way match or approval, with linked details and approval deadline.
- Route exception alerts to Teams when SAP detects blocked transactions, overdue POs, or variance exceptions, with full transaction context.
- Authenticate SAP ECC via RFC using an on-premises agent and Teams via OAuth 2.0 client credentials, with encrypted credential storage.
- Poll SAP on a configurable schedule to catch new records, with full audit trail and manual replay capability if a Teams post fails.
Questions
- Does ml-connector need direct internet access from the SAP ECC system?
- No. ml-connector communicates with SAP ECC through an on-premises agent (SAP .NET Connector or Java Connector) that you run on your network. The agent handles all RFC calls to SAP, and ml-connector talks to the agent over HTTP. Only the agent itself needs network access to SAP; ml-connector in the cloud connects to the agent.
- Can SAP ECC data be written back to Teams, or is it one-way messaging only?
- One-way only. SAP ECC data is read and formatted into Teams messages that are posted to channels. Teams does not store financial data like invoices or purchase orders, so there is nothing to write back. If an approval happens in Teams, a human takes action in SAP directly; ml-connector does not automate the approval write-back.
- How often does ml-connector check SAP for new invoices and purchase orders?
- On a schedule you define, such as every 4 hours or every business day at 6 AM. Because SAP ECC has no native webhook system, ml-connector polls the SAP tables on that interval. The polling interval is configurable per flow, so you can tune it to match your invoice arrival pattern or business process.
Related integrations
More SAP ECC integrations
Other systems that connect to Microsoft Teams
Connect SAP ECC and Microsoft Teams
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started