SAP ECC and ServiceNow integration
SAP ECC runs procurement and accounting in your data center. ServiceNow runs IT service management and enterprise operations in the cloud. Connecting the two keeps procurement workflows aligned between ERP and service management and moves purchase orders and vendor data from SAP ECC into ServiceNow without manual re-entry. ml-connector manages the on-premises SAP agent connection and the cloud OAuth tokens, and handles the transformation between RFC-based data and REST.
What moves between them
The primary flow moves procurement and master data from SAP ECC into ServiceNow. Purchase orders, vendor master records, and material codes read from SAP ECC via RFC/BAPI are mapped to ServiceNow procurement tables, including proc_po, proc_po_item, and source-to-pay staging tables. General ledger postings created in SAP ECC are read and materialized as records in ServiceNow for finance operations. The sync runs on a schedule configured by the customer; changes in SAP ECC are polled from both RFC_READ_TABLE and OData services and written to ServiceNow via REST.
How ml-connector handles it
ml-connector runs an on-premises agent (SAP .NET Connector or Java Connector) configured with the customer's RFC destination and basic auth credentials, establishing a persistent connection to the SAP ECC system. On the ServiceNow side, ml-connector authenticates using OAuth 2.0 Client Credentials and maintains a token cache, refreshing when a call returns 401. Polling happens on a cadence tied to the customer's procurement and finance calendars: RFC_READ_TABLE queries for changed records are executed at each interval, results are transformed to JSON, and written to ServiceNow's REST API. Vendor master records are mapped to the ServiceNow supplier table (cmn_company), purchase orders to proc_po, and GL postings to itfm_gl_accounts. ml-connector detects duplicates using SAP ECC's REF_DOC_NO field and retries failed writes to ServiceNow with exponential backoff. The RFC agent connection is monitored for stale connections and re-established if communication fails.
A real-world example
A mid-sized manufacturing company runs SAP ECC on-premises for procurement and finance and uses ServiceNow for IT operations and change management. The procurement team creates purchase orders in SAP ECC daily but must also log them in ServiceNow's Source-to-Pay operations module for spend visibility and vendor lifecycle tracking. Before the integration, SAP purchase order data was exported weekly and manually re-entered into ServiceNow staging tables, creating lag and duplicate entry errors. When vendors were created or updated in SAP ECC, those changes had to be coordinated separately in ServiceNow. With SAP ECC and ServiceNow connected, each new or changed purchase order flows automatically into ServiceNow procurement within minutes of creation, vendor master changes propagate without manual sync, and the procurement team no longer re-keys orders. Month-end spend reports and vendor reconciliation pull from synchronized data, eliminating stale data issues.
What you can do
- Route purchase orders from SAP ECC to ServiceNow proc_po and proc_po_item tables on a scheduled interval, mapped to cost centers and supplier records.
- Sync vendor master records from SAP ECC to ServiceNow supplier tables, preserving vendor classification, payment terms, and address data.
- Post general ledger documents from SAP ECC into ServiceNow financial operations for spend analysis and audit trail.
- Manage the on-premises RFC agent connection, detect stale connections, and re-establish communication if the link fails.
- Transform RFC-based SAP ECC data to REST JSON for ServiceNow, handle OAuth token refresh on 401 responses, and detect duplicates using SAP ECC document keys.
Questions
- Does ml-connector run the SAP RFC agent, or does the customer install it separately?
- The customer installs and configures the SAP .NET Connector or Java Connector on-premises, following SAP's standard setup procedures. ml-connector connects through that agent and does not host or manage the agent itself. The customer provides the RFC destination hostname, port, and credentials, and ml-connector establishes and monitors the connection.
- How does the integration handle the on-premises RFC agent if the network changes or the agent restarts?
- ml-connector monitors the RFC connection for stale or broken pipes. If communication fails, it backs off and retries with exponential jitter. If the connection is lost for an extended period, the sync job reports the failure and alerts the customer via the audit trail so the on-premises team can investigate the agent health.
- Which SAP ECC entities flow into ServiceNow, and can they be customized?
- By default, purchase orders (BAPI_PO_GETDETAIL1), vendor masters (BAPI_VENDOR_GETLIST), and GL accounts (BAPI_GL_ACC_GETLIST) flow into their ServiceNow counterparts. Mapping is documented-convention-based: SAP field names are matched to ServiceNow table columns by semantic meaning. Per-customer customization is supported by extending the mapper without schema changes.
Related integrations
More SAP ECC integrations
Other systems that connect to ServiceNow
Connect SAP ECC and ServiceNow
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started