cancel
Showing results for 
Search instead for 
Did you mean: 

External views with HANA as secundary database

former_member185171
Participant
0 Kudos

Hi,

internally we have since some time a discussion on whether one can make external views in ABAP when HANA is your secondary database. According to the documentation it is not possible, but apparently the HANA-versions of Financial transactions do use them. These transactions are SAP standard transactions. It is difficult to convince our users/developers that this is not possible, when they see it is used in SAP standard ...

We do not get any clear answer to this problem. Also not from our consultants. The only remaining possibility seems to sketch a possible solution and ask you all some questions and make some statements to see if I am right.

I think this little sketch shows the landscape you need to make all this possible:

  • One cannot create an external view in Ecipse (ABAP in …) when you have HANA as a secondary database.

  • External views can only be created using AIE, not in SE11 in the GUI.
  • When these external views are created – using the described process – these views cannot even be displayed in the AIE when having HANA as a secondary database.
    This is the message we get:

  • If you want to create an external view, you need a ‘landscape’ where HANA is you primary database. This means a supplementary R/3-ABAP and a supplementary HANA database, where all necessary tables do exist.
  • You have to develop you HANA artefacts (attribute views, analytical views, calculation views, …) in this separate landscape.
    If you want to call them using external views, you have to do your developments here!
  • Based on these views you create external views in the AIE on this separate landscape. This way they exist in the ABAP dictionary in this system.
  • The name of the HANA-artefact and the external view in the ABAP dictionary have to be identical.
  • You copy the HANA artefacts to you first HANA (where you use it as secondary database). Copy, transport, … whatever.
  • You copy/transport your external view to your first ABAP dictionary.
  • Now you can use it in a SELECT with CONNECTION(“to_2ndary_hana”).

Is this correct? Or do I still miss something?

Thanks for any reaction.

Regard.

Kris

Message was edited by: Jens Weiler

Accepted Solutions (1)

Accepted Solutions (1)

jasmin_gruschke
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi Kris,

except for "The name of the HANA-artefact and the external view in the ABAP dictionary have to be identical" all you points above are valid.

Let me say a couple of words about the external views, especially those delivered by SAP.

Assume you have a development system landscape like DEH (development system with HANA as primary DB), DEO (development system with another DB), QCS (quality system, doesn't matter which DB but receiving the consolidated transports of DEH and DEO), PDS (productive system with non-HANA as primary DB and a secondary DB connection to HANA).
In this heterogeneous landscape you can create HANA content in DEH (respectively in the HANA underlying DEH) and external views via the ABAP Development Tools. You can transport the HANA content (e.g. via the HANA Transport Container) as well as the external views (and database procedure proxies) to the QCS system. The dictionary content, i.e. external views and database procedure proxies are active - otherwise the import/activation will fail - but you cannot consume them. Consumption of external views in the QCS system will lead to runtime exceptions as the underlying HANA artefacts are not accessible. However, since all the dictionary content exists, i.e. external views, database procedures, and the HANA transport container and all of them are active, you can further transport them to the productive system PDS. Once the external view is available in PDS and the HANA artefacts are available in the "side-car HANA" (assuming for simplicity you just use the connection to the DEH HANA), you can consume the external view respectively the underlying HANA view via OpenSQL in conjunction with the CONNECTION statement.

The described procedure explains how SAP has been able to deliver external views. In our system landscape, we have development systems on HANA as well as systems using non-HANA as primary database - how exactly depends on the product etc. So once the colleagues developed their HANA views and created the external views on such a development system on HANA, we can deliver external views. You can consume these external views:

  1. in a system using HANA as primary database (assuming of course you have also received the correct HANA content and everything has been activated properly)
  2. in a system using HANA as secondary database and using the CONNECTION statement in Open SQL

In scenario 1. you are able to create external views yourself via the ABAP Development Tools, while in the second scenario you can neither view nor maintain the external view.

For database procedure proxies, there is a method to create the DB procedure proxies programatically (see http://scn.sap.com/thread/3498161).

Hope this clarifies your questions,

Cheers,

  Jasmin


Answers (0)