C0 Contract Rules for Providers of CDS Behavior Definitions
Generally, a CDS behavior definition that is classified with the
C0 contract must not be deleted after being released as an API but can become deprecated.
BDEF extensions themselves must not be C0 released.
The following sections show the most important rules that a C0 contract imposes on CDS behavior definitions.
CDS behavior definitions can be released under the C0 stability contract for
ABAP for Cloud Development. C0 release for
ABAP for Key Users is not possible within ABAP Development Tools.
The respective BDEF must be enabled for extensibility using the keyword extensible in the
CDS behavior definition header.
BDEF of Type managed or unmanaged
As a prerequisite for C0 release, each RAP BO must at least have one
RAP BO interface that
serves as interface for stable consumption. If this requirement is not met, release is still possible, but a warning message occurs.
A draft query view must be C0 released if the RAP BO entity it belongs to is C0 released.
If the RAP BO has the implementation type unmanaged, the annotation @AbapCatalog.extensibility.allowNewCompositions: true is not allowed in the CDS view layer.
If the RAP BO has the implementation type managed, all RAP BO entities annotated with @AbapCatalog.extensibility.allowNewCompositions: true in the CDS view layer must be marked as extensible.
If the RAP BO has a namespace prefix, such as /PREFIX/, the names
of its elements must not start with a different namespace prefix, nor with Z, nor with Y.
If the name of the RAP BO starts with Z or Y, there is no check.
In all other cases, the names of the elements must not start with Z, or Y, nor a namespace prefix.
RAP BO entities declared as extensible must not be deleted and must remain extensible.
The name of the RAP persistent table of an extensible RAP BO entity must not changed nor be replaced by an
unmanaged save (which would mean that no persistent table is specified).
Note: The reverse case is possible though. An unmanaged save can be replaced by a persistent table.
A draft query view in an extensible entity must not be added, nor replaced, nor deleted.
Extensible determine
actions must not be deleted and must remain extensible. The name of an extensible determine action must not change.
Extensible RAP type
mappings must not be deleted and must remain extensible. If an extensible RAP type mapping uses
corresponding, then this addition corresponding must not be removed.
BDEF of Type projection
The BDEF implementation
type must remain stable and must not change, for example, from projection to interface.