Skip to content

SAP S/4HANA integration for the shop floor

ModernMES books finished work in SAP S/4HANA as a material document with movement type 521 (unplanned goods receipt from production). Scrap is booked with movement type 551. Products and customers are pulled from S/4HANA. The connection uses SAP's standard OData APIs, so nothing is installed inside SAP and ModernMES works as the MES next to your ERP.

Last updated: 22 October 2026

What is created in S/4HANA

In ModernMESIn SAP S/4HANA
A job is finished with a good quantityMaterial document, movement type 521 (unplanned receipt from production), into the plant and storage location you choose
Scrap is reported ("Send scrap" on)Material document, movement type 551 (scrapping), optionally with a cost center

Both movement types can be changed in the connection settings if your company posts production differently. The header text carries "MES" and the work order number. The reference document field carries the record's ModernMES reference, so every document in S/4HANA can be traced back to the shop floor record it came from.

The documents are not posted against a production order. ModernMES runs jobs on its own projects and does not hold the S/4HANA production order number. By default no unit is sent and SAP uses the material's base unit. Turn on "Send unit" to send the ModernMES unit instead.

What comes from S/4HANA

  • Products not flagged for deletion, with their product number, description and base unit. They are created as parts in ModernMES.
  • Customers, with their customer number and name.

Records are pulled with a button in the settings screen, and nothing is ever deleted. If an SAP product number differs from the ModernMES part code, you map the two per part.

Requirements

  • On S/4HANA Cloud you need a communication user and three communication arrangements. These are SAP_COM_0108 for material documents, SAP_COM_0009 for products and SAP_COM_0008 for business partners.
  • On S/4HANA on-premise the same OData services must be activated, and we need the SAP client number.
  • The plant and storage location to post into, and optionally a cost center for scrap.

The cloud version of ModernMES deliberately refuses private network addresses. S/4HANA Cloud connects directly. An on-premise S/4HANA has to be reachable over HTTPS, ideally restricted to ModernMES's address. A self-signed certificate can be accepted per connection. If you would rather not expose it, ModernMES can be installed on your own server and reach SAP over your internal network.

Setting it up

  1. We set up the connection with you. "Test connection" calls the material document API and checks that it can get the token SAP requires for writing.
  2. The connector is built on SAP's published API definitions. Before going live we post trial documents in your test or quality system and check them with your SAP consultant.
  3. You choose when to send. The default is when the part's last operation finishes. You can also send after every operation, or only when someone presses send.

Documents are posted in the background, so operators never wait for SAP. If S/4HANA is unreachable, ModernMES tries 8 times, and the wait between attempts grows from 1 minute to 12 hours. The transfer log shows each record's material document number or error.

What it does not do

  • It does not post confirmations against production orders or bring production orders into ModernMES.
  • It does not backflush components from a bill of materials.
  • It does not read S/4HANA stock levels back into ModernMES.

Frequently asked questions

Is ModernMES an SAP add-on?

No. Nothing is installed in SAP. ModernMES is a separate MES that talks to S/4HANA through SAP's standard OData APIs. On the ModernMES side the connection comes with the ERP integration add-on. It is included in Enterprise and can be added to the other plans, see pricing.

Does it work with SAP Business One too?

Yes, through a separate connection to the Business One Service Layer. See SAP Business One integration.

We use different movement types. Is that a problem?

No. The receipt and scrap movement types are settings on the connection. 521 and 551 are only the defaults.

Does it collect data from the machines?

No. Production data comes from operators starting, pausing and finishing jobs on the terminal. ModernMES then books the result in SAP.