ABAP-managed HDI containers are special types of HDI containers, specificallydesigned to hold HDI objects of ABAP for SAP HANAapplications.
In general, an SAP HANADeployment Infrastructure (HDI) container consists of a design-time container and acorresponding run-time container. For general information, see SAP HDI Containers in the SAP HANA Developer Guide for SAP HANA XS Advanced ModelRuntime.
ABAP-managed HDI containers (AMHCs) are HDI containers, specifically created for HDIobjects that will be used in ABAP for SAP HANA applications. ForABAP for SAP HANAapplications, not all HDI object types are supported. In HTA for HDI, you can createdifferent types of HDI containers for different purposes, for example, to separatedata-storing objects from non-data-storing objects.
You create ABAP-managed HDI containers in the ABAP system in transactionSCTS_AMHC. An ABAP-managed HDI container needs to be created onlyonce for each ABAP for SAP HANA application orproduct. At creation, you select the type of the container and you can assign referencesto other HDI containers, logical database schemas, to logical schemas of ApplicationFunction Libraries (logical AFL schemas), and to the ABAP database schema of the currentABAP system, SAP_ABAP. The references indicate that objects from thereferenced containers and/or schemas can also be used in the current container.
To create an ABAP-managed HDI container, you define a logical HDI container in ABAP. Whenthe logical HDI container is activated, a physical HDI container is created in theSAP HANA database ofthe ABAP system. The name of the physical container is composed of the name of thelogical container and a random number. The reason for the random number is the supportof upgrades with Zero-Downtime Option.
Only the database user that is used by the ABAP system has the privileges to manageABAP-managed HDI containers. Access to the HDI containers and privileges to use thecontained objects, e.g. perform SELECT, EXECUTE, andso on, is restricted to HDI containers of type Runtime Container and onlyallowed for the database user of the ABAP system.
When a logical HDI container is imported and activated in a target system, the physicalHDI container is created in the SAP HANA database of thetarget system. The physical name is newly created in each target system. Therefore, thephysical name is different in each target system.
If an ABAP-managed HDI container is changed in the development system, for example, ifthe references are changed, no new physical HDI container is created, but only thereferences in the container are updated. The same is true when updated ABAP-managed HDIcontainers are transported.
Types of ABAP-managed HDI Containers
Thefollowing ABAP-managed HDI container types exist:
Runtime Container
Runtime containers are used for runtime objects that do not store data, such asSQL views (.hdbview), or HDI procedures(.hdbprocedure) and others, which can be used by ABAP. Themain use case for this container type are calculation views(.hdbcalculationview).
Runtime containers can reference objects (e.g. views, tables) of the SAP_ABAP schema, of logical database schemas, of logical AFL schemas, aswell as HDI objects in data or other runtime containers.
Data Container
Data containers are used for data-storing objects. They are only required in rarecases, for example for data types that exist in SAP HANA, but notin ABAP, for example, geospatial.
Data containers are not allowed to have any references. Since from ABAP, youcannot directly access objects in data containers, you must access these objectsusing projection or SQL views or from within a runtime container. We recommendthat you do not define normal tables in data containers, but in the ABAPschema.
API Container
API containers are special runtime containers that can only contain few objecttypes. API containers are used to permit external applications to accessdatabase objects in the ABAP system, or to access HDI objects in other runtimecontainers. No incompatible changes must be made to API containers.
API containers can reference the SAP_ABAP schema, logical database schemas as well as runtime containers, and other API containers. APIcontainers cannot reference any data containers and logical AFL schemas.
For external applications, an OData service is available that returnsthe physical container name for a given logical container name of typeAPI container. This can be used to access the objects inthis container. For example, SAP HANA XS advancedmodel can use the OData service to access details of an API container. For moreinformation, see OData Service for ABAP-managed HDI Containers.
Examples
-
If you want to create calculation views based on ABAP tables, create aruntime container, and reference the ABAP schema by specifiying a referenceto SAP_ABAP.
-
If you want to make your HDI calculation views or other HDI objects locatedin the runtime container available to external applications, for example,XSA applications, create an API container with a reference to your runtimecontainer. In the API container, expose the HDI calculation views in theruntime container using projection views or SQL views in the API container.
-
If you want to expose ABAP tables, add a reference to the ABAP schema byspecifying SAP_ABAP as a reference in the API container,and expose the ABAP tables using projection views or SQL views in the APIcontainer.
-
If you want to use data-storing HDI objects – these are only available indata containers -, you must access them using HDI objects in a runtimecontainer (for example, projection views or SQL views). Therefore, you needto create a reference to the data container in the runtime container.
Related Information
- More information about the individual object types: Search for the SAP HDI Artifact Types and Build Plug-ins Referencetopic in the SAP HANA Developer Guide for SAP HANA XS Advanced ModelRuntime.
- Logical Database Schema