ABAP for Cloud Development
AS ABAP Release 914, ©Copyright 2024 SAP SE. All rights reserved.
ABAP - Keyword Documentation → ABAP RAP Business Objects →
RAP Glossary
RAP stands for the ABAP RESTful Application Programming Model. In the following, terms of the ABAP Glossary are listed, that are relevant for RAP.
ABAP behavior pool
ABP for short. A special class pool for an ABAP behavior implementation. A behavior pool is based on a RAP behavior definition. The name of the global class of a behavior pool is usually prefixed with BP_
but does not implement the behavior itself. The behavior implementation is coded in local ABP handler classes and ABP saver classes in the CCIMP include of the behavior pool. These classes implement the unmanaged RAP BO provider that is called by the RAP runtime engine when the RAP BO is accessed.
ABAP contract checks
ABAP contract checks summarize the following checks:
- RAP BO contract checks: Check for violations of RAP BO consumer and RAP BO provider implementations.
- Transactional contract checks: Are implemented in the controlled SAP LUW concept. Check for transactional consistency violations in a transactional phase.
ABAP EML
-> ABAP Entity Manipulation Language
ABAP Entity Manipulation Language
ABAP EML or EML for short. Subset of ABAP that allows access to RAP business objects in an ABAP program. When EML statements are executed for a RAP BO, RAP BO operations are called to access the transactional buffer of the BO. The communication between EML and the RAP BO consists of sending and receiving internal tables of special BDEF derived types. ABAP EML can be used in any program to access RAP BOs and especially in the ABAP behavior pool in order to access the transactional buffer of the RAP BO.
ABAP RAP
-> ABAP RESTful Application Programming Model (RAP)
ABAP RESTful Application Programming Model
Also ABAP RESTful Programming Model, ABAP RAP, or RAP for short. ABAP programming model that is RESTful or that meets the requirements of a REST architecture. In ABAP RAP, AS ABAP plays the role of a stateless Web server. OData serves as the RESTful protocol for requests from Web clients and the state of a session can be saved to the standard database. The modeling is based on CDS entities and RAP behavior definitions.
For queries, CDS entities can be directly exposed by business services and all data can be retrieved by the RAP query engine. For transactional access to data, the model offers RAP business objects, whose behavior is provided by the managed RAP BO provider, or is implemented in ABAP behavior implementations.
RAP is the transactional programming model for ABAP Cloud.
ABP auxiliary class
A global class that refers to a RAP BO and has extended access rights to the referenced RAP BO. Its primary purpose is to support implementation in an ABAP behavior pool. This is accomplished by providing reusable methods and allowing developers to concurrently implement RAP behavior.
abstract BDEF extension
A development object that extends a RAP abstract behavior definition using the statement extension for abstract
.
ancestor association
An intra-BO association whose association target is a RAP BO entity between the current node and the RAP BO root entity. The association target must be higher in the hierarchical structure of the RAP composition tree, so it cannot be a sibling node or the CDS parent entity of the current node. An ancestor association is defined using the keyword ancestor
. The purpose of ancestor associations is to make it possible to implicitly derive the path to a RAP BO's authorization master entity, lock master entity, and ETag master entity, so the respective entities need not be defined explicitly.
base BDEF
Synonym for projected BDEF. RAP behavior definition that serves as a basis for projections. It can be of BDEF implementation type managed or unmanaged.
base BDEF extension
A development object that extends a RAP behavior definition of type managed
or unmanaged
using the statement extension
.
BDEF alternative key
A user-defined BDEF key. User-defined BDEF keys exist in addition to the primary key of the underlying CDS data model and to the predefined secondary table keys for BDEF derived types. There are two types of BDEF alternative keys:
BDEF alternative keys are used, for example, to define the signature of a RAP key function.
BDEF derived type
Type of an internal table or structure that is derived by the RAP framework from the RAP behavior definition. Such internal tables and structures are used for the communication between RAP BO consumers and RAP BO providers. For that, the parameters of a method that implements RAP BO behavior are typed with BDEF derived types. In ABAP programs, BDEF derived types can be used to declare internal tables or structures to be passed to parameters of RAP handler and saver classes.
BDEF extension
A repository object that extends a RAP behavior definition.
There are the following types of BDEF extensions:
It is possible to extend a BDEF extension with further BDEF extensions. This is referred to as extension layering.
BDEF extension header
Part of a BDEF extension that includes the first one to three lines of BDL source code. It starts with extension
and may additionally define an implementation class and enable BDEF privileged mode.
BDEF friend
A BDEF friend is a BDEF extension whose implementation has unrestricted access to all components of the original BDEF. For example, a BDEF friend can call internal RAP BO operations and read or modify RAP BO entities IN LOCAL MODE
. A BDEF friend is declared using the optional addition with friends
. BDEF friends can be used for modularization purposes.
BDEF implementation type
Type of RAP behavior definition. There are five different implementation types of behavior definitions:
The differences are, for example, the type of underlying CDS entity and the degree of standardized vs. customized behavior implementation.
BDEF privileged mode
With BDEF privileged mode, RAP BO consumers can circumvent authorization checks, such as RAP authorization control. BDEF privileged mode is prerequisite to use the addition PRIVILEGED
in EML when consuming the RAP BO.
BDEF projection extension
A development object that extends a RAP projection behavior definition using the statement extension for projection
.
BDEF projection extension header
Part of a BDEF projection extension that starts with extension for projection
.
BDEF pure key
A BDEF alternative key defined using define pure key
.
BDEF secondary key
A BDEF alternative key defined using define secondary key
.
BDEF strict mode
BDEF strict mode applies additional syntax checks to RAP behavior definitions. It ensures, for example, that no outdated syntax is used, implicitly available operations are declared explicitly, and that a RAP BO complies to best practices. BDEF strict mode is continually enhanced with stricter versions that apply additional checks.
BDL source code
Source code for RAP behavior definitions in RAP BDL.
BOPF-based RAP business object
BOPF-based RAP BO for short. A BOPF-based RAP BO is the result of the migration of a CDS-based BOPF business object to a RAP business object. Special syntax statements for BOPF-based RAP BOs are managed by BOPF
and with BOPF draft
. The transactional buffer of a BOPF-based RAP BO is provided by the BOPF-managed RAP BO provider. BOPF-based RAP BOs that are draft-enabled are handled by the BOPF-managed RAP draft provider.
BOPF-managed RAP BO provider
Part of the RAP BO provider that provides the transactional buffer for BOPF-based RAP BOs.
BOPF-managed RAP draft provider
Draft provider of BOPF-based RAP BOs with BOPF-managed draft. The draft handling is managed by the Business Object Processing Framework (BOPF).
CCIMP include
Include program of a class pool that is included behind the declaration part and in front of the implementation part of the global class. It can be edited in the Class Builder by navigating to Local Definitions/Implementations and in ADT by navigating to Local Types. The internal name of the include program ends with CCIMP
. See also CCDEF include.
CDS parent entity
A CDS entity of a CDS composition tree that uses a to-child association to define a child entity. A parent entity can have multiple child entities. Each child entity must define and expose a to-parent association to its parent entity.
CDS root entity
The top CDS entity of a CDS composition tree. The addition ROOT
must be specified in the definition of a root entity with CDS DDL. A root entity can be part of exactly one RAP BO. A CDS root entity is typically a CDS parent entity and it is typically used as a RAP BO root entity in the context of the ABAP RESTful Application Programming Model.
CDS SDL
The Service Definition Language of ABAP CDS. CDS SDL contains language elements for CDS service definitions in SDL
source code.
CDS service definition extension
A transportable extension of a CDS service definition using the CDS SDL statement EXTEND SERVICE
. A CDS service definition extension can add further entities to an existing CDS service definition without modifying the original service definition.
CDS virtual element
Element in the element list of a projection view which is not included in the projected entity. Virtual elements are not persistent on the database, but calculated during runtime, usually in ABAP classes. In order to fill and analyze the virtual elements of a projection view, special frameworks like the RAP query engine have to be involved.
CDS-based BOPF business object
CDS-based BOPF BO for short. Business object in the context of the Business Object Processing Framework (BOPF). Built with the ABAP programming model for SAP Fiori.
controlled SAP LUW
Extension of the SAP LUW concept. The controlled SAP LUW introduces a checking mechanism to detect transactional consistency violations. The controlled SAP LUW is automatically and implicitly supported by newer ABAP concepts such as RAP. In non-RAP transactions, the controlled SAP LUW can be used by explicitly setting transactional phases using the static methods of the CL_ABAP_TX
class. In addition, released APIs can have special classifications (starting with IF_ABAP_TX...
) that enable specific transactional contracts that are checked in the transactional phases.
cross-BO association
Association that is not part of a RAP business object's composition tree, but has an association target that is part of a foreign business object. The opposite of a cross-BO association is an intra BO association.
CRUD operations
Acronym for Create, Read, Update, and Delete, which are the four basic operations for persistent data storage.
- In SQL, the four operations are implemented by;
- In the ABAP RESTful Application Programming Model (RAP), the four operations can be specified in a RAP behavior definition using the RAP BDL syntax elements
create
,read
,update
, anddelete
.
CUD operations
Acronym for Create, Update, and Delete operations, which are part of the four basic CRUD operations for persistent data storage.
- In SQL, the three operations are implemented by the DML statements
INSERT
,UPDATE
, andDELETE
. - In the ABAP RESTful Application Programming Model (RAP), the three operations are represented by the RAP modify operations Create, update, and delete in RAP BOs.
draft-enabled RAP business object
Draft-enabled RAP BO for short. A RAP BO that supports RAP draft handling. A RAP BO is draft-enabled with the RAP BDL syntax addition with draft
.
EML
-> ABAP Entity Manipulation Language
entity behavior body
That part of an entity behavior definition that is defined within curly brackets. The entity behavior body can include RAP BO operations, validations, determinations, and other elements.
entity behavior characteristics
The entity behavior characteristics are that part of an entity behavior definition that stand after define behavior for
and before the curly brackets. The entity behavior characteristics define additional properties of a behavior definition on entity level.
entity behavior definition
Component of a CDS behavior definition (BDEF). A BDEF consists of a header part and at least one entity behavior definition, referring to a RAP BO root entity. Further entity behavior definitions referring to child entities are optional.
foreign key association
-> source-resolved association
instance RAP BO operation
A RAP BO operation that is bound to a RAP BO entity instance.
internal RAP BO operation
A RAP BO operation that can only be executed by the RAP BO provider of the same BO.
intra-BO association
A CDS association that is part of a RAP business object's composition tree and has an association target from the same RAP BO. The opposite of an intra-BO association is a cross-BO association.
leaf entity
A CDS entity of a CDS composition tree of a RAP business object that does not have any child entities. The root entity can also be a leaf entity.
managed RAP BO provider
Part of the RAP BO provider that provides managed transactional buffers and managed behavior of managed RAP BOs based on their RAP behavior definition.
managed RAP business object
Managed RAP BO for short. Provisioning type of the business object behavior of a RAP BO. The transactional buffer of a managed RAP BO is provided by the managed RAP BO provider. The implementation can partly be provided by an unmanaged RAP BO provider in an ABAP behavior pool.
managed transactional buffer
Transactional buffer of a managed RAP BO that is provided by the managed RAP BO provider. A managed transactional buffer can be accessed in ABAP programs by ABAP EML only.
mandatory RAP BO field
A field in a RAP BO that is defined as mandatory in the behavior definition. A non-initial value must be passed to this field in every create request and it cannot be initialized in a modify operation.
optimistic concurrency control
Optimistic concurrency control enables transactional access to data by multiple users while avoiding inconsistencies by unintentional changes of already modified data. In RAP this is ensured by using an ETag field in the RAP behavior definition.
payload
In communications technology, payload is the term used to describe the data that is transported in a data packet during communication between two partners that does not contain any control or protocol information. Payload data includes voice, text, characters, images, and sounds.
In the context of RAP business events, the payload is the data that is passed from the sender to the event consumers. The payload of a RAP business event is defined using an output parameter. -> More about
pessimistic concurrency control
Pessimistic concurrency control prevents simultaneous modification access to data on the database by more than one user. In RAP this is ensured by the RAP locking mechanism.
prefix extension
Used in the context of RAP BO extensions to refer to an element or repository object from a RAP BO extension. Examples: extension behavior, extension node, extension field.
RAP
-> ABAP RESTful Application Programming Model
RAP abstract behavior definition
RAP abstract BDEF or abstract BDEF for short. A RAP abstract behavior definition is a RAP behavior definition of implementation type abstract. It is based on a CDS abstract entity and it mainly serves as typing mechanism for deep action or function parameters.
RAP action
A RAP BO non-standard operation that modifies the state of a RAP BO entity instance.
There are different types or RAP actions:
RAP active instance
RAP BO entity instance in a draft-enabled RAP business object for which a commit triggers the saving to the persistent table. The BDEF derived type of such an instance has the draft indicator set to false. An active instance can be produced by a create operation or by the draft action Activate
in draft scenarios.
RAP additional save
Save logic which can be added to managed RAP BOs to enhance the default save sequence. It can be applied to the complete BO by defining it in the behavior definition header, or for an individual entity by defining it in the behavior entity characteristics. It is implemented in the redefined saver method save_modified
.
RAP authorization context
A container for authorization objects that lists one or more authorization objects. There are different types of authorization contexts:
Optional component of a RAP behavior definition.
RAP authorization context for disable
A RAP authorization context that lists authorization objects which can be skipped if the authorization context for disable in question is activated.
RAP authorization control
An access restriction that protects a RAP BO against unauthorized access to data. It limits access to data or the permission to perform operations. Authorization control can be global or instance or both.
- Global authorization is independent of individual instances.
- Instance authorization is dependent on the state of an entity instance.
RAP authorization dependent entity
RAP BO entity that uses the authorization control that is defined on its authorization master entity. It delegates authorization requests to the implementation of the authorization master entity.
RAP authorization master entity
RAP BO entity that has its own authorization implementation. The implementation is used when requesting access to the authorization master entity or to any of its authorization dependent entities.
RAP base BO
A RAP business object that is used as a basis of a RAP projection BO. It can be of BDEF implementation type managed or unmanaged.
RAP BDL
Behavior Definition Language in ABAP RAP. RAP BDL contains language elements for RAP behavior definitions in BDL source code.
RAP behavior
The part of a RAP BO that describes the abilities of the RAP BO in question. It is defined in a RAP behavior definition and implemented in the RAP behavior implementation.
RAP behavior definition
RAP BDEF or BDEF for short. A RAP behavior definition describes a RAP business object (RAP BO) by defining its behavior for all its BO entities. A BDEF is written in BDL source code using language elements in RAP BDL.
RAP behavior definition header
BDEF header short. A BDEF header is the part of a RAP behavior definition that defines the implementation type and some global attributes that apply to the complete business object. It is the topmost part and includes all statements that are listed before the entity behavior definition, define behavior for
.
RAP Behavior Definition Language
-> RAP BDL
RAP behavior extension body
That part of an entity behavior extension that is defined within curly brackets after the statement extend behavior for
. The entity behavior extension body can define new extension elements, such as extension determinations, extension validations, and extension actions. It may also extend existing elements, such as RAP type mapping, and determine actions.
RAP behavior implementation
A RAP behavior implementation implements the unmanaged RAP BO provider. The implementation takes place in local classes of an ABAP behavior pool (ABP).
RAP BO augmentation
A RAP BO operation addition that must be implemented by an ABP handler method. Augmentation is defined in the projection behavior definition for RAP standard operations.
The implementation is called when a modify request reaches the business object projection to add data to the request before it is passed to the corresponding handler of the projected business object.
RAP BO consumer
Software that consumes the implementation of a RAP BO. A RAP BO consumer is either the RAP transactional engine that handles requests from outside the AS ABAP or an ABAP program using ABAP EML.
RAP BO contract
The RAP BO contract defines a set of rules for the RAP BO provider and consumer implementation to ensure consistency and reliability.
RAP BO determine action
Determine actions are specific RAP actions that execute determinations and validations on request. Their implementation is provided by the managed RAP BO provider.
RAP BO draft action
Draft actions are specific actions whose implementation is provided by the RAP managed draft provider. They are invoked during the lifecycle of a draft-enabled RAP BO to manage the state of draft and active instances.
RAP BO entity
Also RAP BO node. CDS entity for which behavior is defined in a RAP behavior definition of a RAP BO.
RAP BO entity instance
Also RAP BO node instance. Concrete data set of a RAP BO entity that is identified by a key. During a RAP transaction, a RAP BO entity instance is processed in the RAP transactional buffer during the RAP interaction phase. Then it is saved to the database table during the save sequence.
RAP BO extension
A repository object that extends a RAP BO. The following types of RAP BO extensions exist:
- DDIC extensions defined in DDIC DDL
- CDS entity extension in CDS DDL.
- BDEF extensions in RAP BDL.
- Service definition extensions in CDS SDL.
RAP BO field
An element of a RAP BO entity.
RAP BO instance
Concrete data set of a BO composition tree. One BO instance at least consists of one RAP BO root entity instance. Furthermore, it includes all entity instances with a compositional relationship to the root entity instance.
RAP BO instance key component group
A component group in BDEF derived types that contains primary key fields of a RAP BO instance: %key
, %tky
, %pky
.
RAP BO interface
A RAP business object that serves as interface for stable consumption. A RAP BO interface consists of a CDS transactional interface and a RAP interface behavior definition. A RAP BO interface does not have a runtime handler and cannot specify an implementation class for ABAP behavior implementation. A RAP BO interface can only project behavior from the underlying RAP BO.
RAP BO interface entity
A component of a RAP BO interface. It describes the part of the RAP data model that is included in the interface. A RAP BO interface entity is represented by a CDS projection view with the provider contract TRANSACTIONAL_INTERFACE
.
RAP BO non-standard operation
RAP BO operation that does not provide canonical transactional behavior for a RAP BO, for example actions and functions. Most non-standard operations must be implemented in the ABAP behavior pool.
RAP BO operation
Operation of a RAP BO. RAP BO operations are CRUD operations, non-standard operations, and the lock operation. The implementation of a RAP BO operation implements the RAP BO behavior by accessing the transactional buffer. A RAP BO can be accessed by using RAP operations. The parameters of a RAP BO method are mainly typed with special BDEF derived types.
RAP BO precheck
A RAP BO operation addition that must be implemented by a RAP handler method. A precheck is defined for operations in the behavior definition of a base business object or in the projection business object.
The implementation method is called before a modify request is executed on the transactional buffer to prevent unwanted changes from reaching the transactional buffer.
RAP BO provider
Software that provides the transactional buffer and the implementation of a RAP BO based on its RAP behavior definition.
- A managed RAP BO is provided fully or partly by the managed RAP BO provider.
- An unmanaged RAP BO is fully provided by the unmanaged RAP BO provider.
- A BOPF-based RAP BO is provided by the BOPF-managed RAP BO provider.
RAP BO root entity
RAP BO entity that defines the behavior of a CDS root entity. The RAP BO root entity is the top-most entity of the hierarchical structure of a RAP business object and it represents the RAP business object.
RAP BO service projection
A RAP BO projection for a RAP business service. A service projection consists of a CDS transactional query and a RAP projection behavior definition.
RAP BO service projection entity
A component of a RAP BO service projection. It describes the RAP data model that is included in the service projection. The RAP BO service projection entity is represented by a CDS projection view with the provider contract TRANSACTIONAL_QUERY
.
RAP BO standard operation
RAP BO operation that provides canonical transactional behavior for a RAP BO. In a managed RAP BO, standard operations can be provided by the managed RAP BO provider.
Create, read, update, delete (CRUD) and lock are standard operations. Actions and functions, in contrast, are non-standard operations. That means they are application-specific and user-implemented.
RAP buffer data
Data on the RAP transactional buffer that is either in an active or a draft state.
RAP business event
A RAP business event is a business event that usually represents a piece of information about the outcome of a CUD operation in the context of a RAP BO entity. For example, the creation of a RAP BO entity instance raises a RAP business event. Then, an interested party that has subscribed to this event can consume and process it. The information that is passed (i. e. the payload of the event) always includes the instance key and, if need be, further information like the action (CUD).
RAP business object
RAP BO for short. Business object in the context of ABAP RAP. A RAP BO is mainly described by a RAP behavior definition that defines the RAP business object behavior for a set of special hierarchical CDS entities in form of RAP behavior operations and behavior characteristics. A RAP BO has RAP BO operations to handle its data that is available in a transactional buffer. There are two kinds of RAP BOs:
- Managed RAP BOs that are fully or partly provided by the managed RAP BO provider
- Unmanaged RAP BOs that are provided by the unmanaged RAP BO provider that is implemented in an ABAP behavior implementation.
- BOPF-based RAP business objects that are provided by the BOPF-managed RAP BO provider.
A RAP BO can be exposed as a RAP business service for access from outside AS ABAP and is consumed by the RAP transactional engine then. For access to RAP BOs from inside AS ABAP, ABAP contains a subset called ABAP Entity Manipulation Language (EML).
RAP business object behavior
Transactional behavior of a RAP business object that is defined in a RAP behavior definition.
It includes entity behavior characteristics, RAP BO operations, validations, and determinations all of which are either provided by the managed RAP BO provider or implemented in the ABAP behavior pool (unmanaged RAP BO provider).
RAP business service
RAP BS for short. A RAP business service is a RESTful business service for the consumption of RAP business objects. A RAP business service is published with an OData protocol.
RAP cleanup phase
Final phase of the RAP save sequence in which the cleanup
RAP saver method is called.
RAP concurrency control
A concept in RAP that ensures correct results for concurrent operations.
See also:
RAP consumer hint
RAP BO field or behavior characteristic that is propagated to the consumer via the chosen protocol. It can be used to optimize usability of the business service, for example if fields are marked as mandatory on a UI.
RAP content identifier
RAP input identifier that uniquely identifies an operation on one instance. The content identifier is reflected in the derived type component %cid
. It identifies an instance during the consumption of static operations before the instance is identified by an instance identifier.
RAP create operation
A RAP modify operation that creates new instances of a RAP BO entity.
RAP create-by-association operation
RAP modify operation that creates new instances of an associated business object entity.
RAP data model
Part of a RAP BO that defines the data that is used in the RAP BO. It consists of RAP BO entities that are related by a CDS composition tree.
RAP data model extension
Extension of the data model of a RAP BO. May consist of DDIC extensions and CDS entity extensions.
RAP default values function
A RAP BO operation addition that defaults field values or input parameters for RAP BO operations on the user interface. A RAP default values function must be implemented by an ABP handler method.
RAP delete operation
A RAP modify operation that deletes RAP BO entity instances.
RAP derived event
A RAP derived event redefines the payload of an existing RAP business event. A RAP derived event is defined with reference to an already implemented event and allows the definition of a payload that deviates from the payload of the referenced event. A derived event is automatically raised when the referenced event is raised. No implementation in an ABAP behavior pool is required.
RAP determination
An optional part of the RAP BO behavior that modifies RAP BO instances based on trigger conditions.
RAP draft handling
A concept in RAP that allows the content of the transactional buffer to be stored in intermediate storages (draft tables) in order to allow transactions to expand over different ABAP sessions. Introduced by the keyword with draft
in the behavior definition header of a RAP behavior definition.
RAP draft indicator
BDEF derived type component that is used to indicate whether a RAP BO instance is a draft instance or an active instance. It is contained in the component group %tky
as %is_draft
.
RAP draft instance
RAP BO entity instance in a draft-enabled RAP business object for which a commit triggers the saving to the RAP draft table. The BDEF derived type of such an instance has the draft indicator set to true. A draft instance can be produced by a create operation or by the draft action Edit
in draft scenarios.
There are edit-draft instances and new-draft instances.
RAP draft query view
CDS view entity or CDS DDIC-based view (obsolete) that selects from the RAP draft table and contains all fields from the draft table including the administrative fields. It can be specified in a RAP behavior definition using the syntax addition query. A draft query view allows developers to define read access limitations for the draft data of a draft-enabled RAP business object using the CDS data control language CDS DCL.
RAP draft table
Special DDIC database table that is generated for a draft-enabled RAP business object. It contains draft administrative data that is used for RAP draft handling. A draft table should be accessed by the RAP framework only.
RAP dynamic field characteristic
Field characteristic that defines usage restrictions for a RAP BO field depending on the state of a RAP BO entity instance or the operation in which the field is used. For example, a field can be dynamically defined as read-only, mandatory, or without restrictions.
RAP early numbering
A numbering concept in which key values are assigned during the interaction phase.
RAP early save phase
Refers to the early phase of the RAP save sequence and covers the RAP saver methods finalize
, check_before_save
and cleanup_finalize
.
RAP edit draft instance
Draft instance that is produced by the draft action Edit
. For an edit draft instance, there exists a corresponding active instance in parallel.
See also: RAP new draft instance
RAP entity behavior extension
Short behavior extension. Component of a BDEF extension that extends the behavior of an existing RAP BO entity. An entity behavior extension is defined using extend behavior for EntityName
.
RAP entity projection extension
Projection extension for short. Component of a BDEF projection extension that extends the behavior of an existing RAP BO entity in a RAP projection behavior definition. An entity projection extension is defined using extend behavior for EntityName
.
RAP ETag
ETag is short for entity tag. A RAP ETag field is a field of a RAP BO entity that is used to describe the state of the instance as an entity tag for optimistic concurrency control. It is updated on every change of the RAP BO entity instance.
RAP ETag dependent entity
RAP BO entity that uses the ETag field of another entity for optimistic concurrency control. Defined using the keyword etag dependent by _Assoc
.
RAP ETag master entity
RAP BO entity that has its own ETag field defined using the keyword etag master MasterField
.
RAP event handler class
Class pool that is used to implement RAP event handler methods.
RAP event handler method
Method that is declared and implemented in the CCIMP include of a RAP event handler class. It is used to process logic that is implemented in this method when RAP business events are raised and consumed locally in the system in which they are raised.
RAP event handler methods are called asynchronously.
RAP extensibility
Extending a RAP business object with the respective RAP BO extensions. Before a RAP BO can be extended, extensions must be technically enabled by means of RAP extensibility enablement. Extensibility use cases include field extensibility, behavior extensibility, and node extensibility.
RAP extensibility is used as part of developer extensibility, available in on-premise and cloud environments. In the context of ABAP for Cloud Development, RAP extensibility relies on the C0 (extend) contract to ensure stability at the dedicated extension points.
RAP extensibility enablement
Preparing a RAP business object to fulfill all technical requirements for RAP extensibility. This may include preparing the RAP data model for extensibility by means of extensibility annotations and preparing the RAP behavior definition for extensibility by defining dedicated extension points.
RAP extension entity behavior
Node extension for short. Component of a BDEF extension that defines the behavior for an extension node. Extension entity behavior is defined using define behavior for
. The extension node must be added to the current RAP BO's data model via RAP data model extensions.
RAP extension layering
It is possible to extend a BDEF extension with further BDEF extensions. This is referred to as extension layering. Before a BDEF extension can be extended, extensions must be technically enabled by means of RAP extensibility enablement. Technically, a BDEF extension that extends another extension is a regular extension and the rules for BDEF extensions apply.
RAP external numbering
A numbering concept in which key values are provided by the RAP BO consumer.
RAP factory action
A RAP action that creates new RAP BO entity instances where you can add functionality to the create process, for example, retrieving BO-specific default values.
RAP feature control
An access restriction that enables or disables RAP BO operations or defines field attributes dynamically for RAP BO consumers. Feature control can be static or dynamic, instance-based or global.
RAP field characteristic
Property of a RAP BO field that restricts access to the field in question. Field characteristics can be static or dynamic.
RAP foreign entity
A RAP BO entity which is not part of the BO composition tree for which it is defined. Defining a foreign entity in the behavior definition enables cross-BO message mapping between the two BOs.
RAP framework
Framework for the ABAP RESTful Application Programming Model (RAP) on AS ABAP. It consists of the RAP runtime engine and the RAP development environment.
RAP full authorization context
A RAP authorization context that serves as a container for authorization objects. Specified using the syntax define own authorization context
. A full authorization context documents the authorization objects used in the implementation of the RAP BO in question.
RAP function
A non-standard RAP BO operation that returns information without modifying RAP BO entity instances.
RAP global feature control
Feature control that defines access restrictions independently of the state of a BO entity instance. Global feature control can be defined for operations only.
RAP handler class
Local class in a CCIMP include of an ABAP behavior pool (ABP) for implementing RAP handler methods that is executed during the RAP interaction phase.
RAP handler method
Special method in a RAP handler class of an ABAP behavior pool that is called during the RAP interaction phase. The names of handler methods can be freely chosen except for draft actions and augmentation.
RAP input derived type
BDEF derived type that is used for importing parameters in methods in the ABP.
RAP input identifier
Structure that is imported into implementation methods in the ABAP behavior pool. It consists of all components that are relevant to identify one instance for the current method.
An input identifier can either be the instance identifier or the content identifier, or both.
RAP instance feature control
Feature control that defines access restrictions depending on the state of a BO entity instance. Instance feature control can be defined for fields and operations.
RAP instance identifier
Structure that uniquely identifies a RAP BO instance. It consists of the primary key fields and all relevant derived type components, for example %is_draft
, %pid
. The instance identifier is represented by the component groups %tky
or %pky
.
See also: RAP input identifier.
RAP instance transition message
A transition message that refers to an instance of a business object entity and contains a key reference.
RAP interaction phase
A part of the RAP BO runtime during which data is modified on the transactional buffer.
RAP interface behavior definition
Interface BDEF for short. A component of a RAP BO interface. It defines the behavior that is included in the interface. A RAP BO interface behavior definition is represented by a RAP behavior definition with the BDEF implementation type interface
.
RAP internal numbering
A numbering concept in which key values are assigned by the RAP BO provider.
RAP inverse function
A predefined RAP function that is defined for an association. It receives the values of the foreign key fields of the association target instances as input and provides the corresponding association source instances as result. It can be used, for example, to enable read-by-association operations in a cross-BO scenario.
RAP key function
A predefined RAP function that is defined for a BDEF alternative key. It receives the values of an alternative key as input and returns the entity instances with matching values. Key functions are used, for example, to enable read-by-association operations in RAP BOs with cross-BO associations involving RAP reuse objects.
RAP late numbering
A numbering concept in which key values are assigned during the RAP save sequence.
The final key value is only assigned in the RAP saver method adjust_numbers
.
RAP late save phase
Refers to the late phase of the RAP save sequence and covers the RAP saver methods adjust_numbers
and save
(or save_modified
respectively). The cleanup
method is called following a successful save.
RAP link action
A non-factory, instance-bound RAP action that is defined for an association. It associates a RAP BO entity instance to a RAP BO entity instance that is not part of the RAP composition tree by setting the foreign key.
RAP lock dependent entity
RAP BO entity whose locking requests are delegated to the lock master entity. Defined using the keyword lock dependent by _Assoc
.
RAP lock master entity
RAP BO entity that is locked on each locking request of one of its lock dependent entities. On each locking request the lock master and all its lock dependent entities are locked.
RAP lock operation
RAP BO operation that locks RAP BO entity instances on the persistent table during a RAP transaction.
RAP locking
Locking mechanism that is based on the SAP lock concept. It uses lock function modules for pessimistic concurrency control.
RAP managed draft provider
Part of the RAP BO provider that manages draft data on the transactional buffer during the interaction phase and provides draft actions and the total ETag handling in draft-enabled RAP BOs.
RAP message
Message that is represented by an instance of a class that implements the interface IF_ABAP_BEHV_MESSAGE
and is used in RAP BO provider implementations.
Each application can create its own classes. For convenience, each behavior pool contains a predefined local exception class CL_ABAP_BEHV_MSG
inherited from CX_NO_CHECK
that implements IF_ABAP_BEHV_MESSAGE
in a minimalistic way. It can be used for RAP messages as well as for raising exceptions where appropriate.
RAP modify operation
Synonym for CUD operations. RAP BO operation that changes data of a RAP BO entity instance. Create, update, and delete are RAP modify operations.
RAP new draft instance
Draft instance that is produced by a create operation with the draft indicator set to true. The data of new draft instances is not yet persisted on the active database table and there is no corresponding active instance available.
See also: RAP edit draft instance
RAP non-factory action
A RAP action that is not a factory action.
RAP numbering
A concept that deals with setting values for primary key fields of RAP BO entity instances.
The following numbering concepts are available:
RAP output derived type
BDEF derived type that is used for changing parameters in methods in the ABP.
RAP persistent data
Data on the RAP persistent table.
RAP persistent state
The state of a business object or its instances as it is on the persistent database table.
RAP persistent table
DDIC database table a RAP BO is based on. For transactional changes of RAP persistent table data, the data is loaded into the transactional buffer. At the end of a RAP transaction, changes in the transactional buffer are either written back to the persistent table (commit) or discarded (rollback).
RAP projection behavior definition
RAP projection BDEF or projection BDEF for short. A RAP projection behavior definition is a RAP behavior definition of implementation type projection
. It is based on a CDS transactional query and it projects a base BDEF.
RAP projection business object
A RAP business object that is defined in a RAP projection behavior definition. It has a CDS projection view as root view.
RAP projection extension entity
Defines the node extension in the projection layer. Component of a BDEF projection extension that defines the behavior for an extension node in the projection layer. Projection extension entity behavior is defined using define behavior for
in the context of a BDEF projection extension. The extension node must be added to the current RAP BO's data model via RAP data model extensions.
RAP query
A consumption option in RAP that provides read-only consumption of data defined in CDS entities. A RAP query is executed by the RAP query engine.
RAP query engine
Part of the RAP runtime engine that handles the non-transactional consumption of RAP BOs. The RAP query engine is provided by the RAP framework but can be adapted by implementing an unmanaged query.
RAP read operation
RAP BO operation that retrieves data of a RAP BO entity instance from the RAP transactional buffer or from the database table if the instance in not available in the transactional buffer.
See also: CRUD operations
RAP read-by-association operation
RAP read operation that retrieves data of an association target of a RAP BO entity.
RAP repeatable operation
RAP action or RAP function that can be executed multiple times on the same RAP BO entity instance within the same ABAP EML or OData request. The BDEF derived type of a repeatable operation contains a %cid
component and the RAP response parameters are filled for each execution individually.
RAP response
Information a RAP BO consumer is provided with by a RAP BO provider via the RAP response parameters mapped
, failed
and reported
of individual RAP handler methods and RAP saver methods.
Depending on the availability of these response parameters in the said methods, the information that is provided can comprise the following:
mapped
: Used to provided mapping information on RAP BO instances, for example, which key values were created for given content IDs (%cid
).failed
: Information for identifying the data set for which an error occurred in a RAP operation.reported
: Used to exchange error messages for each entity defined in the BDEF and not related to a specific entity.
RAP response parameter
Implicit changing parameters of RAP handler methods and RAP saver methods (implicitly) typed with the BDEF derived type ... TYPE RESPONSE FOR ...
. Depending on the RAP handler or saver method, the signatures of the individual methods can include all of the following three formal parameters mapped
, failed
and reported
, a subset or none of them. The names of the parameters are predefined. They are used to provide a RAP BO consumer with information by a RAP BO provider.
Parameters:
failed
: Information for identifying the data set for which an error occurred in a RAP operationreported
: Used to exchange messages (for example, error messages) for each entity defined in the BDEF and not related to a specific entity.mapped
: Used to provide mapping information on RAP BO instances, for example, which key values were created for given content IDs (%cid
).
RAP runtime engine
Processor that handles the consumption of RAP queries and RAP BOs. There is the RAP query engine for non-transactional consumption and the RAP transactional engine for transactional consumption.
RAP runtime framework
Part of the RAP framework that is provided by the ABAP runtime framework for consuming RAP business objects from outside AS ABAP or from ABAP programs. In order to handle open protocols such as OData when a RAP BO is exposed as a business service, the RAP runtime framework involves components of SAP Gateway. In order to control the runtime behavior of a RAP business object, the RAP runtime framework uses SADL as an orchestration framework. ABAP EML statements that are used to access RAP BOs from inside an ABAP program, also trigger processes in the RAP runtime framework.
RAP save action
RAP action that can only be executed during the RAP save sequence. Any attempt to execute a RAP save action during the RAP interaction phase results in a short dump.
RAP save sequence
The RAP save sequence is part of the RAP BO runtime and is triggered after at least one successful modification was performed during the interaction phase. It saves data from the transactional buffer on the database.
The RAP save sequence is divided into three phases that are entered in this order:
RAP saver class
Local class in a CCIMP include of an ABAP behavior pool (ABP) for implementing RAP saver methods that are called during the save sequence.
RAP saver method
Special method in a RAP saver class of an ABAP behavior pool that is called during the RAP save sequence. The names of saver methods are predefined and cannot be changed.
RAP side effect
An optional part of a RAP behavior definition that defines interdependencies among BO properties that trigger a reload of the affected properties on the user interface. Introduced by the keyword side effects
in the entity behavior body of a RAP behavior definition.
RAP state message
A message in the reported
RAP response parameter of a RAP business object that refers to the state of an entity instance. A state message is defined with the parameter %state_area
, which assigns it to the corresponding state area. A state message is persisted with the instance it refers to in draft-enabled BOs.
RAP state messages are relevant in the following contexts:
- Draft-enabled RAP BOs
- The
cleanup_finalize
andcheck_before_save
RAP saver methods in unmanaged RAP BOs - Determinations and validations in managed RAP BOs
RAP static field characteristic
Field characteristic that defines usage restrictions for a RAP BO field independently of the state of a RAP BO entity instance. For example, read-only and mandatory are static field characteristics.
RAP static transition message
A transition message that refers to a RAP BO entity, but not to a specific instance. Unlike a RAP instance transition message, it does not contain a key reference.
RAP total ETag
A field of a draft-enabled RAP BO that enables optimistic concurrency checks during the transition form draft to persistent data.
RAP transaction
A RAP transaction ...
- is the sum of all operations and workflows that are used to transfer data from one consistent state to another.
- begins with creating new data on the RAP transactional buffer or by retrieving data from the database to the transactional buffer.
- is terminated with
COMMIT ENTITIES
orROLLBACK ENTITIES
.
RAP transactional buffer
Storage where the data that is used during one RAP transaction is kept. It includes the RAP BO instance that are being worked on.
A distinction is drawn between the following kinds of transactional buffer:
- managed transactional buffer for managed RAP BOs.
- unmanaged transactional buffer for unmanaged RAP BOs.
RAP transactional engine
Part of the RAP runtime engine that handles the transactional consumption of RAP BOs.
RAP transactional framework
Part of the RAP framework that consists of the RAP transactional engine and the development environment for RAP business objects.
RAP transactional phase
The RAP interaction phase and RAP save sequence are RAP transactional phases.
RAP transition message
A message in the reported
RAP response parameter that is semantically related to the current ABAP EML MODIFY
request and independent of the state of the entity instance. Unlike RAP state messages, transition messages are RAP messages that do not have a state area assigned (%state_area
) and are not persisted with the state. Therefore, these messages cannot be accessed at a later point in time.
There are instance transition messages and static transition messages.
RAP type mapping
Mapping between data types of the data model that is defined in CDS for a RAP business object to other data types that do not match a BDEF derived type component pattern.
For example, it is used in the behavior definition to map database field names to CDS element names.
RAP unlink action
A non-factory, instance-bound RAP action that is defined for an association. It removes the connection between RAP BO entity instances by removing the value of the foreign key field.
RAP unmanaged draft provider
Draft provider of BOs with unmanaged draft. The draft handling is implemented in the ABAP behavior pool.
RAP unmanaged query
An implementation type of the RAP query for which parts of the RAP query engine must be implemented in an ABAP class that is referenced in a CDS custom entity.
RAP unmanaged save
Save logic which replaces the default save method in managed RAP BOs. It can be applied to the complete BO by defining it in the behavior definition header, or for an individual entity by defining it in the behavior entity characteristics. It is implemented in the redefined saver method save_modified
.
RAP update operation
A RAP modify operation that changes field values of existing RAP BO entity instances.
RAP validation
An optional part of the RAP BO behavior that checks the consistency of RAP BO instance based on trigger conditions.
read-only RAP BO field
A field in a RAP BO that is defined as read-only in the behavior definition. Changes to this field are only allowed by the RAP BO provider in local mode.
REST
Short for Representational State Transfer. An architecture concept for Web services. One of the essential conditions for a RESTful programming model is a stateless Web server. No client-dependent information can be saved on a Web server between the Web client requests made to the server. The status of a session is managed by the Web client and all necessary information is transferred to the Web server with requests. However, a Web server can also be a client of a persistence layer such as a database system, in which the status of a session is saved persistently for its duration. ABAP supports REST in ABAP RAP.
RESTful
Programming models and their services, APIs, and protocols are called RESTful if they meet the REST principles. See also ABAP RESTful Application Programming Model.
reverse foreign key association
-> target-resolved association
SADL
Short for Service Adaptation Definition Language. Infrastructure for model-based reading and processing of data. The RAP runtime framework uses SADL internally for its query engine and its orchestration framework, which controls the runtime behavior of RAP business objects.
source-resolved association
Also known as foreign key association. An association relationship in which the foreign key is stored in the association source entity.
static RAP BO operation
A RAP BO operation that is not bound to any RAP BO entity instance but relates to the complete RAP BO entity. Defined using the optional addition static
.
target-resolved association
Also known as reverse foreign key association. An association relationship in which the foreign key is stored in the association target entity.
transactional phase
Specifies the concrete phase of a transaction. It is either the modify or the save transactional phase. They are set either implicitly, as in the case of, for example, RAP handler and saver methods, or explicitly using the static methods of class CL_ABAP_TX
.
In a RAP transaction, the transactional phases are as follows:
- Modify: Includes the RAP interaction phase and the early save phase of the RAP save sequence.
- Save: Includes the RAP late save phase.
treeview
In the context of the ABAP RESTful Application Programming Model, a treeview visualizes data modeled by a CDS hierarchy e.g. by using a SAP Fiori Elements treetable.
unmanaged RAP BO provider
Part of the RAP BO provider that must be implemented in the ABAP behavior pool.
unmanaged RAP business object
Unmanaged RAP BO for short. Provisioning type of the business object behavior of a RAP BO. The transactional buffer of an unmanaged RAP BO is provided by an ABAP behavior implementation. The implementation of an unmanaged RAP BO is fully provided by the unmanaged RAP BO provider in an ABAP behavior pool.
unmanaged transactional buffer
Transactional buffer of an unmanaged RAP BO that is provided and accessed by the unmanaged RAP BO provider.
web API
OData consumer of a RAP business service that serves as an API without UI-specific metadata.