ml-connector
SAP ECCMicrosoft Teams

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.

How SAP ECC works

SAP ECC exposes purchase orders, vendors, invoices, and general ledger accounts through RFC/BAPI function modules and OData services via SAP Gateway. Connectivity requires an on-premises agent running SAP .NET Connector or Java Connector, since RFC calls cannot originate directly from the cloud. Basic HTTP authentication is used for OData access, and BAPI function modules handle transactional writes. SAP ECC has no native webhook registry, so ml-connector polls purchase orders and invoice tables on a schedule you define, or consumes outbound IDoc messages if your SAP Basis team configures WE21/WE20 inbound delivery.

How Microsoft Teams works

Microsoft Teams exposes channels, users, and chat messages through the Microsoft Graph REST API. All calls require OAuth 2.0 client credentials authentication through Microsoft Entra ID. Teams supports webhook change notifications for resource updates, but for finance notifications ml-connector posts structured messages directly to channels via the chatMessage endpoint. Teams does not store financial data like invoices or GL accounts; it is purely a notification and collaboration surface, so messages flow from SAP into Teams only.

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

Connect SAP ECC and Microsoft Teams

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

Get started