ABAP Keyword Documentation → ABAP - Release-Specific Changes → Changes in Releases 7.5x → Changes in Release 7.54 → ABAP RESTful Programming Model in Release 7.54
ABAP BDL in Release 7.54
1. Addition in place of the statement late numbering
2. Addition in class ... unique
Other versions:
7.31 | 7.40 | 7.54
Modification 1
Addition in place of the Statement late numbering
The addition in place of the BDL statement late numbering now indicates that a CDS entity uses its own key fields for late numbering. The key fields are written to the special values. These are known temporarily, which means that the derived types for entities do not contain an addition field %PID.
Modification 2
Addition in class ... unique
A behavior definition can now specify one or more classes that allow the behavior implementations of a business object. This is possible in two places:
-
In the header of the business object behavior definition:
implementation unmanaged ... in class ClassNameX unique ...
or -
In the behavior definition of an entity:
define behavior for entity_name ... implementation in class ClassNameY unique { ... }
If the addition implementation in class ... Unique of the statement define behavior is specified, a trigger (such as a create operation) cannot be implemented multiple times in different local handler classes. A behavior for the entity in question can only be implemented in a behavior pool with the specified name ClassNameY. Any other class that attempts this raises an ABAP Compiler error.
Modification 3
External name of an action
An action can now also be given an external name:
action ActionName external ActionWithAVeryLongExternalName
result [0..1] OutputParameter;
The external name can be up to 128 characters long. It will only be exposed in the OData metadata. It is ignored by ABAP. An action cannot, for example, be addressed using the external name in Entity Manipulation Language.
Modification 4
Static Field Control
Within the statement define behavior for CDSEntityName { ... }, fields of the entity CDSEntityName can be specified to which certain access restrictions apply:
-
field(read only) FieldName;
The field FieldName cannot be modified by the operations create and update. -
field(mandatory) FieldName;
The field FieldName must be given a value in create operations. In update operations, it must not be given the null value.