12.1Bloom · ANot started

Release an object for downstream consumption

Reading depth

What you'll learn

Open the object's Properties → API State, set it to Released with contract C1, and activate — now it shows up in the Released APIs list for everyone to consume.

  • 1. In ADT, open the object and go to Properties → API State.
  • 2. Set the Release State to 'Released' (Released for ABAP for Cloud Development).
  • 3. Choose the Release Contract — C1 for normal developer-extensibility consumption.

Publishing an object as a released API is the act that turns your code into a contract other components can depend on. Until you do it, the object carries no API State, and any ABAP-Cloud package that consumes it raises a Clean Core violation — the consumer can only reach released (C1) objects.

The release lives on the object itself, edited in the ADT Properties view under API State. You set the Release State to 'Released' (specifically, Released for ABAP for Cloud Development) and choose the Release Contract, which for in-stack developer extensibility is normally C1. The contract is a promise: SAP-style stability guarantees now apply to your signature within that contract.

Releasing is not free. Once an object is C1 you owe downstream consumers signature stability across your own upgrades, so release deliberately — interface classes and CDS views, not every helper. The moment you activate, the object appears in the Released APIs browse list under the system node and its API State is visible to every consumer.

Key points

  • 1. In ADT, open the object and go to Properties → API State.
  • 2. Set the Release State to 'Released' (Released for ABAP for Cloud Development).
  • 3. Choose the Release Contract — C1 for normal developer-extensibility consumption.
  • 4. Activate the object.
  • 5. Confirm it now appears in the Released APIs list and its API State is visible to consumers.

Source notes: clean-core-curriculum §12.1

Ask Claude

Build a prompt from this lesson + your question and open a fresh Claude chat with it pre-filled — handy for adapting a before/after pattern to your own object.