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,
the 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 rules for extensions to released APIs that must be considered when creating an extension.
All extension fields must be typed with a
DDIC data element or with a built-in data type from the ABAP Dictionary using the syntax abap.type[(n)|(n,m)]. Typing with other structures or
DDIC table types is not possible.
When using a C0 released structure as include structure of another dictionary object, the value of the annotation @AbapCatalog.enhancement.category
of the enclosing object must be greater than or equal to the enhancement category of the included structure.
#EXTENSIBLE_ANY is greater than #EXTENSIBLE_CHARACTER_NUMERIC.
If a C0 released structure is included in any other DDIC object as
include structure (syntax statement
include), this inclusion must not be removed. The inclusion of a C0 released structure must remain stable. Otherwise, an ATC error occurs.
Restrictions
An extension must not define any element as a key field.