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:

    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.

    CUD operations

    Acronym for Create, Update, and Delete operations, which are part of the four basic CRUD operations for persistent data storage.

    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:

    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.

    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:

    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 operation
    • reported: 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:

    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 or ROLLBACK 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:

    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.

    -> More about

    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:

    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.