Ansicht
Dokumentation

ABENC0_PROVIDER_RULES_BDEF - C0 PROVIDER RULES BDEF

ABENC0_PROVIDER_RULES_BDEF - C0 PROVIDER RULES BDEF

PERFORM Short Reference   BAL Application Log Documentation  
This documentation is copyright by SAP AG.
SAP E-Book

C0 Contract Rules for Providers of CDS Behavior Definitions

Generally, a repository object 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 released.

The following sections show the most important rules that a C0 contract imposes on different kinds of repository objects.

Prerequisites for C0 Release

General Rules

  • CDS behavior definitions can be released under the C0 stability contract for ABAP in Cloud Development. C0 release for use in Key User Apps is not possible.
  • The behavior definition to be released must not have any syntax errors.
  • Strict mode 2 must be used.
  • The respective BDEF must be enabled for extensibility using the keyword extensible in the CDS behavior definition header.

BDEF of Type managed or unmanaged

  • The C0 contract requires at least one C0 released interface for each RAP BO of type managed or unmanaged. This is indicated by a syntax check warning. Release is still possible.
  • If the RAP BO is draft-enabled, a draft query view is mandatory for each extensible RAP BO entity.
  • A draft query view must be C0 released if the RAP BO entity it belongs to is C0 released.
  • If the RAP BO is unmanaged, the annotation @AbapCatalog.extensibility.allowNewCompositions: true is not allowed in the CDS view layer.
  • If the RAP BO is managed, all RAP BO entities annotated with @AbapCatalog.extensibility.allowNewCompositions: true in the CDS view layer must be marked as extensible.

BDEF of Type projection

  • If a projection has already been released for C1, then C0 release is not possible.
  • Projections with use draft as dependent cannot be C0 released.

BDEF of Type interface

  • The base BO must released for C0 before the interface can be released.
  • The interface must first be released for C1.
  • If the base BO is draft-enabled, use draft is a prerequisite for C0 release.

Naming Rules

  • ...

Stability Rules After Release

General Rules for All Implementation Types

  • RAP draft handling must not be added or removed.
  • RAP BO entities and components that are explicitly maked as extensible must not be deleted or renamed and they must remain extensible.

BDEF of Type managed or unmanaged

  • The implementation type (managed or unmanaged) must not change.
  • The property with draft must not be added or removed.
  • The extensibility enabling settings must not be removed. This concerns the following properties:
  • extensible with determinations on save

  • extensible with determinations on modify

  • extensible with validations on save

  • extensible with additional save

  • A RAP full authorization context must not be removed (even if it is empty).
  • RAP BO entities declared as extensible must not be deleted and must remain extensible.
  • The name of the 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).
An unmanaged save can be replaced by a persistent table.
  • ?? At an extensible entity, a draft query view must not be added or replaced or deleted.?? The draft query view must be C0 released if the CDS View is C0 released,which must be checked by CDS because the BDEF need not be C0 released.??
  • 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 implementation type must remain stable and must not change, for example from projection to interface.
  • use draft must not be added or removed.
  • The projection must remain extensible.
  • The name of the base BO must not change.
  • A RAP full authorization context must not be removed (even if it is empty).
  • RAP BO entities declared as extensible must not be deleted and must remain extensible.
  • Alias names of extensible entities must not be changed or deleted. New alias names can be added.
  • Extensible RAP type mappings must not be deleted and must remain extensible.

BDEF of Type interface

  • The name of the base BO must not change.
  • use draft must not be added or removed.
  • Alias names must not change.
  • All associations exposed in an interface, including cross-BO associations and ancestor associations, must remain stable. They must not be deleted or disabled.

Example Topics

Example for a C0 released CDS behavior definition which is extended from a restricted ABAP language version

Example for a C0 released CDS behavior definition view which is extended from a restricted ABAP language version






BAL Application Log Documentation   ABAP Short Reference  
This documentation is copyright by SAP AG.

Length: 9374 Date: 20240512 Time: 122527     sap01-206 ( 65 ms )