Application Development Blog Posts
Learn and share on deeper, cross technology development topics such as integration and connectivity, automation, cloud extensibility, developing at scale, and security.
cancel
Showing results for 
Search instead for 
Did you mean: 
CarineTchoutouo
Product and Topic Expert
Product and Topic Expert

Latest News

June 15, 2015:  Read about SAP HANA Transport for ABAP (HTA) which is the successor of HTC.

This document gives you a compact overview of the SAP HANA Transport Container (HTC) and demonstrates how to use it. You can also access a related video here.

What is the SAP HANA Transport Container all about?

With SAP NetWeaver 7.4 numerous SAP HANA related optimizations are provided which enable developers to easily leverage of the power of SAP HANA in ABAP-based applications. ABAP for SAP HANA applications - meaning applications containing ABAP and HANA development entities – can now be easily developed, updated, corrected and enhanced (Access to diverse ABAP for SAP HANA tutorials).
Well, this means that - as usually done for reasons of quality assurance – the different ABAP and HANA development entities have to be transported through the system landscape; typically from the development system to the consolidation/quality system, and then to the productive system.
Here comes the SAP HANA Transport Container (HTC) in action!
HTC is an ABAP development object which is required to integrate HANA repository content into the standard Change and Transport System (CTS). As of AS ABAP 7.4, HTC is seamlessly integrated into the Transport Organizer of AS ABAP and so integrating the HANA repository content into CTS. It ensures an efficient delivery process of applications built out of ABAP and HANA content by means of the proven ABAP transport mechanism.
In short, ABAP for SAP HANA applications are transported as normal as any classic ABAP-based application through the system landscape.

Let's see how it works!

Prerequisites

  • SAP HANA Studio is installed and running
  • ABAP Development Tools for SAP NetWeaver is installed and running
  • AS ABAP 7.4 runs on SAP HANA database
  • The connection to the ABAP backend is configured in the ABAP perspective
  • The connection to the SAP HANA database is configured in the Modeler perspective

Assumption

A well-structured package hierarchy (main packages and sub-packages) has been defined for your project. The SAP HANA entities will be / are contained in those Packages.
Info 1: Package system-local is meant for local objects which are not intended to be transported. It means that all its sub-packages are also by definition not transportable and so cannot be attached to a delivery unit. It means that SAP HANA entities contained in a Package below system-local cannot be transported between SAP systems.

Procedure Overview

The picture below shows the main steps involved in the whole process. The development of a demo application – ABAP and HANA content - is not part of this demonstration in order to plainly focus on HTC. (Access diverse ABAP for SAP HANA tutorials here).

Step-by-Step Procedure

Step 1: Create a Delivery Unit (DU) and Assign the relevant packages

Info 2: SAP HANA Delivery Units are application-specific and are used to group and transport repository content. Find more information about DUs in the Help under menu path Help > Help contents.
  1. Start the SAP HANA Studio and go to the Modeler perspective by selecting menu path Window > Open Perspective > Others … and choosing Modeler from the opened dialog.
  2. Open the Quick Launch view of the Modeler perspective - if not already opened - by selecting menu path Help > Quick Launch
  3. Select the relevant system - if not yet selected - by clicking on the Select System… button located in the upper area of the view.
    Note that the system connection must have been previously added to the Modeler perspective.
  4. Now, click on the link Delivery Units… under the Setup section area
    Click on the Create… button in the upper right area of the Delivery Units dialog.
    Maintain the required information in the New Delivery Unit dialog and press on OK.
    Detailed information about the different DU properties is available in the Help. You can for example open the integrated Help window by clicking on the Help icon located bottom left on the dialog.
  5. Assign the relevant package(s) to the DU.
    In case the packages to be assigned to the DU already exist and are not yet assigned to another DU, then just select the relevant DU and click on the Add button in the lower right area.
    You can now select the relevant packages (zdemo in my case) and confirm the action.
    If the sub-packages of the selected node have to be selected too, then make sure the appropriate checkbox is checked.


    Other ways to assign a package to a DU:
    • (a) The package is not yet created: In this case you just have to select the appropriate value in the Delivery Unit dropdown field in the New Package dialog.
    • (b) The package already exists and is already assigned to another DU: The easiest way is to maintain the new DU name is to select the relevant package and change the DU value in its Properties pane.
    • (c) The package exists, but is not yet assigned to a DU (like in the present example): The previous handling is also applicable here

Step 2: Create a HANA Transport Container (HTC)

  1. Now switch to the ABAP perspective by selecting menu path Window > Open Perspective > Others..., then ABAP and confirming the opened dialog.
  2. Select the package to which the DU belongs to, open its context menu (by right-clicking on it) and select New > Other ABAP Repository Objects and then select entry Others > HANA Transport Container (you can filter for ‘transport’) and press on Next.
    The New HANATransport Container dialog is now opened.
  3. Enter the name of the DU in the field HANA Delivery Unit Name and press on Next.
    The name of the delivery unit will automatically be assigned to the new HTC object (e.g. zepm_oia_demo in my case).
    Info 3: There is a one-to-one relationship between HANA Transport Container objects and Delivery Units.
    Tip 1: Whenever available, you can use the Content Assist functionality of a given field by setting the cursor in it and pressing Ctrl+Space
  4. Now select the appropriate Transport Request and press on Finish.

    The new HTC has now been successfully created and you can have a look at its content (so-called Snapshot) on the Content tab.
  5. Activate the new object
    Info 4: HANA Transport Container objects are not updated automatically. The update of the  snapshot (content) of a given HTC must be triggered manulay by developers anytime the content of the underlying delivery unit has been modified.
    This is done by executing the function Take a Snapshot and Save on the Overview pane of the relevant HANA Tranport Ccontainer object.
    It is strongly recommended to execute this function before releasing a transport request.

Step 3: Release the Transport Request in AS ABAP

Assumption: you are ready with your development tasks.
  1. Open a SAPGUI window for the relevant project (Ctrl+6)
  2. Go to Transport Organizer (SE09 or SE01) and display the transport request  and its tasks.
  3. Check the request consistency and release the tasks and then the transport request.
  4. Check the Export result in the Logs.

    You can later also check whether the import in the follow-on SAP HANA system was successful, by checking the transport logs under the step 'Execution of programs after import (XPRA)'.

Step 4: Activate the HANA Repository Content in Target Systems

Info 5: About the automatic activation of imported HANA content
The automatic activation of imported HANA content is controlled in the AS ABAP via the entries in the table SNHI_DUP_PREWORK, which contains two fields SOFTWARE_COMPONENT and PREWORK_DONE. This table is used to switch on/off the automatic activation. It means a DU – its content more precisely – is automatically activated after its import, if the field PREWORK_DONE is set (‘X’) for the software component to which the corresponding HTC belongs to.

A maintenance view is available for table SNHI_DUP_PREWORK in transaction SM30.

E.g. Create an entry with 'HOME' as software component and 'X' as prework done if the HTC belongs to software component HOME and the DU should be activated in the SAP HANA repository during import.

The prework entries are required in all relevant systems in the landscape. Table SNHI_DUP_PREWORK is a customizing table and its customizing data can be maintained in each system manualy or transported through the system landscape using Customizing Request.

The PREWORK_DONE field should only be set in a given ABAP system if the schema mapping has been configured in the underlying SAP HANA database.
Tip 2: You can you find the software component for which you have to maintain an entry in the table SNHI_DUP_PREWORK for the automatic activation by clicking on the NHDU object in the transport request. From there you can get to the package and then find out the software component there. In most cases, customers shall maintain an enttry for the software component HOME. For partners or large customers, it may also be for the corresponding namespace prefix.
Info 6: About the manual activation of HANA objects
If the automatic activation is not switched on, then your database user must be granted with special privileges in order to perform the activation manually and even to be able to see the inactive objects on SAP HANA. For example the user <SID>ADM can always perform these tasks as it is the one writing the inactive objects in the database.

You need to trigger the activation manually if the PREWORK_DONE field is not set for the software component your HTC belongs to in your target system. How to proceed in this case is described below.
  1. Go to the Quick Launch view of the f the Modeler perspective and select the relevant target system. (Refer to Step1->1&2)
    The relevant target system connection must have previously been added to the Modeler perspective.
  2. Click on link Activate... located in the Content area of the view.
    A dialog will open showing the inactive objects available in the system.
  3. Now select the relevant repository objects and activate them.
Don't be irritated not to see the objects that were used in steps 1 to 3. The process is the same as shown in the screenshot above.

Additional Step: Update HANA Content already transported into Target systems

Once a HANA Transport Container has been transported into target systems, it is usual that the content of the underlying Delivery Unit gets modified in the source system: New objects (e.g. packages and HANA entities) are added or existing ones are modified.
The main question here is: How to get these updates from the source system into the target systems?
In such a scenario, you do not have to create a new HANA Transport Container object - or delete and re-create one. You simply have to update the existing one and then transport it.
How do you do this?
Do as followed:
  1. Go to the ABAP perspective and open the relevant ABAP project
  2. Open the HANA Transport Container related to the modified Delivery Unit
    PS: Do not forget: Both have the same name.
  3. Execute the function Take a Snapshot and Save (press on the link) on the Overview pane (Refere to the screenshots in Step 2.5).  The HTC content (aka Snapshot) will be updated.
  4. Assign a transport request and confirm
  5. Activate the updated object

The updated HTC is now ready to be transported. You can check the update on the Content pane.

As already mentioned in Step 2.5, do not forget that a HANA Trasnport Container is not updated automatically. In order to avoid inconsistencies in the target systems, it is strongly recommended to take a Snapshot before releasing the transport request.

Summary

This was a short introduction on the HANA Transporter Container (HTC) showing how easy it is to transport applications built out of ABAP and HANA content - so-called ABAP for SAP HANA applications -  between SAP systems!

Related Content

19 Comments