The provider rules for objects with the C0
contract ensure that released objects are changed only in a very restricted way and help to avoid errors
and interruptions after an SAP upgrade. Nevertheless, the rules do not prescribe full downward compatibility and leave some room for necessary enhancements to
released APIs. Therefore,
users of released APIs still have to consider the allowed compatible changes and access the APIs in such a way that the following errors and interruptions are avoided:
Problems during an upgrade.
Syntax errors after an upgrade.
Runtime errors after an upgrade.
Wrong behavior after an upgrade.
The following sections list allowed extensions to released APIs that must be considered when creating an extension.
The alias name for elements and associations must start with the correct
namespace prefix. For
customers and partners, this means that either ZZ or YY
must be used as prefix. For associations, it is strongly recommended that the alias name starts with an underscore (_) followed by the correct namespace prefix.
All elements and associations defined in the extension must have the element suffix that is defined in the released API by means of the annotation @AbapCatalog.extensibility.elementSuffix.
To define an additional field for a C0 released API that is selected from another data source, the field must either belong to the same software component, or be C1 released.
To define additional fields for a released API, in a scenario where these additional fields are
selected from another extension, both extensions must be assigned to the same software component or the extended entity must be C1 released.
Associations that are released with a stable alias name by the extended entity, using the annotation AbapCatalog.extensibility.dataSources, must not be exposed in the element list.
To define a new association in an extension, the association target must be C1 released or created in the same software component.
Newly defined, local associations can be exposed in the element list. The name of a newly defined, local association must comply with the naming rules described in section Naming.
Rules for Path Expressions:
In an extension to a released API, exposed associations and associations used within path expressions can have a target
cardinality of 0 or 1. A target cardinality greater than 1 is not allowed.
Path traversing with the exact length of 1 is allowed for released data sources with stable alias names.
Path traversing with the exact length of 1 is not allowed for locally defined associations.
Path traversing with a length greater than 1 is only allowed in the following cases:
The extended object must be a CDS projection view.