28 apr

ETag (Concurrency Control)


E-invoicing in Germany: How to implement the obligation with SAP Business One

ETag stands for Entity Tag and is an HTTP header that transports a current version identifier of a resource. In REST and OData APIs, it is primarily used for optimistic concurrency control: The clients A resource can only be modified if its ETag still matches the server-side version. This prevents overwrites of parallel changes without the server having to hold server-side locks.

Context

The process in practice: the client calls a resource via GET and receives in the response header a ETag: "123abc". If he changes them, he sends at PATCH or PUT the header If-Match: "123abc" If the current server ETag still matches, the change is executed and a new ETag is returned. If someone else has written in the meantime, the server responds with HTTP 412. Precondition Failed; The client must reload the current state, resolve the conflict, and try again. In the SAP Business One Service Layer, this pattern is relevant when multiple integrations write to the same business partner, item, or open document simultaneously, such as a webshop sync, the ERP front-end, and a migration tool. ETags are automatically generated in OData for entities with configured concurrency properties; on the client-side, a wrapper is recommended that If-Match consistently sets and transfers 412 responses into a reload-and-retry flow.

Demarcation

ETag-based concurrency is optimistic: there is no locking, conflicts are only detected when writing. This distinguishes it from pessimistic locking (e.g. SELECT FOR UPDATE), which in the Database or enforced by a blocking service. ETags are also not a cache-control mechanism in the strictest sense, although they are related to If-None-Match Additionally, support HTTP caching. And they do not replace functional consistency checks: that two write operations follow one another technically cleanly does not mean that the content result is correct – for that, validations and transaction boundaries in the server remain mandatory.


ReAct and RLEF

ReAct and RLEF: How Artificial Intelligence Learns from Real Mistakes — and What Automated Bank Reconciliation in SAP Business One Has to Do with It

This is the fourth instalment in a series on this blog dealing with AI fundamentals in conjunction with SAP Business One...
Service Layer AI as a transactional layer

SAP B1 10.0 FP2608: Service Layer AI as a transactional layer

The SAP Business One Service Layer has previously served predominantly as a passive data provider: applications requested data via OData, each ...
Process Reward Model

Process Reward Models: Why a correct result does not yet prove a correct method

This series continuously examines individual AI basic terms and methods such as the Process Reward Model. The previous episode has ...
Test-Time-Compute-Scaling

Test-Time Compute Scaling: Why a Smaller AI Model Can End Up Winning — and What Supplier Comparison in SAP Business One Has to Do With It

This is a continuation of the series on this blog, which deals with Artificial Intelligence in combination with SAP Business One...
RLHF

RLHF and reward models: AI hype or what the approval process in SAP Business One has to do with it

Key takeaways: The article covers the application of artificial intelligence in the context of SAP Business One and fundamental AI topics. Thanks to ...
AI Webinar

AI – Answers from SAP Business One – without SQL, without IT ticket

Live webinar on 30 July 2026, 14:00–14:30 | Live demo via Microsoft Teams | Duration: 30 minutes „How were the sales...".
Wird geladen …