ml-connector
SAP ECCOrderful

SAP ECC and Orderful integration

SAP ECC runs your supply chain and procurement. Orderful routes EDI documents to suppliers across AS2, SFTP, and other networks. Connecting the two means purchase orders issued in SAP ECC reach suppliers as valid EDI 850 messages without manual export and re-entry, and supplier acknowledgments come back into SAP ECC automatically. ml-connector handles the RFC polling and OData transport from the on-premises ERP, the EDI 850 translation, and the REST delivery through Orderful's cloud platform.

How SAP ECC works

SAP ECC exposes vendors, purchase orders, materials, GL accounts, and cost centers through BAPI function modules (BAPI_VENDOR_GETLIST, BAPI_PO_CREATE1, BAPI_PO_GETDETAIL1) and OData v2 REST services via SAP Gateway at http://<host>:<port>/sap/opu/odata/<namespace>/<service>/. It authenticates with HTTP Basic Auth (username and password) for OData and BAPI via the SAP .NET Connector or Java Connector running on-premises. SAP ECC has no native webhook system; data is read by polling RFC_READ_TABLE on a schedule or on demand, and outbound IDoc pushes require customer configuration of WE21/WE20 in SAP Basis. Write operations like BAPI_PO_CREATE1 require an explicit BAPI_TRANSACTION_COMMIT call to commit the document.

How Orderful works

Orderful exposes purchase orders, acknowledgments, invoices, and shipment notices through versioned REST endpoints at https://api.orderful.com or https://api-eu.orderful.com. It authenticates with a static API Key passed in the orderful-api-key header (no OAuth, no token refresh). Orderful can push incoming EDI documents to a public HTTP endpoint via webhooks, or you can poll GET /v3/polling-buckets/{bucketId} every 5 to 10 minutes. The platform translates EDI messages (X12 850, 855, 856) to and from JSON, validates them against EDI rules, and routes them to trading partners via AS2, SFTP, VAN, or HTTP based on sender and receiver ISA identifiers.

What moves between them

The main flow is SAP ECC into Orderful. ml-connector reads purchase orders and vendor master data from SAP ECC via RFC polling or OData on a schedule aligned with your procurement cycle. Each purchase order is translated to an EDI 850 message with line items, requested ship dates, and quantity, then posted to Orderful with the correct sender.isaId (your company) and receiver.isaId (the supplier). Orderful validates and routes the 850 to the supplier via their preferred EDI network. Return data flows from Orderful into SAP ECC: EDI 855 purchase order acknowledgments are mapped back to SAP PO status updates via BAPI_PO_CHANGE, and vendor master changes (new suppliers, address updates) are aligned in both directions.

How ml-connector handles it

ml-connector runs a local agent (SAP .NET Connector or Java Connector) on your network to read SAP ECC data via RFC_READ_TABLE and BAPI calls. On first retrieval it caches the list of active purchase orders and their details. For each new or modified PO, it builds an EDI 850 message (segments UNB/UNH/BGM/DTM/NAD/LIN/QTY/DTM/MOA) with fields mapped from the SAP PO header and line items. It then sends a POST to Orderful with the translated JSON document, API Key authentication in the header, and ISA identifiers from a mapping table (SAP vendor number to Orderful receiver.isaId). If Orderful returns 429 (rate limit), ml-connector backs off and retries. Inbound acknowledgments are polled from Orderful via GET /v3/polling-buckets or received via webhook, parsed back from EDI 855 to JSON, and posted into SAP via BAPI_PO_CHANGE to update status and receipt quantities. The SAP .NET Connector is the authentication bridge for RFC calls, running with configured logon parameters (client, user, password, host, instance) stored encrypted. Every document movement is audited with timestamps, direction, sender/receiver ISA IDs, and any translation errors.

A real-world example

A mid-sized manufacturing company runs SAP ECC for procurement and uses Orderful to manage EDI delivery to 40+ suppliers across different networks. Before the integration, the procurement team exported purchase orders from SAP ECC every week and manually keyed them into Orderful, matching supplier names to ISA IDs and waiting for EDI routing. Supplier acknowledgments came back as EDI 855 files that had to be downloaded from Orderful and manually cross-referenced in SAP to update order status. With SAP ECC and Orderful connected, new purchase orders flow to Orderful and on to suppliers automatically within 10 minutes, ISA identifiers are matched by supplier number, and acknowledgments update SAP PO status without manual intervention. The procurement team now spends time on exception handling instead of file shuffling.

What you can do

  • Translate purchase orders from SAP ECC into EDI 850 messages and route them to Orderful for delivery to suppliers via AS2, SFTP, or VAN.
  • Map SAP vendor masters to Orderful sender and receiver ISA identifiers so EDI messages route to the correct trading partner.
  • Parse incoming EDI 855 purchase order acknowledgments from Orderful and update SAP ECC purchase order status, quantities, and dates via BAPI_PO_CHANGE.
  • Authenticate SAP ECC via the on-premises SAP .NET Connector or Java Connector and Orderful via static API Key, with encrypted credential storage and audit logging.
  • Poll SAP ECC purchase orders and Orderful acknowledgments on a schedule, with exponential backoff on rate limits and a full replay capability if downstream updates fail.

Questions

Does ml-connector work with on-premises SAP ECC or only S/4HANA Cloud?
ml-connector works with on-premises SAP ECC via the SAP .NET Connector or Java Connector running on your network. It connects to SAP ECC via RFC/BAPI or OData v2 REST through SAP Gateway. S/4HANA Cloud is supported via OData v4 REST APIs. Both require SAP Basis configuration to activate OData services in transaction SICF if using the REST path instead of RFC.
What happens if an EDI 850 message fails to translate or Orderful rejects it?
ml-connector validates each purchase order against the EDI 850 schema before posting to Orderful. If a required field is missing (like requested ship date or line quantity), translation halts with an audit log entry showing the error and the PO number. If Orderful returns 400 (bad request), the message is logged and not retried; if Orderful returns 429 (rate limit), ml-connector backs off exponentially and retries up to 3 times. All failures are surfaced in the audit log for manual review.
How do supplier ISA identifiers stay in sync between SAP ECC and Orderful?
ml-connector maintains a mapping table that links each SAP vendor master (LFA1 table) to the corresponding Orderful receiver.isaId. This table is seeded from a configuration file and can be updated manually when new suppliers are added or existing ISA IDs change. During each PO translation, the SAP vendor number is looked up in this table to find the receiver.isaId for the EDI 850 message. If a vendor is not found in the mapping, the PO is skipped and logged as an error.

Related integrations

Connect SAP ECC and Orderful

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

Get started